skia / external / github.com / KhronosGroup / OpenGL-Registry / 0dc24166d162723781f1bf9fe433f71fa03a7aa0 / . / extensions / NV / NV_deep_texture3D.txt

Name | |

NV_deep_texture3D | |

Name Strings | |

GL_NV_deep_texture3D | |

Contact | |

Eric Werness, NVIDIA Corporation (ewerness 'at' nvidia.com) | |

Status | |

Shipping. | |

Version | |

Last Modified Date: April 12, 2010 | |

Revision: 1 | |

Number | |

424 | |

Dependencies | |

This extension is written against the OpenGL 3.2 specification (Core | |

Profile). | |

Overview | |

Some applications require 3D textures that have a significant number of | |

slices, but less resolution in width and height. In the current spec, the | |

maximum value for the size of all three dimensions is specified by a | |

single value. This extension adds a second set of limits against which 3D | |

textures can be checked if an application needs deeper textures than would | |

be allowed by the symmetric texture limits. | |

New Procedures and Functions | |

None | |

New Tokens | |

Accepted by the <pname> parameter of GetBooleanv, GetDoublev, GetIntegerv | |

and GetFloatv: | |

MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV 0x90D0 | |

MAX_DEEP_3D_TEXTURE_DEPTH_NV 0x90D1 | |

Additions to Chapter 2 of the OpenGL 3.2 Specification (OpenGL Operation) | |

None | |

Additions to Chapter 3 of the OpenGL 3.2 Specification (Rasterization) | |

(modify 3.8.1 Texture Image Specification on p. 141 | |

(add to the discussion of the maximum allowable size of a 3D texture) | |

If the width and height of the texel array for a three-dimensional texture | |

are both less than pow(2, j-lod) + 2Bt where j is the log base 2 of | |

MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV, then the depth may be up to pow(2, | |

m-lod) + 2Bt where m is the log base 2 of MAX_DEEP_3D_TEXTURE_DEPTH_NV. | |

The error INVALID_VALUE is generated if the specified image is too large | |

to be stored under any conditions. | |

Additions to Chapter 4 of the OpenGL 3.2 Specification (Per-Fragment Operations | |

and the Frame Buffer) | |

(modify the discussion of FramebufferTexture in 4.4 on p. 228) | |

If textarget is TEXTURE_3D, then level must be greater than or equal to zero | |

and less than or equal to log2 of the larger of the values of | |

MAX_3D_TEXTURE_SIZE and MAX_DEEP_3D_TEXTURE_DEPTH_NV. | |

... | |

layer specifies the layer of a 2-dimensional image within a 3-dimensional | |

texture. An INVALID_VALUE error is generated if layer is larger than the | |

larger of the value of MAX_DEEP_3D_TEXTURE_DEPTH_NV-1 and the value of | |

MAX_3D_TEXTURE_SIZE-1. | |

Additions to Chapter 5 of the OpenGL 3.2 Specification (Special Functions) | |

None | |

Additions to Chapter 6 of the OpenGL 3.2 Specification (State and | |

State Requests) | |

None | |

Additions to the AGL/GLX/WGL Specifications | |

None | |

Errors | |

None | |

New State | |

None | |

New Implementation Dependent State | |

(add to Table 6.37, p. 302) | |

Minimum | |

Get Value Type Get Command Value Description Sec. Attribute | |

---------------------------- ---- ----------- ------- ------------------ ----- --------- | |

MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV Z+ GetIntegerv 64 maximum width and 3.8.1 - | |

height for deep 3D | |

textures | |

MAX_DEEP_3D_TEXTURE_DEPTH_NV Z+ GetIntegerv 64 maximum depth for 3.8.1 - | |

deep 3D textures | |

Issues | |

1) Does this spec require that the texture exposed actually be deep? | |

RESOLVED: No. The spec doesn't require that MAX_DEEP_3D_TEXTURE_DEPTH is | |

actually greater than MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT, though the spec is | |

pointless if that isn't the case. | |

2) Does the spec guarantee that the entire 3D texture can be bound for | |

rendering? | |

RESOLVED: No. The framebuffer may be unsupported at the implementation's | |

discretion. Rendering to a single layer at a time may be supported even if | |

binding the entire 3D texture is unsupported. This is the case with the | |

initial NVIDIA implementation. | |

Revision History | |

Rev. Date Author Changes | |

---- -------- -------- ----------------------------------------- | |

1 ewerness Internal spec development. |