Hey AMD/ATI users
We are working on a heavy GPU based Virtual Reality application doing Volume Raytracing on medical dataset.
I recently both a new macbook because I was hoping to get more power with a 4 years newer computer.
Sadly nearly all shaders are performing SLOWER compared to the old Nvidia hardware (GPU Radeon Pro 560 vs NVidia GT 750M).
As we do volume raytracing we are using sampler3D including sampler3D arrays which is just one problem:
The access to a sampler3d array is not directly possible on AMD hardware. So far I fixed this with a switch statement which is much
slower compared to the direct access possible on nvidia. Is there any better solution on AMD ?
uniform sampler3D uTransmittance[8];
vec4 getTransmittance(int index, vec3 pos) {
#ifdef AMD
switch(index) {
case 0: return texture(uTransmittance[0], pos);
case 1: return texture(uTransmittance[1], pos);
case 2: return texture(uTransmittance[2], pos);
case 3: return texture(uTransmittance[3], pos);
case 4: return texture(uTransmittance[4], pos);
case 5: return texture(uTransmittance[5], pos);
case 6: return texture(uTransmittance[6], pos);
case 7: return texture(uTransmittance[7], pos);
}
#else
return texture(uTransmittance[index], pos);
#endif
}
Also the "normal" OpenGL shaders rendering a simple 3D scene are mostly all slower. Will try to find out more about this.
As conclusion I can confirm the misgiving that the new macbook pro's delivered with amd instead nvidia GPU could lead to problems with opengl based applications ;(