| Name |
| |
| WGL_ARB_robustness_isolation |
| |
| Name Strings |
| |
| WGL_ARB_robustness_application_isolation |
| WGL_ARB_robustness_share_group_isolation |
| |
| Contributors |
| |
| Tim Johansson, Opera (timj 'at' opera.com) |
| Bill Licea-Kane (bill.licea-kane 'at' amd.com) |
| <TBD> |
| |
| Contact |
| |
| Kenneth Russell, Google (kbr 'at' google.com) |
| |
| Notice |
| |
| Copyright (c) 2012-2013 The Khronos Group Inc. Copyright terms at |
| http://www.khronos.org/registry/speccopyright.html |
| |
| Status |
| |
| Complete. |
| Approved by the ARB on 2012/06/12. |
| |
| Version |
| |
| Last Modified Date: August 13, 2012 |
| Version: 5 |
| |
| Number |
| |
| ARB Extension #143 |
| |
| Dependencies |
| |
| WGL_ARB_extensions_string is required. |
| |
| WGL_ARB_create_context_robustness is required. |
| |
| Overview |
| |
| GL_ARB_robustness and WGL_ARB_create_context_robustness allow |
| creating an OpenGL context supporting graphics reset notification |
| behavior. WGL_ARB_robustness_application_isolation and |
| WGL_ARB_robustness_share_group_isolation provide stronger |
| guarantees about the possible side-effects of a graphics reset. |
| |
| IP Status |
| |
| No known IP claims. |
| |
| New Procedures and Functions |
| |
| None. |
| |
| New Types |
| |
| None. |
| |
| New Tokens |
| |
| Accepted as a bit in the attribute value for WGL_CONTEXT_FLAGS_ARB |
| in the <*attrib_list> argument to wglCreateContextAttribsARB: |
| |
| WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008 |
| |
| Additions to the OpenGL / AGL / GLX Protocol Specificaitons |
| |
| None. This specification is written for WGL. |
| |
| Additions to the WGL specification |
| |
| Add the following new paragraphs to the description of |
| wglCreateContextAttribsARB, after that added by |
| WGL_ARB_create_context_robustness: |
| |
| "If the application creates all of its OpenGL contexts with the |
| WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB attribute set to |
| WGL_LOSE_CONTEXT_ON_RESET_ARB, and the |
| WGL_CONTEXT_RESET_ISOLATION_BIT_ARB bit set, then: |
| |
| If the graphics driver advertises the |
| WGL_ARB_robustness_application_isolation extension string, then |
| the driver guarantees that if a particular application causes a |
| graphics reset to occur: |
| |
| 1. No other application on the system is affected by the |
| graphics reset. |
| |
| 2. No other application on the system receives any notification |
| that the graphics reset occurred. |
| |
| If the graphics driver advertises the |
| WGL_ARB_robustness_share_group_isolation extension string, then |
| the driver guarantees that if a context in a particular share |
| group causes a graphics reset to occur: |
| |
| 1. No other share group within the application is affected by |
| the graphics reset. Additionally, no other application on the |
| system is affected by the graphics reset. |
| |
| 2. No other share group within the application receives any |
| notification that the graphics reset occurred. Additionally, |
| no other application on the system receives any notification |
| that the graphics reset occurred. |
| |
| The WGL_ARB_robustness_application_isolation and |
| WGL_ARB_robustness_share_group_isolation extensions do not provide |
| guarantees for graphics resets caused by applications which did |
| not create their contexts with both the LOSE_CONTEXT_ON_RESET_ARB |
| reset notification strategy and the |
| WGL_CONTEXT_RESET_ISOLATION_BIT_ARB bit." |
| |
| Add a new context creation error to wglCreateContextAttribsARB: |
| |
| "* If the reset isolation bits of <hShareContext> and the newly |
| created context are different, then |
| ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB is generated." |
| |
| Add to the description of wglShareLists: |
| |
| "If the reset isolation bit of <hglrc1> and <hglrc2> are different, |
| then wglShareLists will return FALSE, and GetLastError will return |
| ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB." |
| |
| Dependencies on WGL_ARB_extensions_string |
| |
| Because there is no way to extend WGL, these calls are defined in |
| the ICD and can be called by obtaining the address with |
| wglGetProcAddress. Because this extension is a WGL extension, it is |
| not included in the GL_EXTENSIONS string. Its existence can be |
| determined with the WGL_ARB_extensions_string extension. |
| |
| Errors |
| |
| ERROR_INVALID_PIXEL_FORMAT is generated if |
| WGL_CONTEXT_RESET_ISOLATION_BIT_ARB is set in attribute |
| WGL_CONTEXT_FLAGS_ARB, and no GL context supporting the |
| GL_ARB_robustness_isolation extension with either application or |
| share group isolation exists. |
| |
| ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB is generated by |
| wglCreateContextAttribsARB if the reset isolation bit of |
| <hShareContext> does not match the reset isolation bit of |
| the context being created. |
| |
| ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB is generated by wglShareLists |
| if the reset isolation bits of <hglrc1> and <hglrc2> are different. |
| |
| New State |
| |
| None |
| |
| New Implementation Dependent State |
| |
| None |
| |
| Conformance Tests |
| |
| TBD |
| |
| Sample Code |
| |
| TBD |
| |
| Issues |
| |
| 1) Do GPU vendors all agree that the share_group_isolation variant |
| is supportable? If so, we could drop the application_isolation |
| variant, which would simplify the spec. |
| |
| 2) How will these extension strings be handled and exposed on EGL |
| and Mac OS? |
| |
| Revision History |
| |
| Rev. Date Author Changes |
| ---- ------------ --------- ---------------------------------------- |
| 1 18 Apr 2011 kbr Initial version |
| 2 28 Apr 2011 kbr Renamed context_isolation to share_group_isolation |
| 3 08 Jun 2011 kbr Made guarantees conditional on using LOSE_CONTEXT_ON_RESET_ARB |
| 4 17 Aug 2011 kbr Renamed file to WGL_ARB_robustness_isolation |
| 5 24 Apr 2012 kbr Added GLX_CONTEXT_RESET_ISOLATION_BIT_ARB on feedback from Bill Licea-Kane |
| 6 13 Aug 2012 Jon Leech Renumbered from #146 to #143 |