Image Load Store
Core in version | 4.6 | |
---|---|---|
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.
This article is a stub. You can help the OpenGL Wiki by expanding it. |
Overview
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 that all of its write operations are not automatically coherent. 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
Atomic operations
Memory coherency
Writes and atomic operations via image variables are not automatically coherent. Therefore, you must do things to ensure that writes have occurred before you can read those values.