Top Description Fields Constructors Methods
org.lwjgl.opengl

public Class EXTShaderImageLoadStore

extends Object
Class Inheritance
Imports
org.lwjgl.system.*

Native bindings to the EXT_shader_image_load_store extension.

This extension provides GLSL built-in functions allowing shaders to load from, store to, and perform atomic read-modify-write operations to a single level of a texture object from any shader stage. These built-in functions are named imageLoad(), imageStore(), and imageAtomic*(), respectively, and accept integer texel coordinates to identify the texel accessed. The extension adds the notion of "image units" to the OpenGL API, to which texture levels are bound for access by the GLSL built-in functions. To allow shaders to specify the image unit to access, GLSL provides a new set of data types ("image*") similar to samplers. Each image variable is assigned an integer value to identify an image unit to access, which is specified using Uniform*() APIs in a manner similar to samplers. For implementations supporting the NV_gpu_program5 extensions, assembly language instructions to perform image loads, stores, and atomics are also provided.

This extension also provides the capability to explicitly enable "early" per-fragment tests, where operations like depth and stencil testing are performed prior to fragment shader execution. In unextended OpenGL, fragment shaders never have any side effects and implementations can sometimes perform per-fragment tests and discard some fragments prior to executing the fragment shader. Since this extension allows fragment shaders to write to texture and buffer object memory using the built-in image functions, such optimizations could lead to non-deterministic results. To avoid this, implementations supporting this extension may not perform such optimizations on shaders having such side effects. However, enabling early per-fragment tests guarantees that such tests will be performed prior to fragment shader execution, and ensures that image stores and atomics will not be performed by fragment shader invocations where these per-fragment tests fail.

Finally, this extension provides both a GLSL built-in function and an OpenGL API function allowing applications some control over the ordering of image loads, stores, and atomics relative to other OpenGL pipeline operations accessing the same memory. Because the extension provides the ability to perform random accesses to texture or buffer object memory, such accesses are not easily tracked by the OpenGL driver. To avoid the need for heavy-handed synchronization at the driver level, this extension requires manual synchronization. The MemoryBarrierEXT() OpenGL API function allows applications to specify a bitfield indicating the set of OpenGL API operations to synchronize relative to shader memory access. The memoryBarrier() GLSL built-in function provides a synchronization point within a given shader invocation to ensure that all memory accesses performed prior to the synchronization point complete prior to any started after the synchronization point.

Requires OpenGL 3.0.

Field Summary

Modifier and TypeField and Description
public static final int
GL_ALL_BARRIER_BITS_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

public static final int
GL_ATOMIC_COUNTER_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

public static final int
GL_BUFFER_UPDATE_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

public static final int
GL_COMMAND_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

public static final int
GL_ELEMENT_ARRAY_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

public static final int
GL_FRAMEBUFFER_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

public static final int
GL_IMAGE_1D_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_IMAGE_1D_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_IMAGE_2D_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_IMAGE_2D_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_IMAGE_2D_MULTISAMPLE_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_IMAGE_2D_RECT_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_IMAGE_3D_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_IMAGE_BINDING_ACCESS_EXT

Accepted by the target parameter of GetIntegeri_v and GetBooleani_v.

public static final int
GL_IMAGE_BINDING_FORMAT_EXT

Accepted by the target parameter of GetIntegeri_v and GetBooleani_v.

public static final int
GL_IMAGE_BINDING_LAYER_EXT

Accepted by the target parameter of GetIntegeri_v and GetBooleani_v.

public static final int
GL_IMAGE_BINDING_LAYERED_EXT

Accepted by the target parameter of GetIntegeri_v and GetBooleani_v.

public static final int
GL_IMAGE_BINDING_LEVEL_EXT

Accepted by the target parameter of GetIntegeri_v and GetBooleani_v.

public static final int
GL_IMAGE_BINDING_NAME_EXT

Accepted by the target parameter of GetIntegeri_v and GetBooleani_v.

public static final int
GL_IMAGE_BUFFER_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_IMAGE_CUBE_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_IMAGE_CUBE_MAP_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_INT_IMAGE_1D_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_INT_IMAGE_1D_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_INT_IMAGE_2D_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_INT_IMAGE_2D_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_INT_IMAGE_2D_MULTISAMPLE_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_INT_IMAGE_2D_RECT_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_INT_IMAGE_3D_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_INT_IMAGE_BUFFER_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_INT_IMAGE_CUBE_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.

public static final int
GL_MAX_IMAGE_SAMPLES_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.

