Image Load Store: Difference between revisions
Outline added. |
|||
Line 8: | Line 8: | ||
== Overview == | == 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 in [[#Memory coherency|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/[[Framebuffer Object|FBO]] writes. | |||
== Image variables == | == Image variables == |
Revision as of 01:02, 1 November 2012
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.
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 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
Atomic operations
Memory coherency
This article is a stub. You can help the OpenGL Wiki by expanding it. |