15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci ARB_ES3_compatibility 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_ARB_ES3_compatibility 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Piers Daniell, NVIDIA Corporation (pdaniell 'at' nvidia.com) 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciContributors 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci Bruce Merry 165bd8deadSopenharmony_ci Jeff Bolz, NVIDIA 175bd8deadSopenharmony_ci John Kessenich 185bd8deadSopenharmony_ci Jon Leech 195bd8deadSopenharmony_ci Pat Brown, NVIDIA 205bd8deadSopenharmony_ci 215bd8deadSopenharmony_ciNotice 225bd8deadSopenharmony_ci 235bd8deadSopenharmony_ci Copyright (c) 2012-2013 The Khronos Group Inc. Copyright terms at 245bd8deadSopenharmony_ci http://www.khronos.org/registry/speccopyright.html 255bd8deadSopenharmony_ci 265bd8deadSopenharmony_ciSpecification Update Policy 275bd8deadSopenharmony_ci 285bd8deadSopenharmony_ci Khronos-approved extension specifications are updated in response to 295bd8deadSopenharmony_ci issues and bugs prioritized by the Khronos OpenGL Working Group. For 305bd8deadSopenharmony_ci extensions which have been promoted to a core Specification, fixes will 315bd8deadSopenharmony_ci first appear in the latest version of that core Specification, and will 325bd8deadSopenharmony_ci eventually be backported to the extension document. This policy is 335bd8deadSopenharmony_ci described in more detail at 345bd8deadSopenharmony_ci https://www.khronos.org/registry/OpenGL/docs/update_policy.php 355bd8deadSopenharmony_ci 365bd8deadSopenharmony_ciStatus 375bd8deadSopenharmony_ci 385bd8deadSopenharmony_ci Complete. 395bd8deadSopenharmony_ci Approved by the ARB on 2012/06/12. 405bd8deadSopenharmony_ci 415bd8deadSopenharmony_ciVersion 425bd8deadSopenharmony_ci 435bd8deadSopenharmony_ci Last Modified Date: October 18, 2013 445bd8deadSopenharmony_ci Revision: 10 455bd8deadSopenharmony_ci 465bd8deadSopenharmony_ciNumber 475bd8deadSopenharmony_ci 485bd8deadSopenharmony_ci ARB Extension #127 495bd8deadSopenharmony_ci 505bd8deadSopenharmony_ciDependencies 515bd8deadSopenharmony_ci 525bd8deadSopenharmony_ci OpenGL 3.3, ARB_ES2_compatibility, ARB_invalidate_subdata, and 535bd8deadSopenharmony_ci ARB_texture_storage are required. 545bd8deadSopenharmony_ci 555bd8deadSopenharmony_ci The ETC2 and EAC texture compression formats added to OpenGL-ES 3.0 565bd8deadSopenharmony_ci OES_compressed_ETC2_RGB8_texture, 575bd8deadSopenharmony_ci OES_compressed_ETC2_sRGB8_texture, 585bd8deadSopenharmony_ci OES_compressed_ETC2_punchthroughA_RGBA8_texture, 595bd8deadSopenharmony_ci OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture, 605bd8deadSopenharmony_ci OES_compressed_ETC2_RGBA8_texture, 615bd8deadSopenharmony_ci OES_compressed_ETC2_sRGB8_alpha8_texture, 625bd8deadSopenharmony_ci OES_compressed_EAC_R11_unsigned_texture, 635bd8deadSopenharmony_ci OES_compressed_EAC_R11_signed_texture, 645bd8deadSopenharmony_ci OES_compressed_EAC_RG11_unsigned_texture and 655bd8deadSopenharmony_ci OES_compressed_EAC_RG11_signed_texture are required. 665bd8deadSopenharmony_ci 675bd8deadSopenharmony_ci This extension is written against The OpenGL 4.2 (Compatibility Profile) 685bd8deadSopenharmony_ci specification. 695bd8deadSopenharmony_ci 705bd8deadSopenharmony_ciOverview 715bd8deadSopenharmony_ci 725bd8deadSopenharmony_ci This extension adds support for features of OpenGL ES 3.0 that are 735bd8deadSopenharmony_ci missing from OpenGL 3.x. Enabling these features will ease the process 745bd8deadSopenharmony_ci of porting applications from OpenGL ES 3.0 to OpenGL. These features 755bd8deadSopenharmony_ci include conservative boolean occlusion queries, primitive restart with a 765bd8deadSopenharmony_ci fixed index, the OpenGL ES Shading Language 3.00 specification, and the 775bd8deadSopenharmony_ci dependencies stated above. 785bd8deadSopenharmony_ci 795bd8deadSopenharmony_ciNew Procedures and Functions 805bd8deadSopenharmony_ci 815bd8deadSopenharmony_ci None 825bd8deadSopenharmony_ci 835bd8deadSopenharmony_ciNew Tokens 845bd8deadSopenharmony_ci 855bd8deadSopenharmony_ci Accepted by the <internalformat> parameter of CompressedTexImage2D 865bd8deadSopenharmony_ci COMPRESSED_RGB8_ETC2 0x9274 875bd8deadSopenharmony_ci COMPRESSED_SRGB8_ETC2 0x9275 885bd8deadSopenharmony_ci COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 895bd8deadSopenharmony_ci COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 905bd8deadSopenharmony_ci COMPRESSED_RGBA8_ETC2_EAC 0x9278 915bd8deadSopenharmony_ci COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 925bd8deadSopenharmony_ci COMPRESSED_R11_EAC 0x9270 935bd8deadSopenharmony_ci COMPRESSED_SIGNED_R11_EAC 0x9271 945bd8deadSopenharmony_ci COMPRESSED_RG11_EAC 0x9272 955bd8deadSopenharmony_ci COMPRESSED_SIGNED_RG11_EAC 0x9273 965bd8deadSopenharmony_ci 975bd8deadSopenharmony_ci Accepted by the <target> parameter of Enable and Disable: 985bd8deadSopenharmony_ci 995bd8deadSopenharmony_ci PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 1005bd8deadSopenharmony_ci 1015bd8deadSopenharmony_ci Accepted by the <target> parameter of BeginQuery, EndQuery, 1025bd8deadSopenharmony_ci GetQueryIndexediv and GetQueryiv: 1035bd8deadSopenharmony_ci 1045bd8deadSopenharmony_ci ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A 1055bd8deadSopenharmony_ci 1065bd8deadSopenharmony_ci Accepted by the <value> parameter of the GetInteger* functions: 1075bd8deadSopenharmony_ci 1085bd8deadSopenharmony_ci MAX_ELEMENT_INDEX 0x8D6B 1095bd8deadSopenharmony_ci 1105bd8deadSopenharmony_ci Accepted by the <pname> parameters of GetTexParameterfv and 1115bd8deadSopenharmony_ci GetTexParameteriv: 1125bd8deadSopenharmony_ci 1135bd8deadSopenharmony_ci TEXTURE_IMMUTABLE_LEVELS 0x82DF 1145bd8deadSopenharmony_ci 1155bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL 4.2 (Compatibility Profile) 1165bd8deadSopenharmony_ciSpecification (OpenGL Operation) 1175bd8deadSopenharmony_ci 1185bd8deadSopenharmony_ci Modify Section 1.7.1 (OpenGL Shading Language) to require the OpenGL 1195bd8deadSopenharmony_ci ES Shading Language specifications: 1205bd8deadSopenharmony_ci 1215bd8deadSopenharmony_ci "This specification should be read together with a companion documents 1225bd8deadSopenharmony_ci titled The OpenGL Shading Language and The OpenGL ES Shading Language. 1235bd8deadSopenharmony_ci ..." 1245bd8deadSopenharmony_ci 1255bd8deadSopenharmony_ci And later in this section: 1265bd8deadSopenharmony_ci 1275bd8deadSopenharmony_ci "OpenGL 4.2 implementations are guaranteed to support version 4.20 of the 1285bd8deadSopenharmony_ci OpenGL Shading Language, version 1.00 of the OpenGL ES Shading Language 1295bd8deadSopenharmony_ci and version 3.00 of the OpenGL ES Shading Language, and the version 1305bd8deadSopenharmony_ci required by the application is specified in the shader source. ..." 1315bd8deadSopenharmony_ci 1325bd8deadSopenharmony_ci Modify Section 2.8 (Vertex Arrays) on page 45 before the start of 1335bd8deadSopenharmony_ci Section 2.8.1: 1345bd8deadSopenharmony_ci 1355bd8deadSopenharmony_ci "Primitive restart can also be enabled or disabled with a <target> of 1365bd8deadSopenharmony_ci PRIMITIVE_RESTART_FIXED_INDEX. In this case, the primitive restart index 1375bd8deadSopenharmony_ci is equal to 2^N-1, where N is 8, 16 or 32 if the type is UNSIGNED_BYTE, 1385bd8deadSopenharmony_ci UNSIGNED_SHORT, or UNSIGNED_INT, respectively, and the <index> value 1395bd8deadSopenharmony_ci specified by PrimitiveRestartIndex is ignored. 1405bd8deadSopenharmony_ci 1415bd8deadSopenharmony_ci If both PRIMITIVE_RESTART and PRIMITIVE_RESTART_FIXED_INDEX are enabled, 1425bd8deadSopenharmony_ci the <index> value determined by PRIMITIVE_RESTART_FIXED_INDEX is used. 1435bd8deadSopenharmony_ci If PRIMITIVE_RESTART_FIXED_INDEX is enabled, primitive restart is not 1445bd8deadSopenharmony_ci performed for array elements transferred by any drawing command not 1455bd8deadSopenharmony_ci taking a <type> parameter, including ArrayElement or any of the Draw* 1465bd8deadSopenharmony_ci commands other than *DrawElements*." 1475bd8deadSopenharmony_ci 1485bd8deadSopenharmony_ci Modify Section 2.18 (Asynchronous Queries) on page 195 to add 1495bd8deadSopenharmony_ci ANY_SAMPLES_PASSED_CONSERVATIVE as another <target> option: 1505bd8deadSopenharmony_ci 1515bd8deadSopenharmony_ci "BeginQuery sets the active query object name for the query type given by 1525bd8deadSopenharmony_ci <target> to <id>. If BeginQuery is called with an id of zero, if the 1535bd8deadSopenharmony_ci active query object name for target is non-zero (for the targets 1545bd8deadSopenharmony_ci SAMPLES_PASSED, ANY_SAMPLES_PASSED, and ANY_SAMPLES_PASSED_CONSERVATIVE if 1555bd8deadSopenharmony_ci the active query for either target is non-zero), if <id> is the name of an 1565bd8deadSopenharmony_ci existing query object whose type does not match target, if <id> is the 1575bd8deadSopenharmony_ci active query object name for any query type, or if id is the active query 1585bd8deadSopenharmony_ci object for condtional rendering (see section 2.19), the error 1595bd8deadSopenharmony_ci INVALID_OPERATION is generated." 1605bd8deadSopenharmony_ci 1615bd8deadSopenharmony_ci Modify Section 2.19 (Conditional Rendering) on page 197 to add 1625bd8deadSopenharmony_ci ANY_SAMPLES_PASSED_CONSERVATIVE as another <mode> option: 1635bd8deadSopenharmony_ci 1645bd8deadSopenharmony_ci "If the result (SAMPLES_PASSED) of the query is zero, or if the result 1655bd8deadSopenharmony_ci (ANY_SAMPLES_PASSED or ANY_SAMPLES_PASSED_CONSERVATIVE) is false, all 1665bd8deadSopenharmony_ci rendering comands between BeginConditionalRender and the corresponding 1675bd8deadSopenharmony_ci EndConditionalRender are discarded. ..." 1685bd8deadSopenharmony_ci 1695bd8deadSopenharmony_ci And later in this paragraph: 1705bd8deadSopenharmony_ci 1715bd8deadSopenharmony_ci "... If the result (SAMPLES_PASSED) of the query is non-zero, or if the 1725bd8deadSopenharmony_ci result (ANY_SAMPLES_PASSED or ANY_SAMPLES_PASSED_CONSERVATIVE) is true, 1735bd8deadSopenharmony_ci such commands are not discarded." 1745bd8deadSopenharmony_ci 1755bd8deadSopenharmony_ci Again at the end of Section 2.19 (Conditional Rendering) on page 198: 1765bd8deadSopenharmony_ci 1775bd8deadSopenharmony_ci "If <id> is the name of a query object with a target other than 1785bd8deadSopenharmony_ci SAMPLES_PASSED, ANY_SAMPLES_PASSED or ANY_SAMPLES_PASSED_CONSERVATIVE, 1795bd8deadSopenharmony_ci or if <id> is the name of a query currently in progress, the error 1805bd8deadSopenharmony_ci INVALID_OPERATION is generated." 1815bd8deadSopenharmony_ci 1825bd8deadSopenharmony_ci Modify subsection 3.10.15 (Texture State and Proxy State): 1835bd8deadSopenharmony_ci 1845bd8deadSopenharmony_ci Modify the end of the first paragraph on page 345 1855bd8deadSopenharmony_ci 1865bd8deadSopenharmony_ci "... The value of TEXTURE_IMMUTABLE_FORMAT is FALSE. The value of 1875bd8deadSopenharmony_ci TEXTURE_IMMUTABLE_LEVELS is 0. The values of DEPTH_TEXTURE_MODE, 1885bd8deadSopenharmony_ci TEXTURE_COMPARE_MODE, and TEXTURE_COMPARE_FUNC are LUMINANCE, 1895bd8deadSopenharmony_ci NONE, and LEQUAL respectively. ..." 1905bd8deadSopenharmony_ci 1915bd8deadSopenharmony_ci Modify subsection 3.10.16 (Immutable-Format Texture Images): 1925bd8deadSopenharmony_ci 1935bd8deadSopenharmony_ci Modify the second to last bullet on page 347 1945bd8deadSopenharmony_ci 1955bd8deadSopenharmony_ci "If the command is successful, TEXTURE_IMMUTABLE_FORMAT becomes 1965bd8deadSopenharmony_ci TRUE and TEXTURE_IMMUTABLE_LEVELS becomes <levels>." 1975bd8deadSopenharmony_ci 1985bd8deadSopenharmony_ci Modify Section 4.1.7 (Occlusion Queries) to add 1995bd8deadSopenharmony_ci ANY_SAMPLES_PASSED_CONSERVATIVE as another <target> option: 2005bd8deadSopenharmony_ci 2015bd8deadSopenharmony_ci "Occlusion queries use query objects to track the number of fragments or 2025bd8deadSopenharmony_ci samples that pass the depth test. An occlusion query can be started and 2035bd8deadSopenharmony_ci finished by calling BeginQuery and EndQuery, respectively, with a target 2045bd8deadSopenharmony_ci of SAMPLES_PASSED, ANY_SAMPLES_PASSED or ANY_SAMPLES_PASSED_CONSERVATIVE." 2055bd8deadSopenharmony_ci 2065bd8deadSopenharmony_ci Modify last paragraph in Section 4.1.7: 2075bd8deadSopenharmony_ci 2085bd8deadSopenharmony_ci "When an occlusion query is started with the target ANY_SAMPLES_PASSED, 2095bd8deadSopenharmony_ci the samples-boolean state maintained by the GL is set to FALSE. While that 2105bd8deadSopenharmony_ci occlusion query is active, the samples-boolean state is set to TRUE if any 2115bd8deadSopenharmony_ci fragment or sample passes the depth test. If the target of the query is 2125bd8deadSopenharmony_ci ANY_SAMPLES_PASSED_CONSERVATIVE, an implementation may choose to use a 2135bd8deadSopenharmony_ci less precise version of the test which can additionally set the 2145bd8deadSopenharmony_ci samples-boolean state to TRUE in some other implementation-dependent 2155bd8deadSopenharmony_ci cases. This may offer better performance on some implementations at the 2165bd8deadSopenharmony_ci expense of false positives. When the occlusion query finishes, the 2175bd8deadSopenharmony_ci samples-boolean state of FALSE or TRUE is written to the corresponding 2185bd8deadSopenharmony_ci query object as the query result value, and the query result for that 2195bd8deadSopenharmony_ci object is marked as available." 2205bd8deadSopenharmony_ci 2215bd8deadSopenharmony_ci Modify the list of allowed <value> parameters to GetTexParameter* in 2225bd8deadSopenharmony_ci section 6.1.3 on page 478: 2235bd8deadSopenharmony_ci 2245bd8deadSopenharmony_ci "<value> must be IMAGE_FORMAT_COMPATIBILITY_TYPE, 2255bd8deadSopenharmony_ci TEXTURE_IMMUTABLE_FORMAT, TEXTURE_IMMUTABLE_LEVELS, TEXTURE_RESIDENT, 2265bd8deadSopenharmony_ci or one of the symbolic values in table 3.22" 2275bd8deadSopenharmony_ci 2285bd8deadSopenharmony_ci Modify the first paragraph of Section 6.1.13 (Asynchronous Queries) as 2295bd8deadSopenharmony_ci follows: 2305bd8deadSopenharmony_ci 2315bd8deadSopenharmony_ci "... <target> identifies the query target, and must be one of 2325bd8deadSopenharmony_ci SAMPLES_PASSED, ANY_SAMPLES_PASSED or ANY_SAMPLES_PASSED_CONSERVATIVE 2335bd8deadSopenharmony_ci for occlusion queries, ..." 2345bd8deadSopenharmony_ci 2355bd8deadSopenharmony_ci Modify the first paragraph of page 488 in Section 6.1.13: 2365bd8deadSopenharmony_ci 2375bd8deadSopenharmony_ci "For occlusion queries with target ANY_SAMPLES_PASSED or 2385bd8deadSopenharmony_ci ANY_SAMPLES_PASSED_CONSERVATIVE, if the number of bits is non-zero, the 2395bd8deadSopenharmony_ci minimum number of bits is 1. ..." 2405bd8deadSopenharmony_ci 2415bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL 4.2 (Compatibility Profile) 2425bd8deadSopenharmony_ciSpecification (Rasterization) 2435bd8deadSopenharmony_ci 2445bd8deadSopenharmony_ci Add to Table 3.20: Generic and specific compressed internal formats on 2455bd8deadSopenharmony_ci page 303: 2465bd8deadSopenharmony_ci 2475bd8deadSopenharmony_ci Compressed Internal Format Base Internal Format Type 2485bd8deadSopenharmony_ci ------------------------------------------ -------------------- ---------- 2495bd8deadSopenharmony_ci COMPRESSED_RGB8_ETC2 RGB Specific 2505bd8deadSopenharmony_ci COMPRESSED_SRGB8_ETC2 RGBA Specific 2515bd8deadSopenharmony_ci COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 RGB Specific 2525bd8deadSopenharmony_ci COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 RGB Specific 2535bd8deadSopenharmony_ci COMPRESSED_RGBA8_ETC2_EAC RGBA Specific 2545bd8deadSopenharmony_ci COMPRESSED_SRGB8_ALPHA8_ETC2_EAC RGBA Specific 2555bd8deadSopenharmony_ci COMPRESSED_R11_EAC RED Specific 2565bd8deadSopenharmony_ci COMPRESSED_SIGNED_R11_EAC RED Specific 2575bd8deadSopenharmony_ci COMPRESSED_RG11_EAC RG Specific 2585bd8deadSopenharmony_ci COMPRESSED_SIGNED_RG11_EAC RG Specific 2595bd8deadSopenharmony_ci 2605bd8deadSopenharmony_ci Add the following text to the Table 3.20 key: 2615bd8deadSopenharmony_ci 2625bd8deadSopenharmony_ci "The specific RGTC, BPTC, ETC2 and EAC formats are described in Appendix C." 2635bd8deadSopenharmony_ci 2645bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL 4.2 (Compatibility Profile) 2655bd8deadSopenharmony_ciSpecification (Per-Fragment Operations and the Framebuffer) 2665bd8deadSopenharmony_ci 2675bd8deadSopenharmony_ci Add to section 4.4.2 in the unnumbered "Required Renderbuffer Formats" 2685bd8deadSopenharmony_ci subsection, following the paragraph starting "Implementations are 2695bd8deadSopenharmony_ci required to support..." 2705bd8deadSopenharmony_ci 2715bd8deadSopenharmony_ci "Implementations are also required to support STENCIL_INDEX8." 2725bd8deadSopenharmony_ci 2735bd8deadSopenharmony_ci Modify section 4.4.2 in the unnumbered "Required Framebuffer Formats" 2745bd8deadSopenharmony_ci subsection, changing the third sentence to read 2755bd8deadSopenharmony_ci 2765bd8deadSopenharmony_ci "The depth attachment may be in any of the required depth or combined 2775bd8deadSopenharmony_ci depth+stencil formats described in those sections, and the stencil 2785bd8deadSopenharmony_ci attachment may be in any of the required stencil or combined 2795bd8deadSopenharmony_ci depth+stencil formats." 2805bd8deadSopenharmony_ci 2815bd8deadSopenharmony_ciAdditions to Appendix C of the OpenGL 4.20.6 Specification (Compressed Texture 2825bd8deadSopenharmony_ciImage Formats) 2835bd8deadSopenharmony_ci 2845bd8deadSopenharmony_ci Add a new section to Appendix C: 2855bd8deadSopenharmony_ci 2865bd8deadSopenharmony_ci "C.3 ETC2/EAC Compressed Texture Image Formats 2875bd8deadSopenharmony_ci 2885bd8deadSopenharmony_ci The following sub-sections describe the texture compression format for the 2895bd8deadSopenharmony_ci ETC2/EAC family of compression formats. It is not necessary for the 2905bd8deadSopenharmony_ci GL to implement these compression formats in hardware and is acceptable 2915bd8deadSopenharmony_ci for the decode to occur in software and be represented internally as 2925bd8deadSopenharmony_ci uncompressed images." 2935bd8deadSopenharmony_ci 2945bd8deadSopenharmony_ci Then copy in the body of the OpenGL ES 3.0 Specification, Appendix C.1 2955bd8deadSopenharmony_ci "ETC Compressed Texture Image Formats", which describes the details of 2965bd8deadSopenharmony_ci the ETC2 and EAC formats required by this extension. Change "OpenGL ES 2975bd8deadSopenharmony_ci implementations" to "OpenGL implementations" when performing this 2985bd8deadSopenharmony_ci copying. 2995bd8deadSopenharmony_ci 3005bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL Shading Language 4.20.6 Specification 3015bd8deadSopenharmony_ci(Basics) 3025bd8deadSopenharmony_ci 3035bd8deadSopenharmony_ci Modify the paragraph at the bottom of page 12 in Section 3.3 3045bd8deadSopenharmony_ci (Preprocessor) as follows: 3055bd8deadSopenharmony_ci 3065bd8deadSopenharmony_ci "... Shaders that specify #version 100 will be treated as targeting 3075bd8deadSopenharmony_ci version 1.00 of the OpenGL ES Shading Language. Shaders that specify 3085bd8deadSopenharmony_ci #version 300 will be treated as targeting version 3.00 of the OpenGL 3095bd8deadSopenharmony_ci ES Shading Language. Shaders declaring 1.40, 1.50, ..." 3105bd8deadSopenharmony_ci 3115bd8deadSopenharmony_ci Modify the second paragraph at the of page 13 in Section 3.3 3125bd8deadSopenharmony_ci (Preprocessor) as follows: 3135bd8deadSopenharmony_ci 3145bd8deadSopenharmony_ci "If the optional <profile> argument is provided, it must be the name of 3155bd8deadSopenharmony_ci an OpenGL profile. Currently there are three choices: 3165bd8deadSopenharmony_ci core 3175bd8deadSopenharmony_ci compatibility 3185bd8deadSopenharmony_ci es 3195bd8deadSopenharmony_ci 3205bd8deadSopenharmony_ci A <profile> argument can only be used with version 150 or greater. If no 3215bd8deadSopenharmony_ci profile argument is provided and the version is 150 or greater, the 3225bd8deadSopenharmony_ci default is <core>. If #version 300 is specified, the profile argument is 3235bd8deadSopenharmony_ci not optional and must be <es>, or a compile-time error results. The 3245bd8deadSopenharmony_ci Language Specification for the <es> profile is specified in The OpenGL 3255bd8deadSopenharmony_ci ES Shading Language specification. Unless otherwise specified, this ..." 3265bd8deadSopenharmony_ci 3275bd8deadSopenharmony_ciAdditions to the AGL/GLX/WGL Specifications 3285bd8deadSopenharmony_ci 3295bd8deadSopenharmony_ci None 3305bd8deadSopenharmony_ci 3315bd8deadSopenharmony_ciInteractions with the OpenGL 4.2 Core Profile 3325bd8deadSopenharmony_ci 3335bd8deadSopenharmony_ci In the core profile, remove ArrayElement from the list of drawing 3345bd8deadSopenharmony_ci commands for which primitive restart is not performed when 3355bd8deadSopenharmony_ci PRIMITIVE_RESTART_FIXED_INDEX is enabled. 3365bd8deadSopenharmony_ci 3375bd8deadSopenharmony_ciErrors 3385bd8deadSopenharmony_ci 3395bd8deadSopenharmony_ci None 3405bd8deadSopenharmony_ci 3415bd8deadSopenharmony_ciNew State 3425bd8deadSopenharmony_ci 3435bd8deadSopenharmony_ci (add to table 6.13, p. 520 (Vertex Array Data (not in Vertex Array Objects))) 3445bd8deadSopenharmony_ci 3455bd8deadSopenharmony_ci Initial 3465bd8deadSopenharmony_ci Get Value Type Get Command Value Description Sec. Attribute 3475bd8deadSopenharmony_ci ------------------------ ---- --------------- ------- ---------------------- ----- ------------ 3485bd8deadSopenharmony_ci PRIMITIVE_RESTART_FIXED_INDEX B IsEnabled FALSE Primitive restart with 2.8 vertex-array 3495bd8deadSopenharmony_ci fixed index enable 3505bd8deadSopenharmony_ci 3515bd8deadSopenharmony_ci (add to table 6.24, p. 531 (Textures (state per texture object))) 3525bd8deadSopenharmony_ci 3535bd8deadSopenharmony_ci Initial 3545bd8deadSopenharmony_ci Get Value Type Get Command Value Description Sec. Attribute 3555bd8deadSopenharmony_ci ------------------------ ---- --------------- ------- ------------------------ ------- --------- 3565bd8deadSopenharmony_ci TEXTURE_IMMUTABLE_LEVELS Z+ GetTexParameter 0 storage number of levels 3.10.15 texture 3575bd8deadSopenharmony_ci 3585bd8deadSopenharmony_ciNew Implementation Dependent State 3595bd8deadSopenharmony_ci 3605bd8deadSopenharmony_ci Get Value Type Get Command Value Description Sec. 3615bd8deadSopenharmony_ci ----------------- ---- ------------- -------- --------------------- ---- 3625bd8deadSopenharmony_ci MAX_ELEMENT_INDEX Z+ GetInteger64v 2^32 - 1 Maximum element index 2.6 3635bd8deadSopenharmony_ci 3645bd8deadSopenharmony_ciIssues 3655bd8deadSopenharmony_ci 3665bd8deadSopenharmony_ci 1) OpenGL-ES 3.0 contains several features that have been deprecated from 3675bd8deadSopenharmony_ci the latest OpenGL Core specification. These were retained in OpenGL-ES 3685bd8deadSopenharmony_ci 3.0 in order to provide backwards compatibility with OpenGL-ES 2.0. Those 3695bd8deadSopenharmony_ci features are: 3705bd8deadSopenharmony_ci 3715bd8deadSopenharmony_ci * Wide lines - LineWidth values greater than 1.0 will generate an INVALID_- 3725bd8deadSopenharmony_ci VALUE error. The value ALIASED_LINE_WIDTH_RANGE is the max width supported. 3735bd8deadSopenharmony_ci 3745bd8deadSopenharmony_ci * Global component limit query - the implementation-dependent values 3755bd8deadSopenharmony_ci MAX_VARYING_COMPONENTS and MAX_VARYING_FLOATS. 3765bd8deadSopenharmony_ci 3775bd8deadSopenharmony_ci * Application-generated object names - the names of all object types, such as 3785bd8deadSopenharmony_ci buffer, query, and texture objects, must be generated using the corresponding 3795bd8deadSopenharmony_ci Gen* commands. Trying to bind an object name not returned by a Gen* 3805bd8deadSopenharmony_ci command will result in an INVALID_OPERATION error. This behavior is already 3815bd8deadSopenharmony_ci the case for framebuffer, renderbuffer, and vertex array objects. Object 3825bd8deadSopenharmony_ci types which have default objects (objects named zero), such as vertex array, 3835bd8deadSopenharmony_ci framebuffer, and texture objects, may also bind the default object, even 3845bd8deadSopenharmony_ci though it is not returned by Gen*. 3855bd8deadSopenharmony_ci 3865bd8deadSopenharmony_ci * Client vertex and index arrays - all vertex array attribute and element array 3875bd8deadSopenharmony_ci index pointers must refer to buffer objects. The default vertex array object 3885bd8deadSopenharmony_ci (the name zero) is also deprecated. Calling VertexAttribPointer when no 3895bd8deadSopenharmony_ci buffer object or no vertex array object is bound will generate an INVALID_- 3905bd8deadSopenharmony_ci OPERATION error, as will calling any array drawing command when no vertex 3915bd8deadSopenharmony_ci array object is bound. 3925bd8deadSopenharmony_ci 3935bd8deadSopenharmony_ci * Legacy pixel formats - all ALPHA, LUMINANCE, LUMINANCE_ALPHA 3945bd8deadSopenharmony_ci 3955bd8deadSopenharmony_ci * Hints - GENERATE_MIPMAP_HINT targets to Hint (section 5.4). 3965bd8deadSopenharmony_ci 3975bd8deadSopenharmony_ci * Unified extension string - EXTENSIONS target to GetString. 3985bd8deadSopenharmony_ci 3995bd8deadSopenharmony_ci Should we bring these features back into the OpenGL 4.x Core specification 4005bd8deadSopenharmony_ci so that it is a complete super-set of OpenGL-ES 3.0? 4015bd8deadSopenharmony_ci 4025bd8deadSopenharmony_ci RESOLVED: No, these will not be brought back into OpenGL 4.x Core. Apps 4035bd8deadSopenharmony_ci written for OpenGL-ES 3.0 that want to also be compatible with OpenGL 4045bd8deadSopenharmony_ci should make sure they don't use these features. 4055bd8deadSopenharmony_ci 4065bd8deadSopenharmony_ci 2) OpenGL ES 3.0 has some differences to OpenGL that may affect how the 4075bd8deadSopenharmony_ci application operates. For example, in OpenGL ES 3.0 cubemaps are 4085bd8deadSopenharmony_ci always seamless but with OpenGL this needs to be explicitly enabled. 4095bd8deadSopenharmony_ci Also sRGB is handled differently. In OpenGL ES 3.0 a surface is either 4105bd8deadSopenharmony_ci sRGB or not sRGB and this cannot be changed. With OpenGL a surface can 4115bd8deadSopenharmony_ci be sRGB capable and the mode can be toggled. How do we deal with 4125bd8deadSopenharmony_ci these differences? 4135bd8deadSopenharmony_ci 4145bd8deadSopenharmony_ci RESOLVED: If the application needs a strict OpenGL ES 3.0 4155bd8deadSopenharmony_ci implementation, it should not attempt to use a desktop GL context 4165bd8deadSopenharmony_ci with the ES3_compatibility extension supported. Instead, use the 4175bd8deadSopenharmony_ci {GLX|WGL}_EXT_create_context_es_profile extensions to request an 4185bd8deadSopenharmony_ci actual OpenGL ES 3.0 context, which will not have these caveats. 4195bd8deadSopenharmony_ci 4205bd8deadSopenharmony_ciRevision History 4215bd8deadSopenharmony_ci 4225bd8deadSopenharmony_ci Rev. Date Author Changes 4235bd8deadSopenharmony_ci ---- -------- -------- ----------------------------------------------- 4245bd8deadSopenharmony_ci 10 10/18/13 Jon Leech Refer to OpenGL ES 3.0 specification appendix 4255bd8deadSopenharmony_ci C.1 for ETC2/EAC formats, instead of to OES 4265bd8deadSopenharmony_ci extensions (Bug 7522). 4275bd8deadSopenharmony_ci 4285bd8deadSopenharmony_ci 9 03/12/13 Jon Leech Update issue 2 resolution and fix typo. 4295bd8deadSopenharmony_ci 4305bd8deadSopenharmony_ci 8 11/10/12 pdaniell Add the missing token TEXTURE_IMMUTABLE_LEVELS 4315bd8deadSopenharmony_ci from ARB_texture_view, which is in ES 3.0, and 4325bd8deadSopenharmony_ci add language describing its behavior; add 4335bd8deadSopenharmony_ci PRIMITIVE_RESTART_FIXED_INDEX to state tables 4345bd8deadSopenharmony_ci (Bug 9559). 4355bd8deadSopenharmony_ci 4365bd8deadSopenharmony_ci 7 09/16/12 Jon Leech Add language to chapter 4 requiring 4375bd8deadSopenharmony_ci STENCIL_INDEX8 support (Bug 9418). 4385bd8deadSopenharmony_ci 4395bd8deadSopenharmony_ci 6 05/30/12 Jon Leech Add language specifying how the two types of 4405bd8deadSopenharmony_ci primitive restart enable interact and that the 4415bd8deadSopenharmony_ci fixed index form only applies to 4425bd8deadSopenharmony_ci *DrawElements* commands taking a <type> 4435bd8deadSopenharmony_ci parameter. Reorder ETC2/EAC formats to match 4445bd8deadSopenharmony_ci Halti appendix. 4455bd8deadSopenharmony_ci 4465bd8deadSopenharmony_ci 5 04/27/12 pdaniell Updates based on feedback from John Kessenich. 4475bd8deadSopenharmony_ci 4485bd8deadSopenharmony_ci 4 04/20/12 pdaniell Resolve issue 2. 4495bd8deadSopenharmony_ci 4505bd8deadSopenharmony_ci 3 03/19/12 pdaniell Remove references to RGB565, which are now fixed 4515bd8deadSopenharmony_ci in ARB_ES2_compatibility and an updated OpenGL 4525bd8deadSopenharmony_ci 4.2 core spec. Make the ETC2/EAC compression 4535bd8deadSopenharmony_ci formats compulsory and bring in the tokens. 4545bd8deadSopenharmony_ci 4555bd8deadSopenharmony_ci 2 01/31/12 pdaniell Incorporated feedback from Bruce. 4565bd8deadSopenharmony_ci 4575bd8deadSopenharmony_ci 1 01/23/12 pdaniell Initial version. 458