blob: 8b2fbfa05f00f6219099361905e9249a8237a861 [file] [log] [blame]
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
Specification Update Policy
Khronos-approved extension specifications are updated in response to
issues and bugs prioritized by the Khronos OpenGL Working Group. For
extensions which have been promoted to a core Specification, fixes will
first appear in the latest version of that core Specification, and will
eventually be backported to the extension document. This policy is
described in more detail at
https://www.khronos.org/registry/OpenGL/docs/update_policy.php
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