It's suspected that OpenGL drivers for AMD GPU's are crash prone when calls are made from more than one thread.
To solve this, we could refactor our LLE nv2a pgraph renderer such, that all OpenGL calls are made through the command queue handling thread.
Any OpenGL calls not currently done from that thread (like initialization and Xbox to host framebuffer copies) can be moved to emulator-specific commands, one for each call or set of calls.
It's suspected that OpenGL drivers for AMD GPU's are crash prone when calls are made from more than one thread.
This would break a ton of programs and definitely isn't the case.
I'd suspect that the GL context is not transferred correctly (which may or may not be an upstream issue in XQEMU already) between threads though. That's the only logical explanation I can come up with.
Probably best to create a small test case to prove the issue?
Since we no longer support LLE GPU, this issue does no longer apply. Closing as "won't do".
Most helpful comment
This would break a ton of programs and definitely isn't the case.
I'd suspect that the GL context is not transferred correctly (which may or may not be an upstream issue in XQEMU already) between threads though. That's the only logical explanation I can come up with.