public static final int
GL_MAX_IMAGE_UNITS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.

public static final int
GL_PIXEL_BUFFER_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

public static final int
GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

public static final int
GL_TEXTURE_FETCH_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

public static final int
GL_TEXTURE_UPDATE_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

public static final int
GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

public static final int
GL_UNIFORM_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

public static final int
GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_UNSIGNED_INT_IMAGE_1D_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_UNSIGNED_INT_IMAGE_2D_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_UNSIGNED_INT_IMAGE_3D_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_UNSIGNED_INT_IMAGE_BUFFER_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_UNSIGNED_INT_IMAGE_CUBE_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

public static final int
GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public static native void
glBindImageTextureEXT(int index, int texture, int level, boolean layered, int layer, int access, int format)

public static native void
glMemoryBarrierEXT(int barriers)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

GL_ALL_BARRIER_BITS_EXTback to summary
public static final int GL_ALL_BARRIER_BITS_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

GL_ATOMIC_COUNTER_BARRIER_BIT_EXTback to summary
public static final int GL_ATOMIC_COUNTER_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

GL_BUFFER_UPDATE_BARRIER_BIT_EXTback to summary
public static final int GL_BUFFER_UPDATE_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

GL_COMMAND_BARRIER_BIT_EXTback to summary
public static final int GL_COMMAND_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

GL_ELEMENT_ARRAY_BARRIER_BIT_EXTback to summary
public static final int GL_ELEMENT_ARRAY_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

GL_FRAMEBUFFER_BARRIER_BIT_EXTback to summary
public static final int GL_FRAMEBUFFER_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

GL_IMAGE_1D_ARRAY_EXTback to summary
public static final int GL_IMAGE_1D_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

GL_IMAGE_1D_EXTback to summary
public static final int GL_IMAGE_1D_EXT

Returned by the type parameter of GetActiveUniform.

GL_IMAGE_2D_ARRAY_EXTback to summary
public static final int GL_IMAGE_2D_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

GL_IMAGE_2D_EXTback to summary
public static final int GL_IMAGE_2D_EXT

Returned by the type parameter of GetActiveUniform.

GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXTback to summary
public static final int GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

GL_IMAGE_2D_MULTISAMPLE_EXTback to summary
public static final int GL_IMAGE_2D_MULTISAMPLE_EXT

Returned by the type parameter of GetActiveUniform.

GL_IMAGE_2D_RECT_EXTback to summary
public static final int GL_IMAGE_2D_RECT_EXT

Returned by the type parameter of GetActiveUniform.

GL_IMAGE_3D_EXTback to summary
public static final int GL_IMAGE_3D_EXT

Returned by the type parameter of GetActiveUniform.

GL_IMAGE_BINDING_ACCESS_EXTback to summary
public static final int GL_IMAGE_BINDING_ACCESS_EXT

Accepted by the target parameter of GetIntegeri_v and GetBooleani_v.

GL_IMAGE_BINDING_FORMAT_EXTback to summary
public static final int GL_IMAGE_BINDING_FORMAT_EXT

Accepted by the target parameter of GetIntegeri_v and GetBooleani_v.

GL_IMAGE_BINDING_LAYER_EXTback to summary
public static final int GL_IMAGE_BINDING_LAYER_EXT

Accepted by the target parameter of GetIntegeri_v and GetBooleani_v.

GL_IMAGE_BINDING_LAYERED_EXTback to summary
public static final int GL_IMAGE_BINDING_LAYERED_EXT

Accepted by the target parameter of GetIntegeri_v and GetBooleani_v.

GL_IMAGE_BINDING_LEVEL_EXTback to summary
public static final int GL_IMAGE_BINDING_LEVEL_EXT

Accepted by the target parameter of GetIntegeri_v and GetBooleani_v.

GL_IMAGE_BINDING_NAME_EXTback to summary
public static final int GL_IMAGE_BINDING_NAME_EXT

Accepted by the target parameter of GetIntegeri_v and GetBooleani_v.

GL_IMAGE_BUFFER_EXTback to summary
public static final int GL_IMAGE_BUFFER_EXT

Returned by the type parameter of GetActiveUniform.

GL_IMAGE_CUBE_EXTback to summary
public static final int GL_IMAGE_CUBE_EXT

Returned by the type parameter of GetActiveUniform.

GL_IMAGE_CUBE_MAP_ARRAY_EXTback to summary
public static final int GL_IMAGE_CUBE_MAP_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

