mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-01 07:35:40 +00:00
io/profile: [API] delete package
It was a design mistake to make profiling data available to programs. Rather, profiling should either be a user-configurable debug overlay, reported through runtime/trace, or both. This change drops the io/profile package because we're about to overhaul event routing. Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
+3
-12
@@ -93,7 +93,6 @@ type compute struct {
|
||||
}
|
||||
}
|
||||
timers struct {
|
||||
profile string
|
||||
t *timers
|
||||
compact *timer
|
||||
render *timer
|
||||
@@ -176,7 +175,6 @@ type materialUniforms struct {
|
||||
|
||||
type collector struct {
|
||||
hasher maphash.Hash
|
||||
profile bool
|
||||
reader ops.Reader
|
||||
states []f32.Affine2D
|
||||
clear bool
|
||||
@@ -597,7 +595,7 @@ func (g *compute) frame(target RenderTarget) error {
|
||||
defer g.ctx.EndFrame()
|
||||
|
||||
t := &g.timers
|
||||
if g.collector.profile && t.t == nil && g.ctx.Caps().Features.Has(driver.FeatureTimers) {
|
||||
if false && t.t == nil && g.ctx.Caps().Features.Has(driver.FeatureTimers) {
|
||||
t.t = newTimers(g.ctx)
|
||||
t.compact = t.t.newTimer()
|
||||
t.render = t.t.newTimer()
|
||||
@@ -631,13 +629,13 @@ func (g *compute) frame(target RenderTarget) error {
|
||||
return err
|
||||
}
|
||||
t.compact.end()
|
||||
if g.collector.profile && t.t.ready() {
|
||||
if false && t.t.ready() {
|
||||
com, ren, blit := t.compact.Elapsed, t.render.Elapsed, t.blit.Elapsed
|
||||
ft := com + ren + blit
|
||||
q := 100 * time.Microsecond
|
||||
ft = ft.Round(q)
|
||||
com, ren, blit = com.Round(q), ren.Round(q), blit.Round(q)
|
||||
t.profile = fmt.Sprintf("ft:%7s com: %7s ren:%7s blit:%7s", ft, com, ren, blit)
|
||||
// t.profile = fmt.Sprintf("ft:%7s com: %7s ren:%7s blit:%7s", ft, com, ren, blit)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -661,10 +659,6 @@ func (g *compute) dumpAtlases() {
|
||||
}
|
||||
}
|
||||
|
||||
func (g *compute) Profile() string {
|
||||
return g.timers.profile
|
||||
}
|
||||
|
||||
func (g *compute) compactAllocs() error {
|
||||
const (
|
||||
maxAllocAge = 3
|
||||
@@ -1656,7 +1650,6 @@ func (e *encoder) line(start, end f32.Point) {
|
||||
|
||||
func (c *collector) reset() {
|
||||
c.prevFrame, c.frame = c.frame, c.prevFrame
|
||||
c.profile = false
|
||||
c.clipStates = c.clipStates[:0]
|
||||
c.transStack = c.transStack[:0]
|
||||
c.frame.reset()
|
||||
@@ -1736,8 +1729,6 @@ func (c *collector) collect(root *op.Ops, viewport image.Point, texOps *[]textur
|
||||
c.addClip(&state, fview, fview, nil, ops.Key{}, 0, 0, false)
|
||||
for encOp, ok := r.Decode(); ok; encOp, ok = r.Decode() {
|
||||
switch ops.OpType(encOp.Data[0]) {
|
||||
case ops.TypeProfile:
|
||||
c.profile = true
|
||||
case ops.TypeTransform:
|
||||
dop, push := ops.DecodeTransform(encOp.Data)
|
||||
if push {
|
||||
|
||||
+2
-10
@@ -44,10 +44,6 @@ type GPU interface {
|
||||
Clear(color color.NRGBA)
|
||||
// Frame draws the graphics operations from op into a viewport of target.
|
||||
Frame(frame *op.Ops, target RenderTarget, viewport image.Point) error
|
||||
// Profile returns the last available profiling information. Profiling
|
||||
// information is requested when Frame sees an io/profile.Op, and the result
|
||||
// is available through Profile at some later time.
|
||||
Profile() string
|
||||
}
|
||||
|
||||
type gpu struct {
|
||||
@@ -73,7 +69,6 @@ type renderer struct {
|
||||
}
|
||||
|
||||
type drawOps struct {
|
||||
profile bool
|
||||
reader ops.Reader
|
||||
states []f32.Affine2D
|
||||
transStack []f32.Affine2D
|
||||
@@ -399,7 +394,7 @@ func (g *gpu) collect(viewport image.Point, frameOps *op.Ops) {
|
||||
g.renderer.pather.viewport = viewport
|
||||
g.drawOps.reset(viewport)
|
||||
g.drawOps.collect(frameOps, viewport)
|
||||
if g.drawOps.profile && g.timers == nil && g.ctx.Caps().Features.Has(driver.FeatureTimers) {
|
||||
if false && g.timers == nil && g.ctx.Caps().Features.Has(driver.FeatureTimers) {
|
||||
g.frameStart = time.Now()
|
||||
g.timers = newTimers(g.ctx)
|
||||
g.stencilTimer = g.timers.newTimer()
|
||||
@@ -444,7 +439,7 @@ func (g *gpu) frame(target RenderTarget) error {
|
||||
g.cache.frame()
|
||||
g.drawOps.pathCache.frame()
|
||||
g.cleanupTimer.end()
|
||||
if g.drawOps.profile && g.timers.ready() {
|
||||
if false && g.timers.ready() {
|
||||
st, covt, cleant := g.stencilTimer.Elapsed, g.coverTimer.Elapsed, g.cleanupTimer.Elapsed
|
||||
ft := st + covt + cleant
|
||||
q := 100 * time.Microsecond
|
||||
@@ -895,7 +890,6 @@ func (r *renderer) drawLayers(layers []opacityLayer, ops []imageOp) {
|
||||
}
|
||||
|
||||
func (d *drawOps) reset(viewport image.Point) {
|
||||
d.profile = false
|
||||
d.viewport = viewport
|
||||
d.imageOps = d.imageOps[:0]
|
||||
d.pathOps = d.pathOps[:0]
|
||||
@@ -989,8 +983,6 @@ func (d *drawOps) collectOps(r *ops.Reader, viewport f32.Rectangle) {
|
||||
loop:
|
||||
for encOp, ok := r.Decode(); ok; encOp, ok = r.Decode() {
|
||||
switch ops.OpType(encOp.Data[0]) {
|
||||
case ops.TypeProfile:
|
||||
d.profile = true
|
||||
case ops.TypeTransform:
|
||||
dop, push := ops.DecodeTransform(encOp.Data)
|
||||
if push {
|
||||
|
||||
Reference in New Issue
Block a user