Ian Romanick wrote:
Leif Delgass wrote:

On Wed, 5 Feb 2003, Ian Romanick wrote:
[...]

Regarding glean, I need to test again, but I was seeing some other
failures even with the mesa-4-0-4 and trunk.  I think there were some
off-by-one scissor errors and a couple of others.  One question I had was
whether the Radeon driver should really advertise a destination alpha
channel.  At depth 24, glxinfo reports 8 bit alpha for color and accum
buffers.  This doesn't seem to be consistent across the drivers.  Some
don't even seem to be consistent for a given entry between alpha bits,
alpha mask, and buffer size.  Here's a little chart I made a while back:

Some time ago there were some scissor problems that caused every glean test to always fail. I think those were fixed in the radeon and r200 drivers about 6 months ago. On my R100 the only tests that failed for me were the subtract tests and the alpha channel in some combinations of DOT3. I haven't had a chance to dig into that either.

Intuitively, it seems that NONE of these drivers, except Mach64 & Rage128, is reporting the right thing. There seems to be at least one field wrong in each. I'm not 100% clear on the meaning of all the fields, so I could be wrong. Hopefully Brian or Keith can enlighten us on what they should mean. :) I'm mostly unsure of what amask means in this context.
The mask values indicate which bits in the pixel (word) correspond to each color channel. The buffer size is the sum of the red, green, blue, and alpha bits.


Mach64/R128
r g b a amask    bsz  ar ag ab aa  Xvisual dpth
5 6 5 0 00000000  16  16 16 16 0   16
8 8 8 0 00000000  24  16 16 16 0   24
AFAIK, Mach64 doesn't support destination alpha.  This looks correct.


Radeon/R200
r g b a amask    bsz  ar ag ab aa  Xvisual dpth
5 6 5 0 00000000  16  16 16 16 0   16
8 8 8 8 ff000000  24  16 16 16 16  24
bufferSize should be set to 32 in radeon_dri.c


Shouldn't this be one of the following?

8 8 8 0 00000000 32 16 16 16 0 24
8 8 8 8 00000000 32 16 16 16 16 24

I know that in the XFree86 Radeon driver in 24-bit each pixel is actually 4 bytes, whether the alpha channel is used or not.

MGA
r g b a amask    bsz  ar ag ab aa  Xvisual dpth
5 6 5 0 00000000  16  16 16 16 0   16
8 8 8 8 00000000  32  16 16 16 0   24
alphaMask should be 0xff000000.


8 8 8 8 00000000  32  16 16 16 16  24

GLINT
r g b a amask    bsz  ar ag ab aa  Xvisual dpth
5 5 5 5 000f1000  16  16 16 16 0   15 (pScrn->depth)
8 8 8 0 00000000  32  16 16 16 0   24 (pScrn->depth)
This might be right.
Looks OK.


tdfx
r g b a amask    bsz  ar ag ab aa  Xvisual dpth
5 6 5 0 00000000  16  16 16 16 0   16
8 8 8 0 00000000  16  16 16 16 0   24 (pScrn->bitsPerPixel)
8 8 8 8 ff000000  16  16 16 16 16  32 (pScrn->bitsPerPixel)
8 8 8 0 00000000  32  16 16 16 0   24
8 8 8 8 00000000  32  16 16 16 16  24
In hw/drivers/tdfx/tdfx_dri.c bufferSize should be set to 32.

I'll check in corrections for these shortly.  Thanks!

-Brian



-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to