15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci NV_image_formats 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_NV_image_formats 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Mathias Heyer, NVIDIA (mheyer 'at' nvidia.com) 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciContributors 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci Contributors to ARB_shader_image_load_store 165bd8deadSopenharmony_ci Michael Chock, NVIDIA 175bd8deadSopenharmony_ci Daniel Koch, NVIDIA 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ciNotice 205bd8deadSopenharmony_ci 215bd8deadSopenharmony_ci Copyright (c) 2011-2014 The Khronos Group Inc. Copyright terms at 225bd8deadSopenharmony_ci http://www.khronos.org/registry/speccopyright.html 235bd8deadSopenharmony_ci 245bd8deadSopenharmony_ci Portions Copyright (c) 2014 NVIDIA Corporation. 255bd8deadSopenharmony_ci 265bd8deadSopenharmony_ciStatus 275bd8deadSopenharmony_ci 285bd8deadSopenharmony_ci Complete 295bd8deadSopenharmony_ci 305bd8deadSopenharmony_ciVersion 315bd8deadSopenharmony_ci 325bd8deadSopenharmony_ci Last Modified Date: October 24, 2014 335bd8deadSopenharmony_ci Revision: 4 345bd8deadSopenharmony_ci 355bd8deadSopenharmony_ciNumber 365bd8deadSopenharmony_ci 375bd8deadSopenharmony_ci OpenGL ES Extension #200 385bd8deadSopenharmony_ci 395bd8deadSopenharmony_ciDependencies 405bd8deadSopenharmony_ci 415bd8deadSopenharmony_ci This extension is written against the OpenGL ES 3.1 (March 17, 2014) 425bd8deadSopenharmony_ci specification. 435bd8deadSopenharmony_ci 445bd8deadSopenharmony_ci This extension is written against version 3.10 of the OpenGL ES 455bd8deadSopenharmony_ci Shading Language specification. 465bd8deadSopenharmony_ci 475bd8deadSopenharmony_ci OpenGL ES 3.1 and GLSL ES 3.10 are required. 485bd8deadSopenharmony_ci 495bd8deadSopenharmony_ci This extension interacts with EXT_texture_norm16. 505bd8deadSopenharmony_ci 515bd8deadSopenharmony_ci This extension interacts with NV_bindless_texture. 525bd8deadSopenharmony_ci 535bd8deadSopenharmony_ciOverview 545bd8deadSopenharmony_ci 555bd8deadSopenharmony_ci OpenGL ES 3.1 specifies a variety of formats required to be usable 565bd8deadSopenharmony_ci with texture images. This extension introduces the texture image 575bd8deadSopenharmony_ci formats missing for parity with OpenGL 4.4. 585bd8deadSopenharmony_ci 595bd8deadSopenharmony_ci 605bd8deadSopenharmony_ciNew Procedures and Functions 615bd8deadSopenharmony_ci 625bd8deadSopenharmony_ci None 635bd8deadSopenharmony_ci 645bd8deadSopenharmony_ciNew Tokens 655bd8deadSopenharmony_ci 665bd8deadSopenharmony_ci None 675bd8deadSopenharmony_ci 685bd8deadSopenharmony_ciAdditions to Chapter 8 of the OpenGL ES 3.1 Specification 695bd8deadSopenharmony_ci(Textures and Samplers) 705bd8deadSopenharmony_ci 715bd8deadSopenharmony_ci Section 8.22, Texture Image Loads and Stores 725bd8deadSopenharmony_ci 735bd8deadSopenharmony_ci Add to Table 8.27 'Supported image unit formats with equivalent formats 745bd8deadSopenharmony_ci layout qualifiers': 755bd8deadSopenharmony_ci 765bd8deadSopenharmony_ci Image Unit Format Format Qualifer 775bd8deadSopenharmony_ci ----------------- --------------- 785bd8deadSopenharmony_ci RG32F rg32f 795bd8deadSopenharmony_ci RG16F rg16f 805bd8deadSopenharmony_ci R11F_G11F_B10F r11f_g11f_b10f 815bd8deadSopenharmony_ci R16F r16f 825bd8deadSopenharmony_ci 835bd8deadSopenharmony_ci RGB10_A2UI rgb10_a2ui 845bd8deadSopenharmony_ci RG32UI rg32ui 855bd8deadSopenharmony_ci RG16UI rg16ui 865bd8deadSopenharmony_ci RG8UI rg8ui 875bd8deadSopenharmony_ci R16UI r16ui 885bd8deadSopenharmony_ci R8UI r8ui 895bd8deadSopenharmony_ci 905bd8deadSopenharmony_ci RG32I rg32i 915bd8deadSopenharmony_ci RG16I rg16i 925bd8deadSopenharmony_ci RG8I rg8i 935bd8deadSopenharmony_ci R16I r16i 945bd8deadSopenharmony_ci R8I r8i 955bd8deadSopenharmony_ci 965bd8deadSopenharmony_ci RGBA16_EXT rgba16 975bd8deadSopenharmony_ci RGB10_A2 rgb10_a2 985bd8deadSopenharmony_ci RG16_EXT rg16 995bd8deadSopenharmony_ci RG8 rg8 1005bd8deadSopenharmony_ci R16_EXT r16 1015bd8deadSopenharmony_ci R8 r8 1025bd8deadSopenharmony_ci 1035bd8deadSopenharmony_ci RGBA16_SNORM_EXT rgba16_snorm 1045bd8deadSopenharmony_ci RG16_SNORM_EXT rg16_snorm 1055bd8deadSopenharmony_ci RG8_SNORM rg8_snorm 1065bd8deadSopenharmony_ci R16_SNORM_EXT r16_snorm 1075bd8deadSopenharmony_ci R8_SNORM r8_snorm 1085bd8deadSopenharmony_ci 1095bd8deadSopenharmony_ci 1105bd8deadSopenharmony_ci Add to Table 8.28 'Texel sizes, compatibility classes, and pixel 1115bd8deadSopenharmony_ci format/type combinations for each image format' 1125bd8deadSopenharmony_ci 1135bd8deadSopenharmony_ci Image Format Size Class Pixel Format/Type 1145bd8deadSopenharmony_ci -------------- ---- ----- ----------------------------------------- 1155bd8deadSopenharmony_ci RG32F 64 2x32 RG, FLOAT 1165bd8deadSopenharmony_ci RG16F 32 2x16 RG, HALF_FLOAT 1175bd8deadSopenharmony_ci R11F_G11F_B10F 32 (a) RGB, UNSIGNED_INT_10F_11F_11F_REV 1185bd8deadSopenharmony_ci R16F 16 1x16 RED, HALF_FLOAT 1195bd8deadSopenharmony_ci 1205bd8deadSopenharmony_ci RGB10_A2UI 32 (b) RGBA_INTEGER, UNSIGNED_INT_2_10_10_10_REV 1215bd8deadSopenharmony_ci RG32UI 64 2x32 RG_INTEGER, UNSIGNED_INT 1225bd8deadSopenharmony_ci RG16UI 32 2x16 RG_INTEGER, UNSIGNED_SHORT 1235bd8deadSopenharmony_ci RG8UI 16 2x8 RG_INTEGER, UNSIGNED_BYTE 1245bd8deadSopenharmony_ci R16UI 16 1x16 RED_INTEGER, UNSIGNED_SHORT 1255bd8deadSopenharmony_ci R8UI 8 1x8 RED_INTEGER, UNSIGNED_BYTE 1265bd8deadSopenharmony_ci 1275bd8deadSopenharmony_ci RG32I 64 2x32 RG_INTEGER, INT 1285bd8deadSopenharmony_ci RG16I 32 2x16 RG_INTEGER, SHORT 1295bd8deadSopenharmony_ci RG8I 16 2x8 RG_INTEGER, BYTE 1305bd8deadSopenharmony_ci R16I 16 1x16 RED_INTEGER, SHORT 1315bd8deadSopenharmony_ci R8I 8 1x8 RED_INTEGER, BYTE 1325bd8deadSopenharmony_ci 1335bd8deadSopenharmony_ci RGBA16_EXT 64 4x16 RGBA, UNSIGNED_SHORT 1345bd8deadSopenharmony_ci RGB10_A2 32 (b) RGBA, UNSIGNED_INT_2_10_10_10_REV 1355bd8deadSopenharmony_ci RG16_EXT 32 2x16 RG, UNSIGNED_SHORT 1365bd8deadSopenharmony_ci RG8 16 2x8 RG, UNSIGNED_BYTE 1375bd8deadSopenharmony_ci R16_EXT 16 1x16 RED, UNSIGNED_SHORT 1385bd8deadSopenharmony_ci R8 8 1x8 RED, UNSIGNED_BYTE 1395bd8deadSopenharmony_ci 1405bd8deadSopenharmony_ci RGBA16_SNORM_EXT 64 4x16 RGBA, SHORT 1415bd8deadSopenharmony_ci RG16_SNORM_EXT 32 2x16 RG, SHORT 1425bd8deadSopenharmony_ci RG8_SNORM 16 2x8 RG, BYTE 1435bd8deadSopenharmony_ci R16_SNORM_EXT 16 1x16 RED, SHORT 1445bd8deadSopenharmony_ci R8_SNORM 8 1x8 RED, BYTE 1455bd8deadSopenharmony_ci 1465bd8deadSopenharmony_ci Table 2.28, '... Class (a) is for 11/11/10 packed floating-point 1475bd8deadSopenharmony_ci formats; class (b) is for 10/10/10/2 packed formats.' 1485bd8deadSopenharmony_ci 1495bd8deadSopenharmony_ci 1505bd8deadSopenharmony_ciNew Implementation Dependent State 1515bd8deadSopenharmony_ci 1525bd8deadSopenharmony_ci None 1535bd8deadSopenharmony_ci 1545bd8deadSopenharmony_ciNew State 1555bd8deadSopenharmony_ci 1565bd8deadSopenharmony_ci None 1575bd8deadSopenharmony_ci 1585bd8deadSopenharmony_ci 1595bd8deadSopenharmony_ciModifications to the OpenGL ES Shading Language Specification, Version 3.10 1605bd8deadSopenharmony_ci 1615bd8deadSopenharmony_ci Including the following line in a shader can be used to control the 1625bd8deadSopenharmony_ci language features described in this extension: 1635bd8deadSopenharmony_ci 1645bd8deadSopenharmony_ci #extension GL_NV_image_formats : <behavior> 1655bd8deadSopenharmony_ci 1665bd8deadSopenharmony_ci where <behavior> is as specified in section 3.3. 1675bd8deadSopenharmony_ci 1685bd8deadSopenharmony_ci New preprocessor #defines are added to the OpenGL ES Shading Language: 1695bd8deadSopenharmony_ci 1705bd8deadSopenharmony_ci #define GL_NV_image_formats 1 1715bd8deadSopenharmony_ci 1725bd8deadSopenharmony_ci 1735bd8deadSopenharmony_ci Section 4.4.7 Format Layout Qualifiers 1745bd8deadSopenharmony_ci 1755bd8deadSopenharmony_ci Add to '<float-image-format-qualifier>': 1765bd8deadSopenharmony_ci rg32f 1775bd8deadSopenharmony_ci rg16f 1785bd8deadSopenharmony_ci r11f_g11f_b10f 1795bd8deadSopenharmony_ci r16f 1805bd8deadSopenharmony_ci rgba16 1815bd8deadSopenharmony_ci rgb10_a2 1825bd8deadSopenharmony_ci rg16 1835bd8deadSopenharmony_ci rg8 1845bd8deadSopenharmony_ci r16 1855bd8deadSopenharmony_ci r8 1865bd8deadSopenharmony_ci rgba16_snorm 1875bd8deadSopenharmony_ci rg16_snorm 1885bd8deadSopenharmony_ci rg8_snorm 1895bd8deadSopenharmony_ci r16_snorm 1905bd8deadSopenharmony_ci r8_snorm 1915bd8deadSopenharmony_ci 1925bd8deadSopenharmony_ci Add to '<int-image-format-qualifier>': 1935bd8deadSopenharmony_ci rg32i 1945bd8deadSopenharmony_ci rg16i 1955bd8deadSopenharmony_ci rg8i 1965bd8deadSopenharmony_ci r16i 1975bd8deadSopenharmony_ci r8i 1985bd8deadSopenharmony_ci 1995bd8deadSopenharmony_ci Add to '<uint-image-format-qualifier>': 2005bd8deadSopenharmony_ci rgb10_a2ui 2015bd8deadSopenharmony_ci rg32ui 2025bd8deadSopenharmony_ci rg16ui 2035bd8deadSopenharmony_ci rg8ui 2045bd8deadSopenharmony_ci r16ui 2055bd8deadSopenharmony_ci r8ui 2065bd8deadSopenharmony_ci 2075bd8deadSopenharmony_ciErrors 2085bd8deadSopenharmony_ci 2095bd8deadSopenharmony_ci No new errors. 2105bd8deadSopenharmony_ci 2115bd8deadSopenharmony_ci 2125bd8deadSopenharmony_ciDependencies on EXT_texture_norm16 2135bd8deadSopenharmony_ci 2145bd8deadSopenharmony_ci If EXT_texture_norm16 or equivalent functionality is not 2155bd8deadSopenharmony_ci supported, remove references to image format R16_EXT, RG16_EXT, 2165bd8deadSopenharmony_ci RGBA16_EXT, R16_SNORM_EXT, RG16_SNORM_EXT and RGBA16_SNORM_EXT. Also 2175bd8deadSopenharmony_ci remove references to image layout qualifiers rgba16, rg16, r16, 2185bd8deadSopenharmony_ci rgba16_snorm, rg16_snorm and r16_snorm. 2195bd8deadSopenharmony_ci 2205bd8deadSopenharmony_ciDependencies on NV_bindless_texture 2215bd8deadSopenharmony_ci 2225bd8deadSopenharmony_ci If NV_bindless_texture is supported, the additional formats added 2235bd8deadSopenharmony_ci by this extension are also supported for the GetImageHandleNV 2245bd8deadSopenharmony_ci command. 2255bd8deadSopenharmony_ci 2265bd8deadSopenharmony_ciIssues 2275bd8deadSopenharmony_ci 2285bd8deadSopenharmony_ci None yet! 2295bd8deadSopenharmony_ci 2305bd8deadSopenharmony_ciRevision History 2315bd8deadSopenharmony_ci 2325bd8deadSopenharmony_ci Rev. Date Author Changes 2335bd8deadSopenharmony_ci ---- -------- -------- ----------------------------------------------- 2345bd8deadSopenharmony_ci 4 10/24/14 dkoch Mark complete 2355bd8deadSopenharmony_ci 3 09/30/14 dkoch Add interactions with NV_bindless_texture 2365bd8deadSopenharmony_ci 2 07/24/14 dkoch Add suffixes to tokens add NV_texture_norm16 2375bd8deadSopenharmony_ci 1 07/09/14 mheyer Base NV_image_formats on ARB_image_load_store and 2385bd8deadSopenharmony_ci strip out everything that is already in ES3.1 239