diff --git a/app/window.go b/app/window.go index f71375f0..28de519b 100644 --- a/app/window.go +++ b/app/window.go @@ -248,10 +248,7 @@ func (w *Window) render(frame *op.Ops, viewport image.Point) error { if err != nil { return err } - if err := w.gpu.Frame(frame, target, viewport); err != nil { - return err - } - return w.ctx.Present() + return w.gpu.Frame(frame, target, viewport) } func (w *Window) processFrame(d driver, frameStart time.Time) { @@ -808,6 +805,9 @@ func (w *Window) processEvent(d driver, e event.Event) { // We're done with frame, let the client continue. w.frameAck <- struct{}{} } + if err == nil && w.gpu != nil { + err = w.ctx.Present() + } if err != nil { w.destroyGPU() w.out <- system.DestroyEvent{Err: err}