I just upgraded from Catalyst 10.3 to 10.4 on windows xp sp2 ATI HD4670
Now I got a problem in my deferred shading g-buffer MRT code that work perfectly fine in previous release of the driver (10.2 - 10.3) and on NVIDIA card (9800gt)
To make it short it look like glDrawBuffers and glBindFragDataLocation are not matching
let say I have FBO with 5 color attachment (GL_COLOR_ATTACHMENT0 - GL_COLOR_ATTACHMENT4) and a shader that write data 4 out put target
The code to bind output location are as below
glBindFragDataLocation(this->program,0,"normalFragData");
glBindFragDataLocation(this->program,1,"diffuseFragData");
glBindFragDataLocation(this->program,2,"specularFragData");
glBindFragDataLocation(this->program,3,"emissiveFragData");
and this is the code to select draw buffer
//the color attachment 0 is reserved for lighting/shading pass
GLenum targetBuffer[] = {GL_COLOR_ATTACHMENT1,GL_COLOR_ATTACHMENT2,GL_COLOR_ATTACHMENT3,GL_COLOR_ATTACHMENT4};
glDrawBuffers(4,targetBuffer);
The correct behavior (as seen on 10.2-10.3 and my GF9800GT) should be
write normal data into attachment 1
write diffuse data into attachment 2
write specular data into attachment 3
write emissive data into attachment 4
But the catalyst 10.4 instead make
write normal data in to attachment 0
doesn’t write diffuse data
write specular data in to attachment 1
etc…
Please someone with the same problem confirm this for me :sorrow: .
Now I have to revert back to 10.3 to continue working with my Project .