I am trying to determine if CUDA would be more efficient to use than shaders when working with a 512x512 floating point texture. Now, I am aware that CUDA cannot work directly with OpenGL textures, so a memory buffer would have to be created to read the data into.
Basically, I have three shaders that generate a histogram, smooth the histogram and apply it with an image manipulation algorithm, and finally display the results of the manipulated image.
As it stands, the shader implementation is rather quick, however there are additional filters we would like to add to the shaders. Unfortunately, the more filters that are generated, the more floating point textures we will have to use for fidelity. The additional shaders will also start to impede performance
I am hoping that I could utilize CUDA to streamline the algorithms so that additional filters could be written without impacting the overall performance (these computations need to be at a fast framerate – ~60FPS at least). However, if using vertex shaders to manipulate the imagery would be more efficient, by all means I would want to go that route.