diff --git a/internal/graphics/command.go b/internal/graphics/command.go index bc77c74f9..77d448f88 100644 --- a/internal/graphics/command.go +++ b/internal/graphics/command.go @@ -149,7 +149,17 @@ func (q *commandQueue) Flush() error { } numc := len(g) indexOffsetInBytes := 0 + var lastC command for _, c := range g { + // On MacBook Pro (2013 Late?), glTexSubImage2D might not be finished + // before the next different comand. Call glFlush explicitly. + if _, ok := lastC.(*replacePixelsCommand); ok { + if _, ok := c.(*replacePixelsCommand); !ok { + opengl.GetContext().Flush() + } + } + lastC = c + if err := c.Exec(indexOffsetInBytes); err != nil { return err }