blob: 323a36e889480e802b9b2e2fe9efb6e027654731 [file] [log] [blame]
Name
ARB_texture_rgb10_a2ui
Name Strings
GL_ARB_texture_rgb10_a2ui
Contact
Daniel Koch (daniel 'at' transgaming.com)
Contributors
Daniel Koch, TransGaming
Graham Sellers, AMD
Jeff Bolz, NVIDIA
Pat Brown, NVIDIA
Notice
Copyright (c) 2010-2013 The Khronos Group Inc. Copyright terms at
http://www.khronos.org/registry/speccopyright.html
Specification Update Policy
Khronos-approved extension specifications are updated in response to
issues and bugs prioritized by the Khronos OpenGL Working Group. For
extensions which have been promoted to a core Specification, fixes will
first appear in the latest version of that core Specification, and will
eventually be backported to the extension document. This policy is
described in more detail at
https://www.khronos.org/registry/OpenGL/docs/update_policy.php
Status
Complete. Approved by the ARB at the 2010/01/22 F2F meeting.
Approved by the Khronos Board of Promoters on March 10, 2010.
Version
Last Modified Date: January 29, 2009
Author Revision: 7
Number
ARB Extension #83
Dependencies
This extension is written against the OpenGL 3.2 specification,
compatibility profile, but it can apply against previous versions
of OpenGL.
Requires OpenGL 3.0 or EXT_texture_integer.
Overview
This extension adds support for the following data format:
A new texturing format for unsigned 10.10.10.2 integer textures.
OpenGL has supported RGB10 and RGB10_A2 formats for a very long time.
This extension provides a variant of RGB10_A2 which supports unsigned
integer data (in contrast to the above "unsigned normalized integer"
formats).
IP Status
No known IP claims.
New Procedures and Functions
None
New Tokens
Accepted by the <internalFormat> parameter of TexImage1D, TexImage2D,
TexImage3D, CopyTexImage1D, CopyTexImage2D, RenderbufferStorage and
RenderbufferStorageMultisample:
RGB10_A2UI 0x906F
Additions to Chapter 3 of the OpenGL 3.2 Specification (Compatibility Profile) (Rasterization)
Modify Section 3.7.4 (Transfer of Pixel Rectangles), p. 183
(modify Table 3.8, Packed pixel formats, p. 189, to allow the use of
integer pixel formats with some packed pixel types)
GL Data #
type Parameter Token Name Type Comps Matching Pixel Formats
--------------------------- ------ --- -----------------------------
UNSIGNED_BYTE_3_3_2 ubyte 3 RGB, RGB_INTEGER
UNSIGNED_BYTE_2_3_3_REV ubyte 3 RGB, RGB_INTEGER
UNSIGNED_SHORT_5_6_5 ushort 3 RGB, RGB_INTEGER
UNSIGNED_SHORT_5_6_5_REV ushort 3 RGB, RGB_INTEGER
UNSIGNED_SHORT_4_4_4_4 ushort 4 RGBA, BGRA, RGBA_INTEGER,
BGRA_INTEGER
UNSIGNED_SHORT_4_4_4_4_REV ushort 4 RGBA, BGRA, RGBA_INTEGER,
BGRA_INTEGER
UNSIGNED_SHORT_5_5_5_1 ushort 4 RGBA, BGRA, RGBA_INTEGER,
BGRA_INTEGER
UNSIGNED_SHORT_1_5_5_5_REV ushort 4 RGBA, BGRA, RGBA_INTEGER,
BGRA_INTEGER
UNSIGNED_INT_8_8_8_8 uint 4 RGBA, BGRA, RGBA_INTEGER,
BGRA_INTEGER
UNSIGNED_INT_8_8_8_8_REV uint 4 RGBA, BGRA, RGBA_INTEGER,
BGRA_INTEGER
UNSIGNED_INT_10_10_10_2 uint 4 RGBA, BGRA, RGBA_INTEGER,
BGRA_INTEGER
UNSIGNED_INT_2_10_10_10_REV uint 4 RGBA, BGRA, RGBA_INTEGER,
BGRA_INTEGER
<other rows unchanged>
Modify Section 3.9.1 (Texture Image Specification), p 212
(add the following required Texture and renderbuffer color formats, p 216)
- RGB10_A2UI
(add the following to Table 3.17: "Correspondence of sized internal color
formats to base internal formats...", beginning on p 218)
Sized Base R G B A Shared
Internal Format Internal Format bits bits bits bits bits
----------------------- --------------------- ---- ---- ---- ---- ------
RGB10_A2UI RGBA ui10 ui10 ui10 ui2
New State
None.
New Implementation Dependent State
None.
Issues
1. What should the new enumerant be called?
Possibilities include:
RGB10A2UI - difficult to read
RGB10_A2UI - follows precedence of RGB10_A2 and other UI texture formats,
however it could difficult to know at a glace if the the UI applies to
both the RGB and A components, or just the A component.
RGB10UI_A2UI - follows the precedence of R11F_G11F_B10F
RGB10_A2_UI - along the same lines as the _SNORM formats, but divergent
from other UI formats.
RESOLVED. Using RGB10_A2UI. The UI applies to all 4 components.
2. What should this extension be called?
RESOLVED: ARB_texture_rgb10_a2ui, after the new internal format that is
added. Early drafts used the name texture_unsigned_10_10_10_2, but this
is only somewhat related type that isn't added by this extension.
3. Should this new format be required to be renderable?
RESOLVED: Yes. It appears to be renderable in other APIs that are
supported by the same hardware, and no hardware vendors have objected.
4. It is possible to load packed 10_10_10_2 unsigned integer data into GL
via TexImage without this extension?
RESOLVED: No. The EXT_texture_integer extension, as later
incorporated into OpenGL 3.0, added new integer pixel format enums
(e.g., RGBA_INTEGER) and texture formats (e.g., RGBA16UI). All texture
formats added by that extension had a "matching" non-packed format and
type combination, so there wasn't a strong need to explicitly support
packed pixel types for integer pixel formats.
The texture format added by this extension logically maps to a "packed"
format/type combination, so we add this support by adding RGB_INTEGER,
RGBA_INTEGER, and BGRA_INTEGER (as appropriate) to the list of formats
supported by packed pixel data types.
Even though we are only adding one "packed" texture format, we chose to
allow all packed types with corresponding integer formats for
orthogonality.
Revision History
Rev. Date Author Changes
---- ------------ -------- ------------------------------------------------------
7 Jan 29, 2010 pbrown Update spec language to explicitly allow
packed pixels data types with integer pixel
formats; update issue 4 to indicate that
packed pixels with integer formats wasn't
previously allowed (bug 5674).
6 Jan 26, 2010 pbrown assign enum value
5 Dec 10, 2009 dgkoch de-ARBed new tokens
4 Oct 23, 2009 dgkoch fixed format typo
3 Oct 23, 2009 dgkoch added issue 4, resolved issues 1-3, renamed extension
2 Oct 8, 2009 dgkoch Enum can also be accepted for RenderbufferStorage*
1 Oct 8, 2009 dgkoch Initial revision