GLSL scatter without CUDA?


is it possible to use “scatter” (shared memory) inside GLSL shaders with the geforce 8800?
Currently I render a scene into a texture via a FBO, calculate the edges with a GLSL shader and compare this image with a different one on the CPU. Therefore I need to sum some pixels, which forces me to transfer the texture back to CPU, as this requires scatter operations.

As new hardware supports scatter operations, do you plan to extend this to regular shaders?
How good does the CUDA framework support OpenGL? Is it possible to use a frambuffer object as e.g. a matrix inside CUDA without much overhead, and switch back to regular rendering?

thanks in advance!

No, scatter is only possible in the current shader programming models by rendering points and specifying the position in the vertex shader.

It would be difficult to extend pixel shaders in their current form to support arbitrary load/store or shared memory.

Interoperability between CUDA and OpenGL works well and is described in the programming guide. You can’t map FBOs directly, but you can map PBOs.