Recent advances in application complexity and a desire for higher resolutions have pushed texture sizes up considerably. Often, the amount of physical memory available to a graphics processor is a limiting factor in the performance of texture-heavy applications. Once the available physical memory is exhausted, paging may occur bringing performance down considerably - or worse, the application may fail. Nevertheless, the amount of address space available to the graphics processor has increased to the point where many gigabytes - or even terabytes of address space may be usable even though that amount of physical memory is not present.
This extension allows the separation of the graphics processor's address space (reservation) from the requirement that all textures must be physically backed (commitment). This exposes a limited form of virtualization for textures. Use cases include sparse (or partially resident) textures, texture paging, on-demand and delayed loading of texture assets and application controlled level of detail.
| Modifier and Type | Field and Description |
|---|---|
| public static final int | GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB
Accepted by the |
| public static final int | GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB
Accepted by the |
| public static final int | GL_MAX_SPARSE_TEXTURE_SIZE_ARB
Accepted by the |
| public static final int | GL_NUM_SPARSE_LEVELS_ARB
Accepted by the |
| public static final int | GL_NUM_VIRTUAL_PAGE_SIZES_ARB
Accepted by the |
| public static final int | GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB
Accepted by the |
| public static final int | GL_TEXTURE_SPARSE_ARB
Accepted by the |
| public static final int | GL_VIRTUAL_PAGE_SIZE_INDEX_ARB
Accepted by the |
| public static final int | GL_VIRTUAL_PAGE_SIZE_X_ARB
Accepted by the |
| public static final int | GL_VIRTUAL_PAGE_SIZE_Y_ARB
Accepted by the |
| public static final int | GL_VIRTUAL_PAGE_SIZE_Z_ARB
Accepted by the |
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description |
|---|---|
| public static native void | glTexPageCommitmentARB(int target, int
the level-of-detail-number level, int the x coordinate of the texel subregion xoffset, int the y coordinate of the texel subregion yoffset, int the z coordinate of the texel subregion zoffset, int the subregion width width, int the subregion height height, int the subregion depth depth, boolean the commit flag commit)Makes individual pages of a sparse texture resident or non resident. |
| public static native void | glTexturePageCommitmentEXT(int
the texture object texture, int the level-of-detail-number level, int the x coordinate of the texel subregion xoffset, int the y coordinate of the texel subregion yoffset, int the z coordinate of the texel subregion zoffset, int the subregion width width, int the subregion height height, int the subregion depth depth, boolean the commit flag commit)DSA version of |
| GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB | back to summary |
|---|---|
| public static final int GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB Accepted by the | |
| GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB | back to summary |
|---|---|
| public static final int GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB Accepted by the | |
| GL_MAX_SPARSE_TEXTURE_SIZE_ARB | back to summary |
|---|---|
| public static final int GL_MAX_SPARSE_TEXTURE_SIZE_ARB Accepted by the | |
| GL_NUM_SPARSE_LEVELS_ARB | back to summary |
|---|---|
| public static final int GL_NUM_SPARSE_LEVELS_ARB Accepted by the | |
| GL_NUM_VIRTUAL_PAGE_SIZES_ARB | back to summary |
|---|---|
| public static final int GL_NUM_VIRTUAL_PAGE_SIZES_ARB Accepted by the | |
| GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB | back to summary |
|---|---|
| public static final int GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB Accepted by the | |
| GL_TEXTURE_SPARSE_ARB | back to summary |
|---|---|
| public static final int GL_TEXTURE_SPARSE_ARB Accepted by the | |
| GL_VIRTUAL_PAGE_SIZE_INDEX_ARB | back to summary |
|---|---|
| public static final int GL_VIRTUAL_PAGE_SIZE_INDEX_ARB Accepted by the | |
| GL_VIRTUAL_PAGE_SIZE_X_ARB | back to summary |
|---|---|
| public static final int GL_VIRTUAL_PAGE_SIZE_X_ARB Accepted by the | |
| GL_VIRTUAL_PAGE_SIZE_Y_ARB | back to summary |
|---|---|
| public static final int GL_VIRTUAL_PAGE_SIZE_Y_ARB Accepted by the | |
| GL_VIRTUAL_PAGE_SIZE_Z_ARB | back to summary |
|---|---|
| public static final int GL_VIRTUAL_PAGE_SIZE_Z_ARB Accepted by the | |
| ARBSparseTexture | back to summary |
|---|---|
| protected ARBSparseTexture() | |
| glTexPageCommitmentARB | back to summary | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| public static native void glTexPageCommitmentARB(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, boolean commit) Makes individual pages of a sparse texture resident or non resident. If the value of For the purposes of commitment, a cube map texture is treated as a 2D array texture with a depth of six and cube map array textures are treated as 2D array textures with a depth equal to six times the number of layers in the cube map array. For levels of a sparse texture where each dimension is a multiple of the virtual page size, the residency of individual page-size regions is controlled
by TexPageCommitmentARB and such levels may be partially populated. When the mipmap chain reaches a level that is not an integer multiple of the virtual
page size in any dimension, padding and memory layout considerations may make it impossible to treat that level and subsequent smaller ones as partially
populated. The set of levels that can be partially populated is implementation-dependent. The total number of levels that may be partially populated may
be queried by calling The collection of texture levels that may not be partially populated, if any, consists of levels Views of sparse textures are also considered sparse. Modifications to commitment of a texture via a view of it affect the parent texture and any other views containing the modified pages. If a view of a sparse texture references its tail (or is entirely contained within it), modifications to commitment of the tail via the view will affect the entire tail of the parent, even for parts of the tail that are not referenced by the view. Furthermore, modifications to tail commitment may affect views referencing other parts of the tail. ErrorsAn An
An An An An
An
| |||||||||
| glTexturePageCommitmentEXT | back to summary |
|---|---|
| public static native void glTexturePageCommitmentEXT(int texture, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, boolean commit) DSA version of
| |