Skip to content

wgl, d3d12: Robustness

Jesse Natalie requested to merge jenatali/mesa:robustness into main

This series implements WGL_ARB_create_context_robustness in the wgl frontend (as well as hooking up the equivalent EGL extension on Windows), and enables GL_ARB_robustness and GL_ARB_robust_buffer_access_behavior for the d3d12 driver.

For GL_ARB_robustness, reporting the context reset status is easy, but actually recovering from it is going to be nigh impossible in any kind of complicated scenario, due to the fact that our object which needs to be reset is the whole screen, not just the context. If you have a good app that tears down all contexts and windows/framebuffers, then it can recover, but multi-context or keeping a window alive will prevent it. TBD if I can do better here.

I've added a simple unit test to verify that we can recover from this basic scenario.

Closes #5090 (closed), #3953 (closed), and #3841 (closed)

/cc @jrfonseca @charmainel for the WGL changes, though they're pretty straightforward.

Merge request reports