wgl, d3d12: Robustness
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.