Wrong contents of depth-buffer (Radeon 2600, Windows Vista)

Hi there,

I just tested my old Fusion-demos (maybe you remember them) on my new laptop containing an ATI Radeon 2600 and working under Windows Vista.

I found out a strange symptom which I had never come across. I’m reading the depthbuffer (within the display-callback) of my GLJpanel with the following code:

gl.glPixelStorei(GL.GL_PACK_ALIGNMENT, 1);
gl.glReadPixels(originalViewPort.x, originalViewPort.y, width, height, GL.GL_DEPTH_COMPONENT, GL.GL_FLOAT, depthBuffer);

On all the tested Nvidia boards (6800 GT, 8800 GTS) and on tested Intel boards (855GM) this code worked well and gave me the wanted information. It worked on a quite old board from ATI (I think Radeon M200 or something like that), too. On the new board I get nothing but “1.0”. Unfortunately I need the correct depth-information for various reasons.

Is there something simple I am missing (especially for the new board)? Of course I use the newest driver version I could find as well as the latest nightly builds of jogl. The Java version ist 1.6 Update 4. I tested with 1.6 Update N b12 as well, but with the same results. I’m not using the sun.java2d.opengl flag.

By the way: the screenshot-class works like it should. The fact that I am getting 1s instead of 0s (which would point to a readback-malfunction) disturbes me.

Thanks in advance
Klemens

My best guess is a driver bug related to pbuffers. I would recommend you try to find a feedback form on ATI’s web site (or a forum where you can post issues to) and supply the smallest test case you can write illustrating the problem.