15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    WGL_ARB_robustness_isolation
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    WGL_ARB_robustness_application_isolation
85bd8deadSopenharmony_ci    WGL_ARB_robustness_share_group_isolation
95bd8deadSopenharmony_ci
105bd8deadSopenharmony_ciContributors
115bd8deadSopenharmony_ci
125bd8deadSopenharmony_ci    Tim Johansson, Opera (timj 'at' opera.com)
135bd8deadSopenharmony_ci    Bill Licea-Kane (bill.licea-kane 'at' amd.com)
145bd8deadSopenharmony_ci    <TBD>
155bd8deadSopenharmony_ci
165bd8deadSopenharmony_ciContact
175bd8deadSopenharmony_ci
185bd8deadSopenharmony_ci    Kenneth Russell, Google (kbr 'at' google.com)
195bd8deadSopenharmony_ci
205bd8deadSopenharmony_ciNotice
215bd8deadSopenharmony_ci
225bd8deadSopenharmony_ci    Copyright (c) 2012-2013 The Khronos Group Inc. Copyright terms at
235bd8deadSopenharmony_ci        http://www.khronos.org/registry/speccopyright.html
245bd8deadSopenharmony_ci
255bd8deadSopenharmony_ciSpecification Update Policy
265bd8deadSopenharmony_ci
275bd8deadSopenharmony_ci    Khronos-approved extension specifications are updated in response to
285bd8deadSopenharmony_ci    issues and bugs prioritized by the Khronos OpenGL Working Group. For
295bd8deadSopenharmony_ci    extensions which have been promoted to a core Specification, fixes will
305bd8deadSopenharmony_ci    first appear in the latest version of that core Specification, and will
315bd8deadSopenharmony_ci    eventually be backported to the extension document. This policy is
325bd8deadSopenharmony_ci    described in more detail at
335bd8deadSopenharmony_ci        https://www.khronos.org/registry/OpenGL/docs/update_policy.php
345bd8deadSopenharmony_ci
355bd8deadSopenharmony_ciStatus
365bd8deadSopenharmony_ci
375bd8deadSopenharmony_ci    Complete.
385bd8deadSopenharmony_ci    Approved by the ARB on 2012/06/12.
395bd8deadSopenharmony_ci
405bd8deadSopenharmony_ciVersion
415bd8deadSopenharmony_ci
425bd8deadSopenharmony_ci    Last Modified Date:  August 13, 2012
435bd8deadSopenharmony_ci    Version:             5
445bd8deadSopenharmony_ci
455bd8deadSopenharmony_ciNumber
465bd8deadSopenharmony_ci
475bd8deadSopenharmony_ci    ARB Extension #143
485bd8deadSopenharmony_ci
495bd8deadSopenharmony_ciDependencies
505bd8deadSopenharmony_ci
515bd8deadSopenharmony_ci    WGL_ARB_extensions_string is required.
525bd8deadSopenharmony_ci
535bd8deadSopenharmony_ci    WGL_ARB_create_context_robustness is required.
545bd8deadSopenharmony_ci
555bd8deadSopenharmony_ciOverview
565bd8deadSopenharmony_ci
575bd8deadSopenharmony_ci    GL_ARB_robustness and WGL_ARB_create_context_robustness allow
585bd8deadSopenharmony_ci    creating an OpenGL context supporting graphics reset notification
595bd8deadSopenharmony_ci    behavior.  WGL_ARB_robustness_application_isolation and
605bd8deadSopenharmony_ci    WGL_ARB_robustness_share_group_isolation provide stronger
615bd8deadSopenharmony_ci    guarantees about the possible side-effects of a graphics reset.
625bd8deadSopenharmony_ci
635bd8deadSopenharmony_ciIP Status
645bd8deadSopenharmony_ci
655bd8deadSopenharmony_ci    No known IP claims.
665bd8deadSopenharmony_ci
675bd8deadSopenharmony_ciNew Procedures and Functions
685bd8deadSopenharmony_ci
695bd8deadSopenharmony_ci    None.
705bd8deadSopenharmony_ci
715bd8deadSopenharmony_ciNew Types
725bd8deadSopenharmony_ci
735bd8deadSopenharmony_ci    None.
745bd8deadSopenharmony_ci
755bd8deadSopenharmony_ciNew Tokens
765bd8deadSopenharmony_ci
775bd8deadSopenharmony_ci    Accepted as a bit in the attribute value for WGL_CONTEXT_FLAGS_ARB
785bd8deadSopenharmony_ci    in the <*attrib_list> argument to wglCreateContextAttribsARB:
795bd8deadSopenharmony_ci
805bd8deadSopenharmony_ci        WGL_CONTEXT_RESET_ISOLATION_BIT_ARB             0x00000008    
815bd8deadSopenharmony_ci
825bd8deadSopenharmony_ciAdditions to the OpenGL / AGL / GLX Protocol Specificaitons
835bd8deadSopenharmony_ci
845bd8deadSopenharmony_ci    None. This specification is written for WGL.
855bd8deadSopenharmony_ci
865bd8deadSopenharmony_ciAdditions to the WGL specification
875bd8deadSopenharmony_ci
885bd8deadSopenharmony_ci    Add the following new paragraphs to the description of
895bd8deadSopenharmony_ci    wglCreateContextAttribsARB, after that added by
905bd8deadSopenharmony_ci    WGL_ARB_create_context_robustness:
915bd8deadSopenharmony_ci
925bd8deadSopenharmony_ci    "If the application creates all of its OpenGL contexts with the
935bd8deadSopenharmony_ci    WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB attribute set to
945bd8deadSopenharmony_ci    WGL_LOSE_CONTEXT_ON_RESET_ARB, and the
955bd8deadSopenharmony_ci    WGL_CONTEXT_RESET_ISOLATION_BIT_ARB bit set, then:
965bd8deadSopenharmony_ci
975bd8deadSopenharmony_ci      If the graphics driver advertises the
985bd8deadSopenharmony_ci      WGL_ARB_robustness_application_isolation extension string, then
995bd8deadSopenharmony_ci      the driver guarantees that if a particular application causes a
1005bd8deadSopenharmony_ci      graphics reset to occur:
1015bd8deadSopenharmony_ci
1025bd8deadSopenharmony_ci      1. No other application on the system is affected by the
1035bd8deadSopenharmony_ci         graphics reset.
1045bd8deadSopenharmony_ci
1055bd8deadSopenharmony_ci      2. No other application on the system receives any notification
1065bd8deadSopenharmony_ci         that the graphics reset occurred.
1075bd8deadSopenharmony_ci    
1085bd8deadSopenharmony_ci      If the graphics driver advertises the
1095bd8deadSopenharmony_ci      WGL_ARB_robustness_share_group_isolation extension string, then
1105bd8deadSopenharmony_ci      the driver guarantees that if a context in a particular share
1115bd8deadSopenharmony_ci      group causes a graphics reset to occur:
1125bd8deadSopenharmony_ci
1135bd8deadSopenharmony_ci      1. No other share group within the application is affected by
1145bd8deadSopenharmony_ci         the graphics reset. Additionally, no other application on the
1155bd8deadSopenharmony_ci         system is affected by the graphics reset.
1165bd8deadSopenharmony_ci
1175bd8deadSopenharmony_ci      2. No other share group within the application receives any
1185bd8deadSopenharmony_ci         notification that the graphics reset occurred. Additionally,
1195bd8deadSopenharmony_ci         no other application on the system receives any notification
1205bd8deadSopenharmony_ci         that the graphics reset occurred.
1215bd8deadSopenharmony_ci
1225bd8deadSopenharmony_ci    The WGL_ARB_robustness_application_isolation and
1235bd8deadSopenharmony_ci    WGL_ARB_robustness_share_group_isolation extensions do not provide
1245bd8deadSopenharmony_ci    guarantees for graphics resets caused by applications which did
1255bd8deadSopenharmony_ci    not create their contexts with both the LOSE_CONTEXT_ON_RESET_ARB
1265bd8deadSopenharmony_ci    reset notification strategy and the
1275bd8deadSopenharmony_ci    WGL_CONTEXT_RESET_ISOLATION_BIT_ARB bit."
1285bd8deadSopenharmony_ci
1295bd8deadSopenharmony_ci    Add a new context creation error to wglCreateContextAttribsARB:
1305bd8deadSopenharmony_ci
1315bd8deadSopenharmony_ci   "* If the reset isolation bits of <hShareContext> and the newly
1325bd8deadSopenharmony_ci    created context are different, then
1335bd8deadSopenharmony_ci    ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB is generated."
1345bd8deadSopenharmony_ci
1355bd8deadSopenharmony_ci    Add to the description of wglShareLists:
1365bd8deadSopenharmony_ci
1375bd8deadSopenharmony_ci   "If the reset isolation bit of <hglrc1> and <hglrc2> are different,
1385bd8deadSopenharmony_ci    then wglShareLists will return FALSE, and GetLastError will return
1395bd8deadSopenharmony_ci    ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB."
1405bd8deadSopenharmony_ci
1415bd8deadSopenharmony_ciDependencies on WGL_ARB_extensions_string
1425bd8deadSopenharmony_ci
1435bd8deadSopenharmony_ci    Because there is no way to extend WGL, these calls are defined in
1445bd8deadSopenharmony_ci    the ICD and can be called by obtaining the address with
1455bd8deadSopenharmony_ci    wglGetProcAddress. Because this extension is a WGL extension, it is
1465bd8deadSopenharmony_ci    not included in the GL_EXTENSIONS string. Its existence can be
1475bd8deadSopenharmony_ci    determined with the WGL_ARB_extensions_string extension.
1485bd8deadSopenharmony_ci
1495bd8deadSopenharmony_ciErrors
1505bd8deadSopenharmony_ci
1515bd8deadSopenharmony_ci    ERROR_INVALID_PIXEL_FORMAT is generated if
1525bd8deadSopenharmony_ci    WGL_CONTEXT_RESET_ISOLATION_BIT_ARB is set in attribute
1535bd8deadSopenharmony_ci    WGL_CONTEXT_FLAGS_ARB, and no GL context supporting the
1545bd8deadSopenharmony_ci    GL_ARB_robustness_isolation extension with either application or
1555bd8deadSopenharmony_ci    share group isolation exists.
1565bd8deadSopenharmony_ci
1575bd8deadSopenharmony_ci    ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB is generated by
1585bd8deadSopenharmony_ci    wglCreateContextAttribsARB if the reset isolation bit of
1595bd8deadSopenharmony_ci    <hShareContext> does not match the reset isolation bit of
1605bd8deadSopenharmony_ci    the context being created.
1615bd8deadSopenharmony_ci
1625bd8deadSopenharmony_ci    ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB is generated by wglShareLists
1635bd8deadSopenharmony_ci    if the reset isolation bits of <hglrc1> and <hglrc2> are different.
1645bd8deadSopenharmony_ci
1655bd8deadSopenharmony_ciNew State
1665bd8deadSopenharmony_ci
1675bd8deadSopenharmony_ci    None
1685bd8deadSopenharmony_ci
1695bd8deadSopenharmony_ciNew Implementation Dependent State
1705bd8deadSopenharmony_ci
1715bd8deadSopenharmony_ci    None
1725bd8deadSopenharmony_ci
1735bd8deadSopenharmony_ciConformance Tests
1745bd8deadSopenharmony_ci
1755bd8deadSopenharmony_ci    TBD
1765bd8deadSopenharmony_ci
1775bd8deadSopenharmony_ciSample Code
1785bd8deadSopenharmony_ci
1795bd8deadSopenharmony_ci    TBD
1805bd8deadSopenharmony_ci
1815bd8deadSopenharmony_ciIssues
1825bd8deadSopenharmony_ci
1835bd8deadSopenharmony_ci    1) Do GPU vendors all agree that the share_group_isolation variant
1845bd8deadSopenharmony_ci       is supportable? If so, we could drop the application_isolation
1855bd8deadSopenharmony_ci       variant, which would simplify the spec.
1865bd8deadSopenharmony_ci
1875bd8deadSopenharmony_ci    2) How will these extension strings be handled and exposed on EGL
1885bd8deadSopenharmony_ci       and Mac OS?
1895bd8deadSopenharmony_ci
1905bd8deadSopenharmony_ciRevision History
1915bd8deadSopenharmony_ci
1925bd8deadSopenharmony_ci    Rev.    Date       Author     Changes
1935bd8deadSopenharmony_ci    ----  ------------ ---------  ----------------------------------------
1945bd8deadSopenharmony_ci      1   18 Apr 2011  kbr        Initial version
1955bd8deadSopenharmony_ci      2   28 Apr 2011  kbr        Renamed context_isolation to share_group_isolation
1965bd8deadSopenharmony_ci      3   08 Jun 2011  kbr        Made guarantees conditional on using LOSE_CONTEXT_ON_RESET_ARB
1975bd8deadSopenharmony_ci      4   17 Aug 2011  kbr        Renamed file to WGL_ARB_robustness_isolation
1985bd8deadSopenharmony_ci      5   24 Apr 2012  kbr        Added GLX_CONTEXT_RESET_ISOLATION_BIT_ARB on feedback from Bill Licea-Kane
1995bd8deadSopenharmony_ci      6   13 Aug 2012  Jon Leech  Renumbered from #146 to #143
200