Class EXTMemoryObject
The Vulkan API introduces the concept of explicit memory objects and reusable synchronization objects. This extension brings those concepts to the OpenGL API via two new object types:
- Memory objects
- Semaphores
Rather than allocating memory as a response to object allocation, memory allocation and binding are two separate operations in Vulkan. This extension allows an OpenGL application to import a Vulkan memory object, and to bind textures and/or buffer objects to it.
No methods to import memory objects are defined here. Separate platform-specific extensions are defined for this purpose.
Semaphores are synchronization primitives that can be waited on and signaled only by the GPU, or in GL terms, in the GL server. They are similar in concept to GL's "sync" objects and EGL's "EGLSync" objects, but different enough that compatibilities between the two are difficult to derive.
Rather than attempt to map Vulkan semaphores on to GL/EGL sync objects to achieve interoperability, this extension introduces a new object, GL semaphores, that map directly to the semantics of Vulkan semaphores. To achieve full image and buffer memory coherence with a Vulkan driver, the commands that manipulate semaphores also allow external usage information to be imported and exported.
Requires GLES 3.0
.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
static final int
Accepted by thepname
parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, GetInteger64v,GetUnsignedBytevEXT
, and thetarget
parameter of GetBooleani_v, GetIntegeri_v,GetFloati_v, GetDoublei_v, GetInteger64i_v, andGetUnsignedBytei_vEXT
.static final int
Accepted by thepname
parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, GetInteger64v,GetUnsignedBytevEXT
, and thetarget
parameter of GetBooleani_v, GetIntegeri_v,GetFloati_v, GetDoublei_v, GetInteger64i_v, andGetUnsignedBytei_vEXT
.static final int
Returned in theparams
parameter of GetInternalFormativ or GetInternalFormati64v when thepname
parameter isTILING_TYPES_EXT
, returned in theparams
parameter of GetTexParameter{if}v, GetTexParameterI{i ui}v, GetTextureParameter{if}v, and GetTextureParameterI{i ui}v when thepname
parameter isTEXTURE_TILING_EXT
, and accepted by theparams
parameter of TexParameter{ifx}{v}, TexParameterI{i ui}v, TextureParameter{if}{v}, TextureParameterI{i ui}v when thepname
parameter isTEXTURE_TILING_EXT
.static final int
Accepted by thepname
parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, GetInteger64v,GetUnsignedBytevEXT
, and thetarget
parameter of GetBooleani_v, GetIntegeri_v,GetFloati_v, GetDoublei_v, GetInteger64i_v, andGetUnsignedBytei_vEXT
.static final int
Accepted by thepname
parameter of GetInternalFormativ or GetInternalFormati64v.static final int
Returned in theparams
parameter of GetInternalFormativ or GetInternalFormati64v when thepname
parameter isTILING_TYPES_EXT
, returned in theparams
parameter of GetTexParameter{if}v, GetTexParameterI{i ui}v, GetTextureParameter{if}v, and GetTextureParameterI{i ui}v when thepname
parameter isTEXTURE_TILING_EXT
, and accepted by theparams
parameter of TexParameter{ifx}{v}, TexParameterI{i ui}v, TextureParameter{if}{v}, TextureParameterI{i ui}v when thepname
parameter isTEXTURE_TILING_EXT
.static final int
static final int
Accepted by thepname
parameter of TexParameter{ifx}{v}, TexParameterI{i ui}v, TextureParameter{if}{v}, TextureParameterI{i ui}v, GetTexParameter{if}v, GetTexParameterI{i ui}v, GetTextureParameter{if}v, and GetTextureParameterI{i ui}v.static final int
Accepted by thepname
parameter of GetInternalFormativ or GetInternalFormati64v.static final int
Constant values. -
Method Summary
Modifier and TypeMethodDescriptionstatic void
glBufferStorageMemEXT
(int target, long size, int memory, long offset) static int
static void
glCreateMemoryObjectsEXT
(int[] memoryObjects) Array version of:CreateMemoryObjectsEXT
static void
glCreateMemoryObjectsEXT
(IntBuffer memoryObjects) static void
glDeleteMemoryObjectsEXT
(int memoryObject) static void
glDeleteMemoryObjectsEXT
(int[] memoryObjects) Array version of:DeleteMemoryObjectsEXT
static void
glDeleteMemoryObjectsEXT
(IntBuffer memoryObjects) static int
glGetMemoryObjectParameteriEXT
(int memoryObject, int pname) static void
glGetMemoryObjectParameterivEXT
(int memoryObject, int pname, int[] params) Array version of:GetMemoryObjectParameterivEXT
static void
glGetMemoryObjectParameterivEXT
(int memoryObject, int pname, IntBuffer params) static void
glGetUnsignedBytei_vEXT
(int target, int index, ByteBuffer data) static void
glGetUnsignedBytevEXT
(int pname, ByteBuffer data) static boolean
glIsMemoryObjectEXT
(int memoryObject) static void
glMemoryObjectParameteriEXT
(int memoryObject, int pname, int param) static void
glMemoryObjectParameterivEXT
(int memoryObject, int pname, int[] params) Array version of:MemoryObjectParameterivEXT
static void
glMemoryObjectParameterivEXT
(int memoryObject, int pname, IntBuffer params) static void
glNamedBufferStorageMemEXT
(int buffer, long size, int memory, long offset) static void
glTexStorageMem2DEXT
(int target, int levels, int internalFormat, int width, int height, int memory, long offset) static void
glTexStorageMem2DMultisampleEXT
(int target, int samples, int internalFormat, int width, int height, boolean fixedSampleLocations, int memory, long offset) static void
glTexStorageMem3DEXT
(int target, int levels, int internalFormat, int width, int height, int depth, int memory, long offset) static void
glTexStorageMem3DMultisampleEXT
(int target, int samples, int internalFormat, int width, int height, int depth, boolean fixedSampleLocations, int memory, long offset) static void
glTextureStorageMem2DEXT
(int texture, int levels, int internalFormat, int width, int height, int memory, long offset) static void
glTextureStorageMem2DMultisampleEXT
(int texture, int samples, int internalFormat, int width, int height, boolean fixedSampleLocations, int memory, long offset) static void
glTextureStorageMem3DEXT
(int texture, int levels, int internalFormat, int width, int height, int depth, int memory, long offset) static void
glTextureStorageMem3DMultisampleEXT
(int texture, int samples, int internalFormat, int width, int height, int depth, boolean fixedSampleLocations, int memory, long offset) static void
nglCreateMemoryObjectsEXT
(int n, long memoryObjects) static void
nglDeleteMemoryObjectsEXT
(int n, long memoryObjects) static void
nglGetMemoryObjectParameterivEXT
(int memoryObject, int pname, long params) static void
nglGetUnsignedBytei_vEXT
(int target, int index, long data) static void
nglGetUnsignedBytevEXT
(int pname, long data) static void
nglMemoryObjectParameterivEXT
(int memoryObject, int pname, long params)
-
Field Details
-
GL_TEXTURE_TILING_EXT
public static final int GL_TEXTURE_TILING_EXTAccepted by thepname
parameter of TexParameter{ifx}{v}, TexParameterI{i ui}v, TextureParameter{if}{v}, TextureParameterI{i ui}v, GetTexParameter{if}v, GetTexParameterI{i ui}v, GetTextureParameter{if}v, and GetTextureParameterI{i ui}v.- See Also:
-
GL_DEDICATED_MEMORY_OBJECT_EXT
public static final int GL_DEDICATED_MEMORY_OBJECT_EXT- See Also:
-
GL_PROTECTED_MEMORY_OBJECT_EXT
public static final int GL_PROTECTED_MEMORY_OBJECT_EXT- See Also:
-
GL_NUM_TILING_TYPES_EXT
public static final int GL_NUM_TILING_TYPES_EXTAccepted by thepname
parameter of GetInternalFormativ or GetInternalFormati64v.- See Also:
-
GL_TILING_TYPES_EXT
public static final int GL_TILING_TYPES_EXTAccepted by thepname
parameter of GetInternalFormativ or GetInternalFormati64v.- See Also:
-
GL_OPTIMAL_TILING_EXT
public static final int GL_OPTIMAL_TILING_EXTReturned in theparams
parameter of GetInternalFormativ or GetInternalFormati64v when thepname
parameter isTILING_TYPES_EXT
, returned in theparams
parameter of GetTexParameter{if}v, GetTexParameterI{i ui}v, GetTextureParameter{if}v, and GetTextureParameterI{i ui}v when thepname
parameter isTEXTURE_TILING_EXT
, and accepted by theparams
parameter of TexParameter{ifx}{v}, TexParameterI{i ui}v, TextureParameter{if}{v}, TextureParameterI{i ui}v when thepname
parameter isTEXTURE_TILING_EXT
.- See Also:
-
GL_LINEAR_TILING_EXT
public static final int GL_LINEAR_TILING_EXTReturned in theparams
parameter of GetInternalFormativ or GetInternalFormati64v when thepname
parameter isTILING_TYPES_EXT
, returned in theparams
parameter of GetTexParameter{if}v, GetTexParameterI{i ui}v, GetTextureParameter{if}v, and GetTextureParameterI{i ui}v when thepname
parameter isTEXTURE_TILING_EXT
, and accepted by theparams
parameter of TexParameter{ifx}{v}, TexParameterI{i ui}v, TextureParameter{if}{v}, TextureParameterI{i ui}v when thepname
parameter isTEXTURE_TILING_EXT
.- See Also:
-
GL_NUM_DEVICE_UUIDS_EXT
public static final int GL_NUM_DEVICE_UUIDS_EXTAccepted by thepname
parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, GetInteger64v,GetUnsignedBytevEXT
, and thetarget
parameter of GetBooleani_v, GetIntegeri_v,GetFloati_v, GetDoublei_v, GetInteger64i_v, andGetUnsignedBytei_vEXT
.- See Also:
-
GL_DEVICE_UUID_EXT
public static final int GL_DEVICE_UUID_EXTAccepted by thepname
parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, GetInteger64v,GetUnsignedBytevEXT
, and thetarget
parameter of GetBooleani_v, GetIntegeri_v,GetFloati_v, GetDoublei_v, GetInteger64i_v, andGetUnsignedBytei_vEXT
.- See Also:
-
GL_DRIVER_UUID_EXT
public static final int GL_DRIVER_UUID_EXTAccepted by thepname
parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, GetInteger64v,GetUnsignedBytevEXT
, and thetarget
parameter of GetBooleani_v, GetIntegeri_v,GetFloati_v, GetDoublei_v, GetInteger64i_v, andGetUnsignedBytei_vEXT
.- See Also:
-
GL_UUID_SIZE_EXT
public static final int GL_UUID_SIZE_EXTConstant values.- See Also:
-
-
Method Details
-
nglGetUnsignedBytevEXT
public static void nglGetUnsignedBytevEXT(int pname, long data) -
glGetUnsignedBytevEXT
-
nglGetUnsignedBytei_vEXT
public static void nglGetUnsignedBytei_vEXT(int target, int index, long data) -
glGetUnsignedBytei_vEXT
-
nglDeleteMemoryObjectsEXT
public static void nglDeleteMemoryObjectsEXT(int n, long memoryObjects) -
glDeleteMemoryObjectsEXT
-
glDeleteMemoryObjectsEXT
public static void glDeleteMemoryObjectsEXT(int memoryObject) -
glIsMemoryObjectEXT
public static boolean glIsMemoryObjectEXT(int memoryObject) -
nglCreateMemoryObjectsEXT
public static void nglCreateMemoryObjectsEXT(int n, long memoryObjects) -
glCreateMemoryObjectsEXT
-
glCreateMemoryObjectsEXT
public static int glCreateMemoryObjectsEXT() -
nglMemoryObjectParameterivEXT
public static void nglMemoryObjectParameterivEXT(int memoryObject, int pname, long params) -
glMemoryObjectParameterivEXT
-
glMemoryObjectParameteriEXT
public static void glMemoryObjectParameteriEXT(int memoryObject, int pname, int param) -
nglGetMemoryObjectParameterivEXT
public static void nglGetMemoryObjectParameterivEXT(int memoryObject, int pname, long params) -
glGetMemoryObjectParameterivEXT
-
glGetMemoryObjectParameteriEXT
public static int glGetMemoryObjectParameteriEXT(int memoryObject, int pname) -
glTexStorageMem2DEXT
public static void glTexStorageMem2DEXT(int target, int levels, int internalFormat, int width, int height, int memory, long offset) -
glTexStorageMem2DMultisampleEXT
public static void glTexStorageMem2DMultisampleEXT(int target, int samples, int internalFormat, int width, int height, boolean fixedSampleLocations, int memory, long offset) -
glTexStorageMem3DEXT
public static void glTexStorageMem3DEXT(int target, int levels, int internalFormat, int width, int height, int depth, int memory, long offset) -
glTexStorageMem3DMultisampleEXT
public static void glTexStorageMem3DMultisampleEXT(int target, int samples, int internalFormat, int width, int height, int depth, boolean fixedSampleLocations, int memory, long offset) -
glBufferStorageMemEXT
public static void glBufferStorageMemEXT(int target, long size, int memory, long offset) -
glTextureStorageMem2DEXT
public static void glTextureStorageMem2DEXT(int texture, int levels, int internalFormat, int width, int height, int memory, long offset) -
glTextureStorageMem2DMultisampleEXT
public static void glTextureStorageMem2DMultisampleEXT(int texture, int samples, int internalFormat, int width, int height, boolean fixedSampleLocations, int memory, long offset) -
glTextureStorageMem3DEXT
public static void glTextureStorageMem3DEXT(int texture, int levels, int internalFormat, int width, int height, int depth, int memory, long offset) -
glTextureStorageMem3DMultisampleEXT
public static void glTextureStorageMem3DMultisampleEXT(int texture, int samples, int internalFormat, int width, int height, int depth, boolean fixedSampleLocations, int memory, long offset) -
glNamedBufferStorageMemEXT
public static void glNamedBufferStorageMemEXT(int buffer, long size, int memory, long offset) -
glDeleteMemoryObjectsEXT
public static void glDeleteMemoryObjectsEXT(int[] memoryObjects) Array version of:DeleteMemoryObjectsEXT
-
glCreateMemoryObjectsEXT
public static void glCreateMemoryObjectsEXT(int[] memoryObjects) Array version of:CreateMemoryObjectsEXT
-
glMemoryObjectParameterivEXT
public static void glMemoryObjectParameterivEXT(int memoryObject, int pname, int[] params) Array version of:MemoryObjectParameterivEXT
-
glGetMemoryObjectParameterivEXT
public static void glGetMemoryObjectParameterivEXT(int memoryObject, int pname, int[] params) Array version of:GetMemoryObjectParameterivEXT
-