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