Class EXTSemaphore
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.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intAccepted by thepnameparameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, GetInteger64v,GetUnsignedBytevEXT, and thetargetparameter of GetBooleani_v, GetIntegeri_v,GetFloati_v, GetDoublei_v, GetInteger64i_v, andGetUnsignedBytei_vEXT.static final intAccepted by thepnameparameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, GetInteger64v,GetUnsignedBytevEXT, and thetargetparameter of GetBooleani_v, GetIntegeri_v,GetFloati_v, GetDoublei_v, GetInteger64i_v, andGetUnsignedBytei_vEXT.static final intAccepted by thedstLayoutsparameter ofSignalSemaphoreEXTand thesrcLayoutsparameter ofWaitSemaphoreEXT.static final intAccepted by thedstLayoutsparameter ofSignalSemaphoreEXTand thesrcLayoutsparameter ofWaitSemaphoreEXT.static final intAccepted by thedstLayoutsparameter ofSignalSemaphoreEXTand thesrcLayoutsparameter ofWaitSemaphoreEXT.static final intAccepted by thedstLayoutsparameter ofSignalSemaphoreEXTand thesrcLayoutsparameter ofWaitSemaphoreEXT.static final intAccepted by thedstLayoutsparameter ofSignalSemaphoreEXTand thesrcLayoutsparameter ofWaitSemaphoreEXT.static final intAccepted by thedstLayoutsparameter ofSignalSemaphoreEXTand thesrcLayoutsparameter ofWaitSemaphoreEXT.static final intAccepted by thedstLayoutsparameter ofSignalSemaphoreEXTand thesrcLayoutsparameter ofWaitSemaphoreEXT.static final intAccepted by thedstLayoutsparameter ofSignalSemaphoreEXTand thesrcLayoutsparameter ofWaitSemaphoreEXT.static final intAccepted by thedstLayoutsparameter ofSignalSemaphoreEXTand thesrcLayoutsparameter ofWaitSemaphoreEXT.static final intAccepted by thepnameparameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, GetInteger64v,GetUnsignedBytevEXT, and thetargetparameter of GetBooleani_v, GetIntegeri_v,GetFloati_v, GetDoublei_v, GetInteger64i_v, andGetUnsignedBytei_vEXT.static final intConstant values. -
Method Summary
Modifier and TypeMethodDescriptionstatic voidglDeleteSemaphoresEXT(int semaphore) static voidglDeleteSemaphoresEXT(int[] semaphores) Array version of:DeleteSemaphoresEXTstatic voidglDeleteSemaphoresEXT(IntBuffer semaphores) static intstatic voidglGenSemaphoresEXT(int[] semaphores) Array version of:GenSemaphoresEXTstatic voidglGenSemaphoresEXT(IntBuffer semaphores) static longglGetSemaphoreParameterui64EXT(int semaphore, int pname) static voidglGetSemaphoreParameterui64vEXT(int semaphore, int pname, long[] params) Array version of:GetSemaphoreParameterui64vEXTstatic voidglGetSemaphoreParameterui64vEXT(int semaphore, int pname, LongBuffer params) static voidglGetUnsignedBytei_vEXT(int target, int index, ByteBuffer data) static voidglGetUnsignedBytevEXT(int pname, ByteBuffer data) static booleanglIsSemaphoreEXT(int semaphore) static voidglSemaphoreParameterui64EXT(int semaphore, int pname, long param) static voidglSemaphoreParameterui64vEXT(int semaphore, int pname, long[] params) Array version of:SemaphoreParameterui64vEXTstatic voidglSemaphoreParameterui64vEXT(int semaphore, int pname, LongBuffer params) static voidglSignalSemaphoreEXT(int semaphore, int[] buffers, int[] textures, int[] dstLayouts) Array version of:SignalSemaphoreEXTstatic voidglSignalSemaphoreEXT(int semaphore, IntBuffer buffers, IntBuffer textures, IntBuffer dstLayouts) static voidglWaitSemaphoreEXT(int semaphore, int[] buffers, int[] textures, int[] srcLayouts) Array version of:WaitSemaphoreEXTstatic voidglWaitSemaphoreEXT(int semaphore, IntBuffer buffers, IntBuffer textures, IntBuffer srcLayouts) static voidnglDeleteSemaphoresEXT(int n, long semaphores) static voidnglGenSemaphoresEXT(int n, long semaphores) static voidnglGetSemaphoreParameterui64vEXT(int semaphore, int pname, long params) static voidnglGetUnsignedBytei_vEXT(int target, int index, long data) static voidnglGetUnsignedBytevEXT(int pname, long data) static voidnglSemaphoreParameterui64vEXT(int semaphore, int pname, long params) static voidnglSignalSemaphoreEXT(int semaphore, int numBufferBarriers, long buffers, int numTextureBarriers, long textures, long dstLayouts) static voidnglWaitSemaphoreEXT(int semaphore, int numBufferBarriers, long buffers, int numTextureBarriers, long textures, long srcLayouts)
-
Field Details
-
GL_NUM_DEVICE_UUIDS_EXT
public static final int GL_NUM_DEVICE_UUIDS_EXTAccepted by thepnameparameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, GetInteger64v,GetUnsignedBytevEXT, and thetargetparameter 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 thepnameparameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, GetInteger64v,GetUnsignedBytevEXT, and thetargetparameter 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 thepnameparameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, GetInteger64v,GetUnsignedBytevEXT, and thetargetparameter 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:
-
GL_LAYOUT_GENERAL_EXT
public static final int GL_LAYOUT_GENERAL_EXTAccepted by thedstLayoutsparameter ofSignalSemaphoreEXTand thesrcLayoutsparameter ofWaitSemaphoreEXT.- See Also:
-
GL_LAYOUT_COLOR_ATTACHMENT_EXT
public static final int GL_LAYOUT_COLOR_ATTACHMENT_EXTAccepted by thedstLayoutsparameter ofSignalSemaphoreEXTand thesrcLayoutsparameter ofWaitSemaphoreEXT.- See Also:
-
GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT
public static final int GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXTAccepted by thedstLayoutsparameter ofSignalSemaphoreEXTand thesrcLayoutsparameter ofWaitSemaphoreEXT.- See Also:
-
GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT
public static final int GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXTAccepted by thedstLayoutsparameter ofSignalSemaphoreEXTand thesrcLayoutsparameter ofWaitSemaphoreEXT.- See Also:
-
GL_LAYOUT_SHADER_READ_ONLY_EXT
public static final int GL_LAYOUT_SHADER_READ_ONLY_EXTAccepted by thedstLayoutsparameter ofSignalSemaphoreEXTand thesrcLayoutsparameter ofWaitSemaphoreEXT.- See Also:
-
GL_LAYOUT_TRANSFER_SRC_EXT
public static final int GL_LAYOUT_TRANSFER_SRC_EXTAccepted by thedstLayoutsparameter ofSignalSemaphoreEXTand thesrcLayoutsparameter ofWaitSemaphoreEXT.- See Also:
-
GL_LAYOUT_TRANSFER_DST_EXT
public static final int GL_LAYOUT_TRANSFER_DST_EXTAccepted by thedstLayoutsparameter ofSignalSemaphoreEXTand thesrcLayoutsparameter ofWaitSemaphoreEXT.- See Also:
-
GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT
public static final int GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXTAccepted by thedstLayoutsparameter ofSignalSemaphoreEXTand thesrcLayoutsparameter ofWaitSemaphoreEXT.- See Also:
-
GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT
public static final int GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXTAccepted by thedstLayoutsparameter ofSignalSemaphoreEXTand thesrcLayoutsparameter ofWaitSemaphoreEXT.- 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
-
nglGenSemaphoresEXT
public static void nglGenSemaphoresEXT(int n, long semaphores) -
glGenSemaphoresEXT
-
glGenSemaphoresEXT
public static int glGenSemaphoresEXT() -
nglDeleteSemaphoresEXT
public static void nglDeleteSemaphoresEXT(int n, long semaphores) -
glDeleteSemaphoresEXT
-
glDeleteSemaphoresEXT
public static void glDeleteSemaphoresEXT(int semaphore) -
glIsSemaphoreEXT
public static boolean glIsSemaphoreEXT(int semaphore) -
nglSemaphoreParameterui64vEXT
public static void nglSemaphoreParameterui64vEXT(int semaphore, int pname, long params) -
glSemaphoreParameterui64vEXT
-
glSemaphoreParameterui64EXT
public static void glSemaphoreParameterui64EXT(int semaphore, int pname, long param) -
nglGetSemaphoreParameterui64vEXT
public static void nglGetSemaphoreParameterui64vEXT(int semaphore, int pname, long params) -
glGetSemaphoreParameterui64vEXT
-
glGetSemaphoreParameterui64EXT
public static long glGetSemaphoreParameterui64EXT(int semaphore, int pname) -
nglWaitSemaphoreEXT
public static void nglWaitSemaphoreEXT(int semaphore, int numBufferBarriers, long buffers, int numTextureBarriers, long textures, long srcLayouts) -
glWaitSemaphoreEXT
-
nglSignalSemaphoreEXT
public static void nglSignalSemaphoreEXT(int semaphore, int numBufferBarriers, long buffers, int numTextureBarriers, long textures, long dstLayouts) -
glSignalSemaphoreEXT
-
glGenSemaphoresEXT
public static void glGenSemaphoresEXT(int[] semaphores) Array version of:GenSemaphoresEXT -
glDeleteSemaphoresEXT
public static void glDeleteSemaphoresEXT(int[] semaphores) Array version of:DeleteSemaphoresEXT -
glSemaphoreParameterui64vEXT
public static void glSemaphoreParameterui64vEXT(int semaphore, int pname, long[] params) Array version of:SemaphoreParameterui64vEXT -
glGetSemaphoreParameterui64vEXT
public static void glGetSemaphoreParameterui64vEXT(int semaphore, int pname, long[] params) Array version of:GetSemaphoreParameterui64vEXT -
glWaitSemaphoreEXT
public static void glWaitSemaphoreEXT(int semaphore, int[] buffers, int[] textures, int[] srcLayouts) Array version of:WaitSemaphoreEXT -
glSignalSemaphoreEXT
public static void glSignalSemaphoreEXT(int semaphore, int[] buffers, int[] textures, int[] dstLayouts) Array version of:SignalSemaphoreEXT
-