PDA

View Full Version : Which GPUs support EXT_shader_image_load_store?



fred_em
11-18-2010, 04:27 AM
Hi,

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?

Thanks,
Fred

Groovounet
11-18-2010, 04:46 AM
It should be supported only by Radeon 5000 > series and GeForce 400 > series

fred_em
11-19-2010, 02:33 AM
I don't understand why it would only be supported on Radeon 5000 and Fermi hardware.

I don't see the link between being able to randomly access GPU memory within a shader, and the presence of a tessellation unit.

Are you saying older hardware (say, G80) is not able to do random memory access?

I would be very, very surprised it couldn't.

aqnuep
11-19-2010, 03:12 AM
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.

fred_em
11-19-2010, 03:37 AM
aqnuep,

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?

aqnuep
11-19-2010, 06:13 AM
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.