Class NVXProgressFence

java.lang.Object
org.lwjgl.opengl.NVXProgressFence

public class NVXProgressFence extends Object
Native bindings to the NVX_progress_fence extension.

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 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