GL_INT_IMAGE_1D_ARRAY_EXTback to summary
public static final int GL_INT_IMAGE_1D_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

GL_INT_IMAGE_1D_EXTback to summary
public static final int GL_INT_IMAGE_1D_EXT

Returned by the type parameter of GetActiveUniform.

GL_INT_IMAGE_2D_ARRAY_EXTback to summary
public static final int GL_INT_IMAGE_2D_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

GL_INT_IMAGE_2D_EXTback to summary
public static final int GL_INT_IMAGE_2D_EXT

Returned by the type parameter of GetActiveUniform.

GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXTback to summary
public static final int GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

GL_INT_IMAGE_2D_MULTISAMPLE_EXTback to summary
public static final int GL_INT_IMAGE_2D_MULTISAMPLE_EXT

Returned by the type parameter of GetActiveUniform.

GL_INT_IMAGE_2D_RECT_EXTback to summary
public static final int GL_INT_IMAGE_2D_RECT_EXT

Returned by the type parameter of GetActiveUniform.

GL_INT_IMAGE_3D_EXTback to summary
public static final int GL_INT_IMAGE_3D_EXT

Returned by the type parameter of GetActiveUniform.

GL_INT_IMAGE_BUFFER_EXTback to summary
public static final int GL_INT_IMAGE_BUFFER_EXT

Returned by the type parameter of GetActiveUniform.

GL_INT_IMAGE_CUBE_EXTback to summary
public static final int GL_INT_IMAGE_CUBE_EXT

Returned by the type parameter of GetActiveUniform.

GL_INT_IMAGE_CUBE_MAP_ARRAY_EXTback to summary
public static final int GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXTback to summary
public static final int GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.

GL_MAX_IMAGE_SAMPLES_EXTback to summary
public static final int GL_MAX_IMAGE_SAMPLES_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.

GL_MAX_IMAGE_UNITS_EXTback to summary
public static final int GL_MAX_IMAGE_UNITS_EXT

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.

GL_PIXEL_BUFFER_BARRIER_BIT_EXTback to summary
public static final int GL_PIXEL_BUFFER_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXTback to summary
public static final int GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

GL_TEXTURE_FETCH_BARRIER_BIT_EXTback to summary
public static final int GL_TEXTURE_FETCH_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

GL_TEXTURE_UPDATE_BARRIER_BIT_EXTback to summary
public static final int GL_TEXTURE_UPDATE_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXTback to summary
public static final int GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

GL_UNIFORM_BARRIER_BIT_EXTback to summary
public static final int GL_UNIFORM_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXTback to summary
public static final int GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

GL_UNSIGNED_INT_IMAGE_1D_EXTback to summary
public static final int GL_UNSIGNED_INT_IMAGE_1D_EXT

Returned by the type parameter of GetActiveUniform.

GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXTback to summary
public static final int GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

GL_UNSIGNED_INT_IMAGE_2D_EXTback to summary
public static final int GL_UNSIGNED_INT_IMAGE_2D_EXT

Returned by the type parameter of GetActiveUniform.

GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXTback to summary
public static final int GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXTback to summary
public static final int GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT

Returned by the type parameter of GetActiveUniform.

GL_UNSIGNED_INT_IMAGE_2D_RECT_EXTback to summary
public static final int GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT

Returned by the type parameter of GetActiveUniform.

GL_UNSIGNED_INT_IMAGE_3D_EXTback to summary
public static final int GL_UNSIGNED_INT_IMAGE_3D_EXT

Returned by the type parameter of GetActiveUniform.

GL_UNSIGNED_INT_IMAGE_BUFFER_EXTback to summary
public static final int GL_UNSIGNED_INT_IMAGE_BUFFER_EXT

Returned by the type parameter of GetActiveUniform.

GL_UNSIGNED_INT_IMAGE_CUBE_EXTback to summary
public static final int GL_UNSIGNED_INT_IMAGE_CUBE_EXT

Returned by the type parameter of GetActiveUniform.

GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXTback to summary
public static final int GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT

Returned by the type parameter of GetActiveUniform.

GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXTback to summary
public static final int GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT

Accepted by the barriers parameter of MemoryBarrierEXT.

Constructor Detail

EXTShaderImageLoadStoreback to summary
protected EXTShaderImageLoadStore()

Method Detail

glBindImageTextureEXTback to summary
public static native void glBindImageTextureEXT(int index, int texture, int level, boolean layered, int layer, int access, int format)
glMemoryBarrierEXTback to summary
public static native void glMemoryBarrierEXT(int barriers)