Problem is accessing depth (internal format) texture array in the shader and writing it to some output.
My hardware is GL4.2 (AMD 5750) - drivers Catalyst 13.1
And here is the screenshot of the whole thing in PerfStudio frame debugger:
As you can see, in the fragment shader, FS (the only texture binded) is is GL_DEPTH_COMPONENT binded to sampler2DArray, I just fetch the first array slice and put it in first RT (RT) but the result is always zero. I even tried fetching texture with texelFetch and the result is the same. I also included the shot of the source texture array info. the shots are pretty self explanatory.
The code for textue/framebuffer creation :
glGenTextures(1, &tex_id); glBindTexture(GL_TEXTURE_2D_ARRAY, tex_id); glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_DEPTH_COMPONENT, 1024, 1024, 3, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, NULL); glGenFramebuffers(1, &fb); glBindFramebuffer(GL_DRAW_FRAMEBUFFER, fb); glDrawBuffer(GL_NONE); glFramebufferTexture(GL_DRAW_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, tex_id, 0); ASSERT(glCheckFramebufferStatus(GL_DRAW_FRAMEBUFFER) == GL_FRAMEBUFFER_COMPLETE); // ... draw to frame buffer
Can anybody hint what I'm doing wrong ?