The goal of this extension is provide a finer granularity of synchronizing GL command completion than offered by standard OpenGL, which offers only two mechanisms for synchronization: Flush and Finish. Since Flush merely assures the user that the commands complete in a finite (though undetermined) amount of time, it is, thus, of only modest utility. Finish, on the other hand, stalls CPU execution until all pending GL commands have completed. This extension offers a middle ground - the ability to "finish" a subset of the command stream, and the ability to determine whether a given command has completed or not.
This extension introduces the concept of a "fence" to the OpenGL command stream. Once the fence is inserted into the command stream, it can be queried for a given condition - typically, its completion. Moreover, the application may also request a partial Finish -- that is, all commands prior to the fence will be forced to complete until control is returned to the calling process. These new mechanisms allow for synchronization between the host CPU and the GPU, which may be accessing the same resources (typically memory).
This extension is useful in conjunction with NV_vertex_array_range to determine when vertex information has been pulled from the vertex array range. Once a fence has been tested TRUE or finished, all vertex indices issued before the fence must have been pulled. This ensures that the vertex data memory corresponding to the issued vertex indices can be safely modified (assuming no other outstanding vertex indices are issued subsequent to the fence).
| Modifier and Type | Field and Description |
|---|---|
| public static final int | GL_ALL_COMPLETED_NV
Accepted by the |
| public static final int | GL_FENCE_CONDITION_NV
Accepted by the |
| public static final int | GL_FENCE_STATUS_NV
Accepted by the |
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description |
|---|---|
| public static void | |
| public static void | |
| public static void | |
| public static native void | |
| public static void | |
| public static int | |
| public static void | |
| public static int | |
| public static void | |
| public static void | |
| public static native boolean | |
| public static native void | |
| public static native boolean | |
| public static native void | |
| public static native void | |
| public static native void |
| GL_ALL_COMPLETED_NV | back to summary |
|---|---|
| public static final int GL_ALL_COMPLETED_NV Accepted by the | |
| GL_FENCE_CONDITION_NV | back to summary |
|---|---|
| public static final int GL_FENCE_CONDITION_NV Accepted by the | |
| GL_FENCE_STATUS_NV | back to summary |
|---|---|
| public static final int GL_FENCE_STATUS_NV Accepted by the | |
| NVFence | back to summary |
|---|---|
| protected NVFence() | |
| glDeleteFencesNV | back to summary |
|---|---|
| public static void glDeleteFencesNV(IntBuffer fences) | |
| glDeleteFencesNV | back to summary |
|---|---|
| public static void glDeleteFencesNV(int fence) | |
| glDeleteFencesNV | back to summary |
|---|---|
| public static void glDeleteFencesNV(int[] fences) Array version of: | |
| glFinishFenceNV | back to summary |
|---|---|
| public static native void glFinishFenceNV(int fence) | |
| glGenFencesNV | back to summary |
|---|---|
| public static void glGenFencesNV(IntBuffer fences) | |
| glGenFencesNV | back to summary |
|---|---|
public static int glGenFencesNV()
| |
| glGenFencesNV | back to summary |
|---|---|
| public static void glGenFencesNV(int[] fences) Array version of: | |
| glGetFenceiNV | back to summary |
|---|---|
public static int glGetFenceiNV(int fence, int pname)
| |
| glGetFenceivNV | back to summary |
|---|---|
| public static void glGetFenceivNV(int fence, int pname, IntBuffer params) | |
| glGetFenceivNV | back to summary |
|---|---|
| public static void glGetFenceivNV(int fence, int pname, int[] params) Array version of: | |
| glIsFenceNV | back to summary |
|---|---|
public static native boolean glIsFenceNV(int fence)
| |
| glSetFenceNV | back to summary |
|---|---|
| public static native void glSetFenceNV(int fence, int condition) | |
| glTestFenceNV | back to summary |
|---|---|
public static native boolean glTestFenceNV(int fence)
| |
| nglDeleteFencesNV | back to summary |
|---|---|
| public static native void nglDeleteFencesNV(int n, long fences) | |
| nglGenFencesNV | back to summary |
|---|---|
| public static native void nglGenFencesNV(int n, long fences) | |
| nglGetFenceivNV | back to summary |
|---|---|
| public static native void nglGetFenceivNV(int fence, int pname, long params) | |