public class INTELMapTexture
extends java.lang.Object
Systems with integrated GPUs can share the same physical memory between CPU and GPU. This feature, if exposed by API, can bring significant performance benefits for graphics applications by reducing the complexity of uploading/accessing texture contents. This extension enables CPU direct access to the GPU memory holding textures.
The problem with texture memory directly exposed to clients is that textures are often 'tiled'. Texels are kept in specific layout to improve locality of reference and thus performance of texturing. This 'tiling' is specific to particular hardware and would be thus difficult to use.
This extension allows to create textures with 'linear' layout which allows for simplified access on user side (potentially sacrificing some performance during texture sampling).
Requires OpenGL 3.0.
| Modifier and Type | Field and Description |
|---|---|
static int |
GL_LAYOUT_DEFAULT_INTEL
Accepted by the
params when pname is set to TEXTURE_MEMORY_LAYOUT_INTEL. |
static int |
GL_LAYOUT_LINEAR_CPU_CACHED_INTEL
Accepted by the
params when pname is set to TEXTURE_MEMORY_LAYOUT_INTEL. |
static int |
GL_LAYOUT_LINEAR_INTEL
Accepted by the
params when pname is set to TEXTURE_MEMORY_LAYOUT_INTEL. |
static int |
GL_TEXTURE_MEMORY_LAYOUT_INTEL
Accepted by the
pname parameter of TexParameteri, for target TEXTURE_2D. |
| Modifier and Type | Method and Description |
|---|---|
static java.nio.ByteBuffer |
glMapTexture2DINTEL(int texture,
int level,
int access,
int[] stride,
int[] layout)
Array version of:
MapTexture2DINTEL |
static java.nio.ByteBuffer |
glMapTexture2DINTEL(int texture,
int level,
int access,
int[] stride,
int[] layout,
java.nio.ByteBuffer old_buffer)
Array version of:
MapTexture2DINTEL |
static java.nio.ByteBuffer |
glMapTexture2DINTEL(int texture,
int level,
int access,
int[] stride,
int[] layout,
long length,
java.nio.ByteBuffer old_buffer)
Array version of:
MapTexture2DINTEL |
static java.nio.ByteBuffer |
glMapTexture2DINTEL(int texture,
int level,
int access,
java.nio.IntBuffer stride,
java.nio.IntBuffer layout)
Attempts to return a direct pointer to the graphics storage for 2D texture indicated by the
texture parameter. |
static java.nio.ByteBuffer |
glMapTexture2DINTEL(int texture,
int level,
int access,
java.nio.IntBuffer stride,
java.nio.IntBuffer layout,
java.nio.ByteBuffer old_buffer)
Attempts to return a direct pointer to the graphics storage for 2D texture indicated by the
texture parameter. |
static java.nio.ByteBuffer |
glMapTexture2DINTEL(int texture,
int level,
int access,
java.nio.IntBuffer stride,
java.nio.IntBuffer layout,
long length,
java.nio.ByteBuffer old_buffer)
Attempts to return a direct pointer to the graphics storage for 2D texture indicated by the
texture parameter. |
static void |
glSyncTextureINTEL(int texture)
Makes sure that changes made by CPU are visible to GPU by flushing texture cache in GPU.
|
static void |
glUnmapTexture2DINTEL(int texture,
int level)
Releases the pointer obtained previously via
MapTexture2DINTEL. |
static long |
nglMapTexture2DINTEL(int texture,
int level,
int access,
long stride,
long layout)
Unsafe version of:
MapTexture2DINTEL |
public static final int GL_TEXTURE_MEMORY_LAYOUT_INTEL
pname parameter of TexParameteri, for target TEXTURE_2D.public static final int GL_LAYOUT_DEFAULT_INTEL
params when pname is set to TEXTURE_MEMORY_LAYOUT_INTEL.public static final int GL_LAYOUT_LINEAR_INTEL
params when pname is set to TEXTURE_MEMORY_LAYOUT_INTEL.public static final int GL_LAYOUT_LINEAR_CPU_CACHED_INTEL
params when pname is set to TEXTURE_MEMORY_LAYOUT_INTEL.public static void glSyncTextureINTEL(int texture)
It is worth noting that this extension does not address automatic synchronization between CPU and GPU when both entities operate on the same texture at the same time. This is up to the application to assure such synchronization. Otherwise, the results may not be deterministic (writes from different entities may interleave in a non-deterministic way).
texture - the texture to synchronizepublic static void glUnmapTexture2DINTEL(int texture,
int level)
MapTexture2DINTEL. This means that virtual memory space dedicated to make the texture available via a
pointer is released and an application can no longer assume this memory is accessible from CPU. Successful execution of this command has an additional
effect as if SyncTextureINTEL was called with texture parameter.texture - the texture to unmaplevel - the mipmap level-of-detail of the texturepublic static long nglMapTexture2DINTEL(int texture,
int level,
int access,
long stride,
long layout)
MapTexture2DINTEL@Nullable
public static java.nio.ByteBuffer glMapTexture2DINTEL(int texture,
int level,
int access,
java.nio.IntBuffer stride,
java.nio.IntBuffer layout)
texture parameter.
LWJGL note: If glMapTexture2DINTEL without an explicit length argument is used and direct-state-access functionality is not available in the current context, the texture object must currently be bound to the GL_TEXTURE_2D target.
texture - the texture to maplevel - the mipmap level-of-detail of the textureaccess - the type of access that will be performed by the application. One of:MAP_READ_BIT | MAP_WRITE_BIT |
stride - returns the distance in bytes between subsequent rows in the texturelayout - returns the internal layout of the texture in the graphics memory@Nullable
public static java.nio.ByteBuffer glMapTexture2DINTEL(int texture,
int level,
int access,
java.nio.IntBuffer stride,
java.nio.IntBuffer layout,
@Nullable
java.nio.ByteBuffer old_buffer)
texture parameter.
LWJGL note: If glMapTexture2DINTEL without an explicit length argument is used and direct-state-access functionality is not available in the current context, the texture object must currently be bound to the GL_TEXTURE_2D target.
texture - the texture to maplevel - the mipmap level-of-detail of the textureaccess - the type of access that will be performed by the application. One of:MAP_READ_BIT | MAP_WRITE_BIT |
stride - returns the distance in bytes between subsequent rows in the texturelayout - returns the internal layout of the texture in the graphics memory@Nullable
public static java.nio.ByteBuffer glMapTexture2DINTEL(int texture,
int level,
int access,
java.nio.IntBuffer stride,
java.nio.IntBuffer layout,
long length,
@Nullable
java.nio.ByteBuffer old_buffer)
texture parameter.
LWJGL note: If glMapTexture2DINTEL without an explicit length argument is used and direct-state-access functionality is not available in the current context, the texture object must currently be bound to the GL_TEXTURE_2D target.
texture - the texture to maplevel - the mipmap level-of-detail of the textureaccess - the type of access that will be performed by the application. One of:MAP_READ_BIT | MAP_WRITE_BIT |
stride - returns the distance in bytes between subsequent rows in the texturelayout - returns the internal layout of the texture in the graphics memory@Nullable
public static java.nio.ByteBuffer glMapTexture2DINTEL(int texture,
int level,
int access,
int[] stride,
int[] layout)
MapTexture2DINTEL@Nullable
public static java.nio.ByteBuffer glMapTexture2DINTEL(int texture,
int level,
int access,
int[] stride,
int[] layout,
@Nullable
java.nio.ByteBuffer old_buffer)
MapTexture2DINTEL@Nullable
public static java.nio.ByteBuffer glMapTexture2DINTEL(int texture,
int level,
int access,
int[] stride,
int[] layout,
long length,
@Nullable
java.nio.ByteBuffer old_buffer)
MapTexture2DINTELCopyright LWJGL. All Rights Reserved. License terms.