blob: b7a35492fb30b1af715b325be483eb82f3e1044d [file] [log] [blame]
Name
NV_image_formats
Name Strings
GL_NV_image_formats
Contact
Mathias Heyer, NVIDIA (mheyer 'at' nvidia.com)
Contributors
Contributors to ARB_shader_image_load_store
Michael Chock, NVIDIA
Daniel Koch, NVIDIA
Notice
Copyright (c) 2011-2014 The Khronos Group Inc. Copyright terms at
http://www.khronos.org/registry/speccopyright.html
Portions Copyright (c) 2014 NVIDIA Corporation.
Status
Complete
Version
Last Modified Date: October 24, 2014
Revision: 4
Number
OpenGL ES Extension #200
Dependencies
This extension is written against the OpenGL ES 3.1 (March 17, 2014)
specification.
This extension is written against version 3.10 of the OpenGL ES
Shading Language specification.
OpenGL ES 3.1 and GLSL ES 3.10 are required.
This extension interacts with EXT_texture_norm16.
This extension interacts with NV_bindless_texture.
Overview
OpenGL ES 3.1 specifies a variety of formats required to be usable
with texture images. This extension introduces the texture image
formats missing for parity with OpenGL 4.4.
New Procedures and Functions
None
New Tokens
None
Additions to Chapter 8 of the OpenGL ES 3.1 Specification
(Textures and Samplers)
Section 8.22, Texture Image Loads and Stores
Add to Table 8.27 'Supported image unit formats with equivalent formats
layout qualifiers':
Image Unit Format Format Qualifer
----------------- ---------------
RG32F rg32f
RG16F rg16f
R11F_G11F_B10F r11f_g11f_b10f
R16F r16f
RGB10_A2UI rgb10_a2ui
RG32UI rg32ui
RG16UI rg16ui
RG8UI rg8ui
R16UI r16ui
R8UI r8ui
RG32I rg32i
RG16I rg16i
RG8I rg8i
R16I r16i
R8I r8i
RGBA16_EXT rgba16
RGB10_A2 rgb10_a2
RG16_EXT rg16
RG8 rg8
R16_EXT r16
R8 r8
RGBA16_SNORM_EXT rgba16_snorm
RG16_SNORM_EXT rg16_snorm
RG8_SNORM rg8_snorm
R16_SNORM_EXT r16_snorm
R8_SNORM r8_snorm
Add to Table 8.28 'Texel sizes, compatibility classes, and pixel
format/type combinations for each image format'
Image Format Size Class Pixel Format/Type
-------------- ---- ----- -----------------------------------------
RG32F 64 2x32 RG, FLOAT
RG16F 32 2x16 RG, HALF_FLOAT
R11F_G11F_B10F 32 (a) RGB, UNSIGNED_INT_10F_11F_11F_REV
R16F 16 1x16 RED, HALF_FLOAT
RGB10_A2UI 32 (b) RGBA_INTEGER, UNSIGNED_INT_2_10_10_10_REV
RG32UI 64 2x32 RG_INTEGER, UNSIGNED_INT
RG16UI 32 2x16 RG_INTEGER, UNSIGNED_SHORT
RG8UI 16 2x8 RG_INTEGER, UNSIGNED_BYTE
R16UI 16 1x16 RED_INTEGER, UNSIGNED_SHORT
R8UI 8 1x8 RED_INTEGER, UNSIGNED_BYTE
RG32I 64 2x32 RG_INTEGER, INT
RG16I 32 2x16 RG_INTEGER, SHORT
RG8I 16 2x8 RG_INTEGER, BYTE
R16I 16 1x16 RED_INTEGER, SHORT
R8I 8 1x8 RED_INTEGER, BYTE
RGBA16_EXT 64 4x16 RGBA, UNSIGNED_SHORT
RGB10_A2 32 (b) RGBA, UNSIGNED_INT_2_10_10_10_REV
RG16_EXT 32 2x16 RG, UNSIGNED_SHORT
RG8 16 2x8 RG, UNSIGNED_BYTE
R16_EXT 16 1x16 RED, UNSIGNED_SHORT
R8 8 1x8 RED, UNSIGNED_BYTE
RGBA16_SNORM_EXT 64 4x16 RGBA, SHORT
RG16_SNORM_EXT 32 2x16 RG, SHORT
RG8_SNORM 16 2x8 RG, BYTE
R16_SNORM_EXT 16 1x16 RED, SHORT
R8_SNORM 8 1x8 RED, BYTE
Table 2.28, '... Class (a) is for 11/11/10 packed floating-point
formats; class (b) is for 10/10/10/2 packed formats.'
New Implementation Dependent State
None
New State
None
Modifications to the OpenGL ES Shading Language Specification, Version 3.10
Including the following line in a shader can be used to control the
language features described in this extension:
#extension GL_NV_image_formats : <behavior>
where <behavior> is as specified in section 3.3.
New preprocessor #defines are added to the OpenGL ES Shading Language:
#define GL_NV_image_formats 1
Section 4.4.7 Format Layout Qualifiers
Add to '<float-image-format-qualifier>':
rg32f
rg16f
r11f_g11f_b10f
r16f
rgba16
rgb10_a2
rg16
rg8
r16
r8
rgba16_snorm
rg16_snorm
rg8_snorm
r16_snorm
r8_snorm
Add to '<int-image-format-qualifier>':
rg32i
rg16i
rg8i
r16i
r8i
Add to '<uint-image-format-qualifier>':
rgb10_a2ui
rg32ui
rg16ui
rg8ui
r16ui
r8ui
Errors
No new errors.
Dependencies on EXT_texture_norm16
If EXT_texture_norm16 or equivalent functionality is not
supported, remove references to image format R16_EXT, RG16_EXT,
RGBA16_EXT, R16_SNORM_EXT, RG16_SNORM_EXT and RGBA16_SNORM_EXT. Also
remove references to image layout qualifiers rgba16, rg16, r16,
rgba16_snorm, rg16_snorm and r16_snorm.
Dependencies on NV_bindless_texture
If NV_bindless_texture is supported, the additional formats added
by this extension are also supported for the GetImageHandleNV
command.
Issues
None yet!
Revision History
Rev. Date Author Changes
---- -------- -------- -----------------------------------------------
4 10/24/14 dkoch Mark complete
3 09/30/14 dkoch Add interactions with NV_bindless_texture
2 07/24/14 dkoch Add suffixes to tokens add NV_texture_norm16
1 07/09/14 mheyer Base NV_image_formats on ARB_image_load_store and
strip out everything that is already in ES3.1