mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-05 17:35:36 +00:00
ui/app: add CPU draw timings
Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
+8
-1
@@ -27,6 +27,7 @@ type Window struct {
|
|||||||
|
|
||||||
driver *window
|
driver *window
|
||||||
lastFrame time.Time
|
lastFrame time.Time
|
||||||
|
drawStart time.Time
|
||||||
gpu *gpu.GPU
|
gpu *gpu.GPU
|
||||||
timings string
|
timings string
|
||||||
inputState key.TextInputState
|
inputState key.TextInputState
|
||||||
@@ -97,6 +98,11 @@ func (w *Window) Draw(root *ui.Ops) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
w.mu.Lock()
|
w.mu.Lock()
|
||||||
|
var drawDur time.Duration
|
||||||
|
if !w.drawStart.IsZero() {
|
||||||
|
drawDur = time.Since(w.drawStart)
|
||||||
|
w.drawStart = time.Time{}
|
||||||
|
}
|
||||||
stage := w.stage
|
stage := w.stage
|
||||||
sync := w.syncGPU
|
sync := w.syncGPU
|
||||||
size := w.size
|
size := w.size
|
||||||
@@ -132,7 +138,7 @@ func (w *Window) Draw(root *ui.Ops) {
|
|||||||
frameDur = frameDur.Truncate(100 * time.Microsecond)
|
frameDur = frameDur.Truncate(100 * time.Microsecond)
|
||||||
w.lastFrame = now
|
w.lastFrame = now
|
||||||
if w.Profiling {
|
if w.Profiling {
|
||||||
w.timings = fmt.Sprintf("t:%7s %s", frameDur, w.gpu.Timings())
|
w.timings = fmt.Sprintf("tot:%7s cpu:%7s %s", frameDur, drawDur, w.gpu.Timings())
|
||||||
w.setNextFrame(time.Time{})
|
w.setNextFrame(time.Time{})
|
||||||
}
|
}
|
||||||
w.reader.Reset(root.Data(), root.Refs())
|
w.reader.Reset(root.Data(), root.Refs())
|
||||||
@@ -248,6 +254,7 @@ func (w *Window) event(e Event) {
|
|||||||
// No drawing if not visible.
|
// No drawing if not visible.
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
w.drawStart = time.Now()
|
||||||
needAck = true
|
needAck = true
|
||||||
w.syncGPU = e.sync
|
w.syncGPU = e.sync
|
||||||
w.size = e.Size
|
w.size = e.Size
|
||||||
|
|||||||
Reference in New Issue
Block a user