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