blob: b842dabc7670966a75f3184c9f33c0b9ce21ed3b [file] [log] [blame]
Name
EXT_texture_norm16
Name Strings
GL_EXT_texture_norm16
Contributors
Contributors to EXT_texture_snorm
Daniel Koch, NVIDIA
Jan-Harald Fredriksen, ARM
Contact
Mathias Heyer, NVIDIA (mheyer [at] nvidia.com)
Status
Complete
Version
Last Modified Date: 2014-10-24
Revision: 5
Number
OpenGL ES Extension #207
Dependencies
OpenGL ES 3.1 is required.
This extension is written against the OpenGL ES 3.1 (June 4, 2014)
specification.
This extension interacts with EXT_texture_buffer.
This extension interacts with EXT_texture_view.
This extension interacts with OES_texture_storage_multisample_2d_array.
This extension interacts with EXT_copy_image.
This extension interacts with EXT_texture_compression_s3tc.
This extension interacts with EXT_texture_compression_rgtc.
This extension interacts with NV_texture_compression_s3tc.
This extension interacts with NV_sRGB_formats.
Overview
OpenGL ES 3.1 supports 8-bit (signed) normalized textures.
This extension provides a set of new 16 bit signed normalized and
unsigned normalized fixed point texture, renderbuffer and
texture buffer formats.
New Procedures and Functions
None
New Tokens
Accepted by the <internalFormat> parameter of TexImage2D,TexImage3D,
TexStorage2D, TexStorage3D and TexStorage2DMultisample,
TexStorage3DMultisampleOES, TexBufferEXT, TexBufferRangeEXT,
TextureViewEXT, RenderbufferStorage and RenderbufferStorageMultisample:
R16_EXT 0x822A
RG16_EXT 0x822C
RGBA16_EXT 0x805B
Accepted by the <internalFormat> parameter of TexImage2D,TexImage3D,
TexStorage2D, TexStorage3D, TexStorage2DMultisample,
TexStorage3DMultisampleOES and TextureViewEXT:
RGB16_EXT 0x8054
R16_SNORM_EXT 0x8F98
RG16_SNORM_EXT 0x8F99
RGB16_SNORM_EXT 0x8F9A
RGBA16_SNORM_EXT 0x8F9B
Additions to Chapter 8 of the OpenGL ES 3.1 Specification
(Textures and Samplers)
Add to Table 4.X.1 (introduced by EXT_copy_image) "Compatible internal
Formats for copying between compressed and uncompressed...."
------------------------------------------------------------------------------
| 64-bit | RGBA16_EXT, | COMPRESSED_RGB_S3TC_DXT1_EXT, |
| | RGBA16_SNORM_EXT | COMPRESSED_SRGB_S3TC_DXT1_NV, |
| | | COMPRESSED_RGBA_S3TC_DXT1_EXT, |
| | | COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV, |
| | | COMPRESSED_RED_RGTC1_EXT, |
| | | COMPRESSED_SIGNED_RED_RGTC1_EXT, |
| | | COMPRESSED_RGB8_ETC2, |
| | | COMPRESSED_SRGB8_ETC2, |
| | | COMPRESSED_R11_EAC, |
| | | COMPRESSED_SIGNED_R11_EAC, |
| | | COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, |
| | | COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 |
------------------------------------------------------------------------------
Add a row to Table 8.2 "Valid combinations of format, type and sized
internal formats":
Format Type External Bytes Internal Format
per Pixel
--------------- --------------- --------------- ---------------
RED UNSIGNED_SHORT 2 R16_EXT
RG UNSIGNED_SHORT 4 RG16_EXT
RGB UNSIGNED_SHORT 6 RGB16_EXT
RGBA UNSIGNED_SHORT 8 RGBA16_EXT
RED SHORT 2 R16_SNORM_EXT
RG SHORT 4 RG16_SNORM_EXT
RGB SHORT 6 RGB16_SNORM_EXT
RGBA SHORT 8 RGBA16_SNORM_EXT
Add to Table 8.13 "Correspondence of sized internal formats to base
internal formats,...":
Sized Base Bits/component CR TF Req. Req.
Internal Internal S are shared bits rend. tex.
Format Format R G B A S
------------ ----------- ---- ---- ---- --- ---- --- --- ---- ---
R16_EXT RED 16 X X X X
RG16_EXT RG 16 16 X X X X
RGB16_EXT RGB 16 16 16 - X - X
RGBA16_EXT RGBA 16 16 16 16 X X X X
R16_SNORM_EXT RED s16 - X - X
RG16_SNORM_EXT RG s16 s16 - X - X
RGB16_SNORM_EXT RGB s16 s16 s16 - X - X
RGBA16_SNORM_EXT RGBA s16 s16 s16 s16 - X - X
Add to Table 8.15: "ReadPixels format and type used during CopyTex*."
Read Buffer Format format type
------------------------------------- ------ --------------
16bit Unsigned Normalized Fixed-point RGBA UNSIGNED_SHORT
Add to Table 8.X.2 "Compatible internal formats for TextureViewEXT. ..."
--------------------------------------------------------------------------
| Class | Internal formats |
--------------------------------------------------------------------------
| VIEW_CLASS_64_BITS | RGBA16_EXT, RGBA16_SNORM_EXT |
--------------------------------------------------------------------------
| VIEW_CLASS_48_BITS | RGB16_EXT, RGB16_SNORM_EXT |
--------------------------------------------------------------------------
| VIEW_CLASS_32_BITS | RG16_EXT, RG16_SNORM_EXT |
--------------------------------------------------------------------------
| VIEW_CLASS_16_BITS | R16_EXT, R16_SNORM_EXT |
--------------------------------------------------------------------------
(If EXT_texture_view is not supported, this additions will apply to
Table 4.X.2 "Compatible internal formats for CopyImageSubDataEXT" as
introduced by EXT_copy_image)
Add to Table texbo1, "Internal Formats for Buffer Textures. ..."
Component
Sized Internal Format Base Type Components Norm 0 1 2 3
--------------------- --------- ---------- ---- ---------
R16_EXT ushort 1 Yes R 0 0 1
RG16_EXT ushort 2 Yes R G 0 1
RGBA16_EXT ushort 4 Yes R G B A
Additions to Chapter 15 of the OpenGL ES 3.1 Specification
(Writing Fragments and Samples to the Framebuffer)
Add to the second paragraph of Section 16.1.2 "ReadPixels":
"For 16bit unsigned normalized fixed-point rendering surfaces,
the combination format RGBA and type UNSIGNED_SHORT is accepted."
Errors
No new errors.
Interactions with EXT_texture_buffer
If EXT_texture_buffer is not supported, remove references to TexBufferEXT
and TexBufferRangeEXT. Also remove additions to Table textbo1.
Interactions with EXT_texture_view
If EXT_texture_view is not supported, remove references to TextureViewEXT.
Also remove additions to Table 8.X.2.
Interactions with OES_texture_storage_multisample_2d_array
If OES_texture_storage_multisample_2d_array is not supported, remove
references to TexStorage3DMultisampleOES
Interactions with EXT_copy_image
If EXT_copy_image is not supported, remove additions to Table 8.X.2.
(If EXT_texture_view is not supported remove references to Table 4.X.2)
Interactions with EXT_texture_compression_s3tc (or equivalent):
If EXT_texture_compression_s3tc or similar functionality (i.e.
NV_texture_compression_s3tc etc) is not supported, ignore references
to the following texture formats: COMPRESSED_RGB_S3TC_DXT1_EXT and
COMPRESSED_RGBA_S3TC_DXT1_EXT.
Interactions with NV_sRGB_formats (or equivalent):
If NV_sRGB_formats or similar functionality is not
supported, ignore references to the following texture formats:
COMPRESSED_SRGB_S3TC_DXT1_NV and COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV.
Interactions with EXT_texture_compression_rgtc (or equivalent):
If EXT_texture_compression_rgtc or equivalent functionality is not
supported, ignore references to the following texture formats:
COMPRESSED_RED_RGTC1_EXT, COMPRESSED_SIGNED_RED_RGTC1_EXT.
Issues
None yet.
Revision History:
Revision 1 2014-07-03 (mheyer)
initial revision
Revision 2 2014-07-18 (mheyer)
add EXT_texture_buffer, EXT_texture_view, EXT_copy_image and
OES_texture_storage_multisample_2d_array interactions
Revision 3 2014-07-18 (mheyer)
rename to NV_texture_norm16, mark SNORM formats as non color-renderable
Revision 4 2014-08-05 (mheyer)
rename to EXT_texture_norm16, added interactions with compressed
texture format extensions
Revision: 5 2014-10-24 (dkoch)
mark complete, publishing cleanup