On 09/29/2010 07:34 PM, Dave Airlie wrote:
So I've been playing with stencil writing on r600, and it lead me to
examine the depth writing.

So at the moment in gallium if we are writing to depth via DrawPixels,
we construct a fragment program that samples from a texture.

TEX OUT[0].z, IN[1], SAMP[0], 2D

Now from what I can see the format we pick to sample from is
Z24_UNORM_S8_USCALED, which from the u_format.csv file seems to say it
will put the results into X and Y components.

I think what the u_format.csv file says isn't totally consistant with what the table at the bottom of tgsi.rst says.

We never did nail down the Z/Gallium cell in the later table.

To be consistant with what the u_format.csv file says, I think the tgsi.rgs table needs to be updated to read:

 Texture Comps   Gallium        OpenGL               Direct3D 9
+--------------+--------------+--------------------+--------------+
| Z            | (Z, ?, ?, ?) | (z, z, z, 1)*      | (0, z, 0, 1) |
+--------------+--------------+--------------------+--------------+
| ZS           | (Z, S, ?, ?) | (z, z, z, 1)*      | tbd          |
+--------------+--------------+--------------------+--------------+
| S            | (?, S, ?, ?) | undefined          | tbd          |
+--------------+--------------+--------------------+--------------+

What do people think about that?


Now if we sample from
the X and Y components and the texture dest writemask is Z, I can't
see how any value arrives in the right place. It seems to work but I'm
a bit lost where the magic is.

I'd have expected there to be swizzles in the sampler but I can't see
them being set to anything special either.

I think we've just been getting lucky by the TEX instructions returning (Z,Z,Z,?).

If we go with the table changes above, we need to either specify a sampler swizzle or do something like this in the shader:

TEX TEMP[0].x, IN[1], SAMP[0], 2D
MOV OUT[0].z, TEMP[0].xxxx;

-Brian
_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to