Mesa (radeon-rewrite): Don' t use an alpha texture format for GLX_TEXTURE_FORMAT_RGB_EXT

Alex Deucher agd5f at kemper.freedesktop.org
Wed May 13 23:44:32 UTC 2009


Module: Mesa
Branch: radeon-rewrite
Commit: ea6a74abbe4053b958d640425e061f0ceec92291
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ea6a74abbe4053b958d640425e061f0ceec92291

Author: Owen W. Taylor <otaylor at fishsoup.net>
Date:   Wed May  6 22:42:50 2009 -0400

Don't use an alpha texture format for GLX_TEXTURE_FORMAT_RGB_EXT

In r300SetTexBuffer2(), if the passed in text glx_texture_format
is GLX_TEXTURE_FORMAT_RGB_EXT, then we should use an RGB-only
texture format, even if the DRI buffer has four channels.

https://bugs.freedesktop.org/show_bug.cgi?id=21609

---

 src/mesa/drivers/dri/r300/r300_texstate.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/r300/r300_texstate.c b/src/mesa/drivers/dri/r300/r300_texstate.c
index 443fafe..6d6a90a 100644
--- a/src/mesa/drivers/dri/r300/r300_texstate.c
+++ b/src/mesa/drivers/dri/r300/r300_texstate.c
@@ -449,7 +449,10 @@ void r300SetTexBuffer2(__DRIcontext *pDRICtx, GLint target, GLint glx_texture_fo
 	pitch_val = rb->pitch;
 	switch (rb->cpp) {
 	case 4:
-		t->pp_txformat = R300_EASY_TX_FORMAT(X, Y, Z, W, W8Z8Y8X8);
+		if (glx_texture_format == GLX_TEXTURE_FORMAT_RGB_EXT)
+			t->pp_txformat = R300_EASY_TX_FORMAT(X, Y, Z, ONE, W8Z8Y8X8);
+		else
+			t->pp_txformat = R300_EASY_TX_FORMAT(X, Y, Z, W, W8Z8Y8X8);
 		t->pp_txfilter |= tx_table[2].filter;
 		pitch_val /= 4;
 		break;




More information about the mesa-commit mailing list