From f19b16fecc8fc053f6ae3e69653b9b05ffc39164 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Fri, 11 Mar 2022 19:22:08 +0100 Subject: [PATCH] gpu,app: don't call time.Now when not profiling runtime.nanotime1 shows up in profiles on Android, so avoid calling time.Now when we can. Signed-off-by: Elias Naur --- app/window.go | 5 ++++- gpu/gpu.go | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/window.go b/app/window.go index 29e59349..4702958b 100644 --- a/app/window.go +++ b/app/window.go @@ -741,7 +741,10 @@ func (w *Window) processEvent(d driver, e event.Event) { // No drawing if not visible. break } - frameStart := time.Now() + var frameStart time.Time + if w.queue.q.Profiling() { + frameStart = time.Now() + } w.hasNextFrame = false e2.Frame = w.update e2.Queue = &w.queue diff --git a/gpu/gpu.go b/gpu/gpu.go index 4bb9fb9a..8c30a595 100644 --- a/gpu/gpu.go +++ b/gpu/gpu.go @@ -362,8 +362,8 @@ func (g *gpu) collect(viewport image.Point, frameOps *op.Ops) { g.renderer.pather.viewport = viewport g.drawOps.reset(viewport) g.drawOps.collect(frameOps, viewport) - g.frameStart = time.Now() if g.drawOps.profile && g.timers == nil && g.ctx.Caps().Features.Has(driver.FeatureTimers) { + g.frameStart = time.Now() g.timers = newTimers(g.ctx) g.stencilTimer = g.timers.newTimer() g.coverTimer = g.timers.newTimer()