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