Difference between revisions of "Image Load Store"

From OpenGL.org
Jump to: navigation, search
(Adjusted overview.)
Line 20: Line 20:
== Basic load store ==
== Basic load store ==
== Atomic operations ==
== Memory coherency ==
== Memory coherency ==
=== Atomic operations ===
== Limitations ==

Revision as of 21:02, 31 October 2012

Image Load Store
Core in version 4.5
Core since version 4.2
Core ARB extension ARB_shader_image_load_store
EXT extension EXT_shader_image_load_store

Image load/store is the ability of Shaders to more-or-less arbitrarily read from and write to images.


The idea with image load/store is that the user can bind one of the images in a Texture to a number of image binding points (which are separate from texture image units). Shaders can read information from these images and write information to them, in ways that they cannot with textures.

This can allow for a number of powerful features, including relatively cheap order-independent transparency.

If you think that this is a great feature, remember that there is no such thing as a free lunch. The cost of using image load/store is in user-specified memory coherency. By using image load/store, you take up the responsibility to manage what OpenGL would manage for you using regular texture reads/FBO writes.

Image variables

Formats and compatibility

Basic load store

Memory coherency

Atomic operations