1Name 2 3 WGL_ARB_robustness_isolation 4 5Name Strings 6 7 WGL_ARB_robustness_application_isolation 8 WGL_ARB_robustness_share_group_isolation 9 10Contributors 11 12 Tim Johansson, Opera (timj 'at' opera.com) 13 Bill Licea-Kane (bill.licea-kane 'at' amd.com) 14 <TBD> 15 16Contact 17 18 Kenneth Russell, Google (kbr 'at' google.com) 19 20Notice 21 22 Copyright (c) 2012-2013 The Khronos Group Inc. Copyright terms at 23 http://www.khronos.org/registry/speccopyright.html 24 25Specification Update Policy 26 27 Khronos-approved extension specifications are updated in response to 28 issues and bugs prioritized by the Khronos OpenGL Working Group. For 29 extensions which have been promoted to a core Specification, fixes will 30 first appear in the latest version of that core Specification, and will 31 eventually be backported to the extension document. This policy is 32 described in more detail at 33 https://www.khronos.org/registry/OpenGL/docs/update_policy.php 34 35Status 36 37 Complete. 38 Approved by the ARB on 2012/06/12. 39 40Version 41 42 Last Modified Date: August 13, 2012 43 Version: 5 44 45Number 46 47 ARB Extension #143 48 49Dependencies 50 51 WGL_ARB_extensions_string is required. 52 53 WGL_ARB_create_context_robustness is required. 54 55Overview 56 57 GL_ARB_robustness and WGL_ARB_create_context_robustness allow 58 creating an OpenGL context supporting graphics reset notification 59 behavior. WGL_ARB_robustness_application_isolation and 60 WGL_ARB_robustness_share_group_isolation provide stronger 61 guarantees about the possible side-effects of a graphics reset. 62 63IP Status 64 65 No known IP claims. 66 67New Procedures and Functions 68 69 None. 70 71New Types 72 73 None. 74 75New Tokens 76 77 Accepted as a bit in the attribute value for WGL_CONTEXT_FLAGS_ARB 78 in the <*attrib_list> argument to wglCreateContextAttribsARB: 79 80 WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008 81 82Additions to the OpenGL / AGL / GLX Protocol Specificaitons 83 84 None. This specification is written for WGL. 85 86Additions to the WGL specification 87 88 Add the following new paragraphs to the description of 89 wglCreateContextAttribsARB, after that added by 90 WGL_ARB_create_context_robustness: 91 92 "If the application creates all of its OpenGL contexts with the 93 WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB attribute set to 94 WGL_LOSE_CONTEXT_ON_RESET_ARB, and the 95 WGL_CONTEXT_RESET_ISOLATION_BIT_ARB bit set, then: 96 97 If the graphics driver advertises the 98 WGL_ARB_robustness_application_isolation extension string, then 99 the driver guarantees that if a particular application causes a 100 graphics reset to occur: 101 102 1. No other application on the system is affected by the 103 graphics reset. 104 105 2. No other application on the system receives any notification 106 that the graphics reset occurred. 107 108 If the graphics driver advertises the 109 WGL_ARB_robustness_share_group_isolation extension string, then 110 the driver guarantees that if a context in a particular share 111 group causes a graphics reset to occur: 112 113 1. No other share group within the application is affected by 114 the graphics reset. Additionally, no other application on the 115 system is affected by the graphics reset. 116 117 2. No other share group within the application receives any 118 notification that the graphics reset occurred. Additionally, 119 no other application on the system receives any notification 120 that the graphics reset occurred. 121 122 The WGL_ARB_robustness_application_isolation and 123 WGL_ARB_robustness_share_group_isolation extensions do not provide 124 guarantees for graphics resets caused by applications which did 125 not create their contexts with both the LOSE_CONTEXT_ON_RESET_ARB 126 reset notification strategy and the 127 WGL_CONTEXT_RESET_ISOLATION_BIT_ARB bit." 128 129 Add a new context creation error to wglCreateContextAttribsARB: 130 131 "* If the reset isolation bits of <hShareContext> and the newly 132 created context are different, then 133 ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB is generated." 134 135 Add to the description of wglShareLists: 136 137 "If the reset isolation bit of <hglrc1> and <hglrc2> are different, 138 then wglShareLists will return FALSE, and GetLastError will return 139 ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB." 140 141Dependencies on WGL_ARB_extensions_string 142 143 Because there is no way to extend WGL, these calls are defined in 144 the ICD and can be called by obtaining the address with 145 wglGetProcAddress. Because this extension is a WGL extension, it is 146 not included in the GL_EXTENSIONS string. Its existence can be 147 determined with the WGL_ARB_extensions_string extension. 148 149Errors 150 151 ERROR_INVALID_PIXEL_FORMAT is generated if 152 WGL_CONTEXT_RESET_ISOLATION_BIT_ARB is set in attribute 153 WGL_CONTEXT_FLAGS_ARB, and no GL context supporting the 154 GL_ARB_robustness_isolation extension with either application or 155 share group isolation exists. 156 157 ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB is generated by 158 wglCreateContextAttribsARB if the reset isolation bit of 159 <hShareContext> does not match the reset isolation bit of 160 the context being created. 161 162 ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB is generated by wglShareLists 163 if the reset isolation bits of <hglrc1> and <hglrc2> are different. 164 165New State 166 167 None 168 169New Implementation Dependent State 170 171 None 172 173Conformance Tests 174 175 TBD 176 177Sample Code 178 179 TBD 180 181Issues 182 183 1) Do GPU vendors all agree that the share_group_isolation variant 184 is supportable? If so, we could drop the application_isolation 185 variant, which would simplify the spec. 186 187 2) How will these extension strings be handled and exposed on EGL 188 and Mac OS? 189 190Revision History 191 192 Rev. Date Author Changes 193 ---- ------------ --------- ---------------------------------------- 194 1 18 Apr 2011 kbr Initial version 195 2 28 Apr 2011 kbr Renamed context_isolation to share_group_isolation 196 3 08 Jun 2011 kbr Made guarantees conditional on using LOSE_CONTEXT_ON_RESET_ARB 197 4 17 Aug 2011 kbr Renamed file to WGL_ARB_robustness_isolation 198 5 24 Apr 2012 kbr Added GLX_CONTEXT_RESET_ISOLATION_BIT_ARB on feedback from Bill Licea-Kane 199 6 13 Aug 2012 Jon Leech Renumbered from #146 to #143 200