> Without testing this, the fix sounds reasonable.
>
> Using GL in a Mir callback is expected to fail. Even if you remember
> context.make_current() and even if it works, I recall you could still hit
> deadlocks making Mir/GL calls from in that event callback thread.
That's exactly what was happening here.
> P.S. mir_demo_client_target is intended to replace and supersede
> mir_demo_client_eglsquare. See also bug 1433925 and bug 1651695, which we
> probably don't care to fix. Those bugs don't exist in mir_demo_client_target.
> As such I wouldn't spend too much time trying to fix eglsquare - it's just too
> broken and not necessary.
I spent the time because I wanted to understand the problem. Fixing was a quick confirmation of the diagnosis.
> Without testing this, the fix sounds reasonable. make_current( ) and even if it works, I recall you could still hit
>
> Using GL in a Mir callback is expected to fail. Even if you remember
> context.
> deadlocks making Mir/GL calls from in that event callback thread.
That's exactly what was happening here.
> P.S. mir_demo_ client_ target is intended to replace and supersede client_ eglsquare. See also bug 1433925 and bug 1651695, which we client_ target.
> mir_demo_
> probably don't care to fix. Those bugs don't exist in mir_demo_
> As such I wouldn't spend too much time trying to fix eglsquare - it's just too
> broken and not necessary.
I spent the time because I wanted to understand the problem. Fixing was a quick confirmation of the diagnosis.
(Happy to see eglsquare deleted.)