Both nVidia and AMD drivers now support EXT_shader_image_load_store. I’m using a Radeon HD 5xxx graphics card and from what I can understand, the card is supported.
What about older hardware such as GeForce 8 and 9 series, or Radeon HD 2xxx/3xxx/4xxx?
Could somebody here please check the list of supported extensions, using the very latest drivers (and the hotfixes, for AMD), and let us know if EXT_shader_image_load_store is indeed supported on OpenGL 3.2-class hardware?
That’s a general misunderstanding that the Radeon 5000 and Fermi hardware’s only new functionality is the tessellation unit. Loads of other hardware features has been introduced with these GPUs.
You can in fact do random memory reads in earlier generations of GPUs but you cannot do random memory writes in older hardware.
Just to make it clear. The GL4.0 hardware introduced other features besides tessellation:
read-write buffers and textures
user atomic counters
indirect drawing using parameters from buffer objects
blending improvements
64 bit data types (double, int64, uint64)
per-sample shading
shader subroutines
texture cubemap arrays (present also in SM4.1 level hardware)
texture gather (present also in earlier Radeons)
transform feedback with separate streams
etc, etc, etc
I hate to see people only talk about tessellation when talking about SM5.0 GPUs.
You can do random memory writes from within a CUDA program with a G80 card such as a GeForce 8800 that was released in September, 2006, but you cannot do random memory writes from within a GLSL shader?
Don’t know too much about CUDA capabilities so sorry if I’m not up-to-date with NVIDIA-only technologies. I don’t really bother with proprietary stuff.
If the G80 is really capable of all that is in GL_EXT_shader_image_load_store then it’s NVIDIA’s problem that they don’t expose it, however, I’m pretty sure that some of the functionality is not possible with G80 (maybe atomic read-modify-write?). Don’t know, maybe somebody else can answer it.