Class NVXProgressFence
This extension uses the concept of GL semaphores as defined in EXT_semaphore
to better coordinate operations between multiple GPU command
streams. A semaphore type called "progress fence" is derived from the GL semaphore. The progress fence semaphore is created by
CreateProgressFenceNVX
) returning the name of a newly created semaphore object. Like other semaphores, these are signaled by the GL server. Each
signal operation is queued in the GPU command stream with an associated fence value that is written to the semaphore at the completion of a signal
operation.
A GL server wait can be added to the command stream using WaitSemaphoreui64NVX
. This blocks the GPU until the progress fence semaphore reaches or
exceeds the specified fence value.
A GL client wait can be initiated using ClientWaitSemaphoreui64NVX
. This blocks the CPU until the specified fence value is reached.
Requires EXT_external_objects
and EXT_external_objects_win32
.
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
glClientWaitSemaphoreui64NVX
(int[] semaphoreArray, long[] fenceValueArray) Array version of:ClientWaitSemaphoreui64NVX
static void
glClientWaitSemaphoreui64NVX
(IntBuffer semaphoreArray, LongBuffer fenceValueArray) static int
static void
glSignalSemaphoreui64NVX
(int signalGpu, int[] semaphoreArray, long[] fenceValueArray) Array version of:SignalSemaphoreui64NVX
static void
glSignalSemaphoreui64NVX
(int signalGpu, IntBuffer semaphoreArray, LongBuffer fenceValueArray) static void
glWaitSemaphoreui64NVX
(int waitGpu, int[] semaphoreArray, long[] fenceValueArray) Array version of:WaitSemaphoreui64NVX
static void
glWaitSemaphoreui64NVX
(int waitGpu, IntBuffer semaphoreArray, LongBuffer fenceValueArray) static void
nglClientWaitSemaphoreui64NVX
(int fenceObjectCount, long semaphoreArray, long fenceValueArray) static void
nglSignalSemaphoreui64NVX
(int signalGpu, int fenceObjectCount, long semaphoreArray, long fenceValueArray) static void
nglWaitSemaphoreui64NVX
(int waitGpu, int fenceObjectCount, long semaphoreArray, long fenceValueArray)
-
Method Details
-
glCreateProgressFenceNVX
public static int glCreateProgressFenceNVX() -
nglSignalSemaphoreui64NVX
public static void nglSignalSemaphoreui64NVX(int signalGpu, int fenceObjectCount, long semaphoreArray, long fenceValueArray) -
glSignalSemaphoreui64NVX
public static void glSignalSemaphoreui64NVX(int signalGpu, IntBuffer semaphoreArray, LongBuffer fenceValueArray) -
nglWaitSemaphoreui64NVX
public static void nglWaitSemaphoreui64NVX(int waitGpu, int fenceObjectCount, long semaphoreArray, long fenceValueArray) -
glWaitSemaphoreui64NVX
public static void glWaitSemaphoreui64NVX(int waitGpu, IntBuffer semaphoreArray, LongBuffer fenceValueArray) -
nglClientWaitSemaphoreui64NVX
public static void nglClientWaitSemaphoreui64NVX(int fenceObjectCount, long semaphoreArray, long fenceValueArray) -
glClientWaitSemaphoreui64NVX
public static void glClientWaitSemaphoreui64NVX(IntBuffer semaphoreArray, LongBuffer fenceValueArray) -
glSignalSemaphoreui64NVX
public static void glSignalSemaphoreui64NVX(int signalGpu, int[] semaphoreArray, long[] fenceValueArray) Array version of:SignalSemaphoreui64NVX
-
glWaitSemaphoreui64NVX
public static void glWaitSemaphoreui64NVX(int waitGpu, int[] semaphoreArray, long[] fenceValueArray) Array version of:WaitSemaphoreui64NVX
-
glClientWaitSemaphoreui64NVX
public static void glClientWaitSemaphoreui64NVX(int[] semaphoreArray, long[] fenceValueArray) Array version of:ClientWaitSemaphoreui64NVX
-