15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    ARB_texture_rgb10_a2ui
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_ARB_texture_rgb10_a2ui
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContact
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Daniel Koch (daniel 'at' transgaming.com)
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciContributors
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    Daniel Koch, TransGaming
165bd8deadSopenharmony_ci    Graham Sellers, AMD
175bd8deadSopenharmony_ci    Jeff Bolz, NVIDIA
185bd8deadSopenharmony_ci    Pat Brown, NVIDIA
195bd8deadSopenharmony_ci
205bd8deadSopenharmony_ciNotice
215bd8deadSopenharmony_ci
225bd8deadSopenharmony_ci    Copyright (c) 2010-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. Approved by the ARB at the 2010/01/22 F2F meeting.
385bd8deadSopenharmony_ci    Approved by the Khronos Board of Promoters on March 10, 2010.
395bd8deadSopenharmony_ci
405bd8deadSopenharmony_ciVersion
415bd8deadSopenharmony_ci
425bd8deadSopenharmony_ci    Last Modified Date: January 29, 2009
435bd8deadSopenharmony_ci    Author Revision: 7
445bd8deadSopenharmony_ci
455bd8deadSopenharmony_ciNumber
465bd8deadSopenharmony_ci
475bd8deadSopenharmony_ci    ARB Extension #83
485bd8deadSopenharmony_ci
495bd8deadSopenharmony_ciDependencies
505bd8deadSopenharmony_ci
515bd8deadSopenharmony_ci    This extension is written against the OpenGL 3.2 specification, 
525bd8deadSopenharmony_ci    compatibility profile, but it can apply against previous versions
535bd8deadSopenharmony_ci    of OpenGL.
545bd8deadSopenharmony_ci
555bd8deadSopenharmony_ci    Requires OpenGL 3.0 or EXT_texture_integer.
565bd8deadSopenharmony_ci
575bd8deadSopenharmony_ciOverview
585bd8deadSopenharmony_ci
595bd8deadSopenharmony_ci    This extension adds support for the following data format:
605bd8deadSopenharmony_ci
615bd8deadSopenharmony_ci    A new texturing format for unsigned 10.10.10.2 integer textures. 
625bd8deadSopenharmony_ci
635bd8deadSopenharmony_ci    OpenGL has supported RGB10 and RGB10_A2 formats for a very long time.  
645bd8deadSopenharmony_ci    This extension provides a variant of RGB10_A2 which supports unsigned 
655bd8deadSopenharmony_ci    integer data (in contrast to the above "unsigned normalized integer" 
665bd8deadSopenharmony_ci    formats).
675bd8deadSopenharmony_ci
685bd8deadSopenharmony_ciIP Status
695bd8deadSopenharmony_ci
705bd8deadSopenharmony_ci    No known IP claims.
715bd8deadSopenharmony_ci
725bd8deadSopenharmony_ciNew Procedures and Functions
735bd8deadSopenharmony_ci
745bd8deadSopenharmony_ci    None
755bd8deadSopenharmony_ci
765bd8deadSopenharmony_ciNew Tokens
775bd8deadSopenharmony_ci
785bd8deadSopenharmony_ci    Accepted by the <internalFormat> parameter of TexImage1D, TexImage2D,
795bd8deadSopenharmony_ci    TexImage3D, CopyTexImage1D, CopyTexImage2D, RenderbufferStorage and 
805bd8deadSopenharmony_ci    RenderbufferStorageMultisample:
815bd8deadSopenharmony_ci
825bd8deadSopenharmony_ci        RGB10_A2UI                           0x906F
835bd8deadSopenharmony_ci
845bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL 3.2 Specification (Compatibility Profile) (Rasterization)
855bd8deadSopenharmony_ci
865bd8deadSopenharmony_ci    Modify Section 3.7.4 (Transfer of Pixel Rectangles), p. 183
875bd8deadSopenharmony_ci
885bd8deadSopenharmony_ci    (modify Table 3.8, Packed pixel formats, p. 189, to allow the use of
895bd8deadSopenharmony_ci     integer pixel formats with some packed pixel types)
905bd8deadSopenharmony_ci
915bd8deadSopenharmony_ci                                   GL Data  #
925bd8deadSopenharmony_ci      type Parameter Token Name     Type  Comps  Matching Pixel Formats
935bd8deadSopenharmony_ci      ---------------------------  ------  ---  -----------------------------
945bd8deadSopenharmony_ci      UNSIGNED_BYTE_3_3_2          ubyte    3   RGB, RGB_INTEGER
955bd8deadSopenharmony_ci      UNSIGNED_BYTE_2_3_3_REV      ubyte    3   RGB, RGB_INTEGER
965bd8deadSopenharmony_ci      UNSIGNED_SHORT_5_6_5         ushort   3   RGB, RGB_INTEGER
975bd8deadSopenharmony_ci      UNSIGNED_SHORT_5_6_5_REV     ushort   3   RGB, RGB_INTEGER
985bd8deadSopenharmony_ci      UNSIGNED_SHORT_4_4_4_4       ushort   4   RGBA, BGRA, RGBA_INTEGER, 
995bd8deadSopenharmony_ci                                                  BGRA_INTEGER
1005bd8deadSopenharmony_ci      UNSIGNED_SHORT_4_4_4_4_REV   ushort   4   RGBA, BGRA, RGBA_INTEGER, 
1015bd8deadSopenharmony_ci                                                  BGRA_INTEGER
1025bd8deadSopenharmony_ci      UNSIGNED_SHORT_5_5_5_1       ushort   4   RGBA, BGRA, RGBA_INTEGER, 
1035bd8deadSopenharmony_ci                                                  BGRA_INTEGER
1045bd8deadSopenharmony_ci      UNSIGNED_SHORT_1_5_5_5_REV   ushort   4   RGBA, BGRA, RGBA_INTEGER, 
1055bd8deadSopenharmony_ci                                                  BGRA_INTEGER
1065bd8deadSopenharmony_ci      UNSIGNED_INT_8_8_8_8         uint     4   RGBA, BGRA, RGBA_INTEGER, 
1075bd8deadSopenharmony_ci                                                  BGRA_INTEGER
1085bd8deadSopenharmony_ci      UNSIGNED_INT_8_8_8_8_REV     uint     4   RGBA, BGRA, RGBA_INTEGER, 
1095bd8deadSopenharmony_ci                                                  BGRA_INTEGER
1105bd8deadSopenharmony_ci      UNSIGNED_INT_10_10_10_2      uint     4   RGBA, BGRA, RGBA_INTEGER, 
1115bd8deadSopenharmony_ci                                                  BGRA_INTEGER
1125bd8deadSopenharmony_ci      UNSIGNED_INT_2_10_10_10_REV  uint     4   RGBA, BGRA, RGBA_INTEGER, 
1135bd8deadSopenharmony_ci                                                  BGRA_INTEGER
1145bd8deadSopenharmony_ci      <other rows unchanged>
1155bd8deadSopenharmony_ci
1165bd8deadSopenharmony_ci
1175bd8deadSopenharmony_ci    Modify Section 3.9.1 (Texture Image Specification), p 212
1185bd8deadSopenharmony_ci
1195bd8deadSopenharmony_ci    (add the following required Texture and renderbuffer color formats, p 216)
1205bd8deadSopenharmony_ci     
1215bd8deadSopenharmony_ci    - RGB10_A2UI
1225bd8deadSopenharmony_ci
1235bd8deadSopenharmony_ci    (add the following to Table 3.17: "Correspondence of sized internal color 
1245bd8deadSopenharmony_ci    formats to base internal formats...", beginning on p 218)
1255bd8deadSopenharmony_ci
1265bd8deadSopenharmony_ci     Sized                     Base                     R    G    B    A    Shared
1275bd8deadSopenharmony_ci     Internal Format           Internal Format          bits bits bits bits bits
1285bd8deadSopenharmony_ci     -----------------------   ---------------------    ---- ---- ---- ---- ------
1295bd8deadSopenharmony_ci     RGB10_A2UI                RGBA                     ui10 ui10 ui10 ui2
1305bd8deadSopenharmony_ci
1315bd8deadSopenharmony_ci
1325bd8deadSopenharmony_ciNew State
1335bd8deadSopenharmony_ci
1345bd8deadSopenharmony_ci    None.
1355bd8deadSopenharmony_ci
1365bd8deadSopenharmony_ciNew Implementation Dependent State
1375bd8deadSopenharmony_ci
1385bd8deadSopenharmony_ci    None.
1395bd8deadSopenharmony_ci
1405bd8deadSopenharmony_ciIssues
1415bd8deadSopenharmony_ci
1425bd8deadSopenharmony_ci    1. What should the new enumerant be called?
1435bd8deadSopenharmony_ci
1445bd8deadSopenharmony_ci       Possibilities include: 
1455bd8deadSopenharmony_ci       RGB10A2UI - difficult to read
1465bd8deadSopenharmony_ci       RGB10_A2UI - follows precedence of RGB10_A2 and other UI texture formats,
1475bd8deadSopenharmony_ci         however it could difficult to know at a glace if the the UI applies to 
1485bd8deadSopenharmony_ci         both the RGB and A components, or just the A component.
1495bd8deadSopenharmony_ci       RGB10UI_A2UI - follows the precedence of R11F_G11F_B10F
1505bd8deadSopenharmony_ci       RGB10_A2_UI - along the same lines as the _SNORM formats, but divergent
1515bd8deadSopenharmony_ci         from other UI formats.
1525bd8deadSopenharmony_ci      
1535bd8deadSopenharmony_ci       RESOLVED. Using RGB10_A2UI.  The UI applies to all 4 components.
1545bd8deadSopenharmony_ci
1555bd8deadSopenharmony_ci    2. What should this extension be called?
1565bd8deadSopenharmony_ci
1575bd8deadSopenharmony_ci       RESOLVED: ARB_texture_rgb10_a2ui, after the new internal format that is 
1585bd8deadSopenharmony_ci       added. Early drafts used the name texture_unsigned_10_10_10_2, but this 
1595bd8deadSopenharmony_ci       is only somewhat related type that isn't added by this extension.
1605bd8deadSopenharmony_ci
1615bd8deadSopenharmony_ci    3. Should this new format be required to be renderable?
1625bd8deadSopenharmony_ci
1635bd8deadSopenharmony_ci       RESOLVED: Yes. It appears to be renderable in other APIs that are 
1645bd8deadSopenharmony_ci       supported by the same hardware, and no hardware vendors have objected.
1655bd8deadSopenharmony_ci
1665bd8deadSopenharmony_ci    4. It is possible to load packed 10_10_10_2 unsigned integer data into GL 
1675bd8deadSopenharmony_ci       via TexImage without this extension?  
1685bd8deadSopenharmony_ci
1695bd8deadSopenharmony_ci       RESOLVED:  No.  The EXT_texture_integer extension, as later
1705bd8deadSopenharmony_ci       incorporated into OpenGL 3.0, added new integer pixel format enums
1715bd8deadSopenharmony_ci       (e.g., RGBA_INTEGER) and texture formats (e.g., RGBA16UI). All texture
1725bd8deadSopenharmony_ci       formats added by that extension had a "matching" non-packed format and
1735bd8deadSopenharmony_ci       type combination, so there wasn't a strong need to explicitly support
1745bd8deadSopenharmony_ci       packed pixel types for integer pixel formats.
1755bd8deadSopenharmony_ci
1765bd8deadSopenharmony_ci       The texture format added by this extension logically maps to a "packed"
1775bd8deadSopenharmony_ci       format/type combination, so we add this support by adding RGB_INTEGER,
1785bd8deadSopenharmony_ci       RGBA_INTEGER, and BGRA_INTEGER (as appropriate) to the list of formats
1795bd8deadSopenharmony_ci       supported by packed pixel data types.
1805bd8deadSopenharmony_ci
1815bd8deadSopenharmony_ci       Even though we are only adding one "packed" texture format, we chose to
1825bd8deadSopenharmony_ci       allow all packed types with corresponding integer formats for
1835bd8deadSopenharmony_ci       orthogonality.
1845bd8deadSopenharmony_ci
1855bd8deadSopenharmony_ci
1865bd8deadSopenharmony_ciRevision History
1875bd8deadSopenharmony_ci
1885bd8deadSopenharmony_ci    Rev.  Date          Author    Changes
1895bd8deadSopenharmony_ci    ----  ------------  --------  ------------------------------------------------------
1905bd8deadSopenharmony_ci     7    Jan 29, 2010  pbrown    Update spec language to explicitly allow
1915bd8deadSopenharmony_ci                                  packed pixels data types with integer pixel
1925bd8deadSopenharmony_ci                                  formats; update issue 4 to indicate that
1935bd8deadSopenharmony_ci                                  packed pixels with integer formats wasn't
1945bd8deadSopenharmony_ci                                  previously allowed (bug 5674).
1955bd8deadSopenharmony_ci     6    Jan 26, 2010  pbrown    assign enum value
1965bd8deadSopenharmony_ci     5    Dec 10, 2009  dgkoch    de-ARBed new tokens
1975bd8deadSopenharmony_ci     4    Oct 23, 2009  dgkoch    fixed format typo
1985bd8deadSopenharmony_ci     3    Oct 23, 2009  dgkoch    added issue 4, resolved issues 1-3, renamed extension
1995bd8deadSopenharmony_ci     2    Oct 8, 2009   dgkoch    Enum can also be accepted for RenderbufferStorage*
2005bd8deadSopenharmony_ci     1    Oct 8, 2009   dgkoch    Initial revision
2015bd8deadSopenharmony_ci
202