xf86-video-ati: Branch 'r3xx-render'

Alex Deucher agd5f at kemper.freedesktop.org
Wed Mar 19 10:16:29 PDT 2008


 src/radeon_exa_render.c          |   22 ++++++++++++++++------
 src/radeon_textured_videofuncs.c |   14 ++++++++++----
 2 files changed, 26 insertions(+), 10 deletions(-)

New commits:
commit 55e446b5bc091e6c7b3c2e9ae20b45130555c246
Author: Alex Deucher <alex at samba.(none)>
Date:   Wed Mar 19 13:15:32 2008 -0400

    R3xx/R5xx: Make sure to clamp the output of the FS

diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c
index c881a28..707e9fc 100644
--- a/src/radeon_exa_render.c
+++ b/src/radeon_exa_render.c
@@ -1540,7 +1540,8 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
 		       R300_ALU_RGB_SEL_C(R300_ALU_RGB_0_0) |
 		       R300_ALU_RGB_MOD_C(R300_ALU_RGB_MOD_NOP) |
 		       R300_ALU_RGB_OP(R300_ALU_RGB_OP_MAD) |
-		       R300_ALU_RGB_OMOD(R300_ALU_RGB_OMOD_NONE)));
+		       R300_ALU_RGB_OMOD(R300_ALU_RGB_OMOD_NONE) |
+		       R300_ALU_RGB_CLAMP));
 	OUT_ACCEL_REG(R300_US_ALU_ALPHA_ADDR_0,
 		      (R300_ALU_ALPHA_ADDR0(0) |
 		       R300_ALU_ALPHA_ADDR1(1) |
@@ -1557,7 +1558,8 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
 		       R300_ALU_ALPHA_SEL_C(R300_ALU_ALPHA_0_0) |
 		       R300_ALU_ALPHA_MOD_C(R300_ALU_ALPHA_MOD_NOP) |
 		       R300_ALU_ALPHA_OP(R300_ALU_ALPHA_OP_MAD) |
-		       R300_ALU_ALPHA_OMOD(R300_ALU_ALPHA_OMOD_NONE)));
+		       R300_ALU_ALPHA_OMOD(R300_ALU_ALPHA_OMOD_NONE) |
+		       R300_ALU_ALPHA_CLAMP));
 	FINISH_ACCEL();
     } else {
 	CARD32 output_fmt;
@@ -1771,7 +1773,9 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
 						   R500_INST_RGB_WMASK_R |
 						   R500_INST_RGB_WMASK_G |
 						   R500_INST_RGB_WMASK_B |
-						   R500_INST_ALPHA_WMASK));
+						   R500_INST_ALPHA_WMASK |
+						   R500_INST_RGB_CLAMP |
+						   R500_INST_ALPHA_CLAMP));
 
 	    OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(0) |
 						   R500_TEX_INST_LD |
@@ -1803,7 +1807,9 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
 						   R500_INST_RGB_WMASK_R |
 						   R500_INST_RGB_WMASK_G |
 						   R500_INST_RGB_WMASK_B |
-						   R500_INST_ALPHA_WMASK));
+						   R500_INST_ALPHA_WMASK |
+						   R500_INST_RGB_CLAMP |
+						   R500_INST_ALPHA_CLAMP));
 
 	    OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(1) |
 						   R500_TEX_INST_LD |
@@ -1838,7 +1844,9 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
 						   R500_INST_RGB_WMASK_R |
 						   R500_INST_RGB_WMASK_G |
 						   R500_INST_RGB_WMASK_B |
-						   R500_INST_ALPHA_WMASK));
+						   R500_INST_ALPHA_WMASK |
+						   R500_INST_RGB_CLAMP |
+						   R500_INST_ALPHA_CLAMP));
 
 	    OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(0) |
 						   R500_TEX_INST_LD |
@@ -1873,7 +1881,9 @@ static Bool FUNC_NAME(R300PrepareComposite)(int op, PicturePtr pSrcPicture,
 					       R500_INST_RGB_OMASK_R |
 					       R500_INST_RGB_OMASK_G |
 					       R500_INST_RGB_OMASK_B |
-					       R500_INST_ALPHA_OMASK));
+					       R500_INST_ALPHA_OMASK |
+					       R500_INST_RGB_CLAMP |
+					       R500_INST_ALPHA_CLAMP));
 
 	OUT_ACCEL_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR0(0) |
 					       R500_RGB_ADDR1(1) |
diff --git a/src/radeon_textured_videofuncs.c b/src/radeon_textured_videofuncs.c
index 6a2b8e1..7702591 100644
--- a/src/radeon_textured_videofuncs.c
+++ b/src/radeon_textured_videofuncs.c
@@ -414,7 +414,8 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
 			   R300_ALU_RGB_SEL_C(R300_ALU_RGB_0_0) |
 			   R300_ALU_RGB_MOD_C(R300_ALU_RGB_MOD_NOP) |
 			   R300_ALU_RGB_OP(R300_ALU_RGB_OP_MAD) |
-			   R300_ALU_RGB_OMOD(R300_ALU_RGB_OMOD_NONE)));
+			   R300_ALU_RGB_OMOD(R300_ALU_RGB_OMOD_NONE) |
+			   R300_ALU_RGB_CLAMP));
 	    OUT_VIDEO_REG(R300_US_ALU_ALPHA_ADDR_0,
 			  (R300_ALU_ALPHA_ADDR0(0) |
 			   R300_ALU_ALPHA_ADDR1(0) |
@@ -432,7 +433,8 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
 			   R300_ALU_ALPHA_SEL_C(R300_ALU_ALPHA_0_0) |
 			   R300_ALU_ALPHA_MOD_C(R300_ALU_ALPHA_MOD_NOP) |
 			   R300_ALU_ALPHA_OP(R300_ALU_ALPHA_OP_MAD) |
-			   R300_ALU_ALPHA_OMOD(R300_ALU_ALPHA_OMOD_NONE)));
+			   R300_ALU_ALPHA_OMOD(R300_ALU_ALPHA_OMOD_NONE) |
+			   R300_ALU_ALPHA_CLAMP));
 	    FINISH_VIDEO();
 	} else {
 	    BEGIN_VIDEO(23);
@@ -461,7 +463,9 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
 						   R500_INST_RGB_WMASK_R |
 						   R500_INST_RGB_WMASK_G |
 						   R500_INST_RGB_WMASK_B |
-						   R500_INST_ALPHA_WMASK));
+						   R500_INST_ALPHA_WMASK |
+						   R500_INST_RGB_CLAMP |
+						   R500_INST_ALPHA_CLAMP));
 
 	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_TEX_ID(0) |
 						   R500_TEX_INST_LD |
@@ -496,7 +500,9 @@ FUNC_NAME(RADEONDisplayTexturedVideo)(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv
 						   R500_INST_RGB_OMASK_R |
 						   R500_INST_RGB_OMASK_G |
 						   R500_INST_RGB_OMASK_B |
-						   R500_INST_ALPHA_OMASK));
+						   R500_INST_ALPHA_OMASK |
+						   R500_INST_RGB_CLAMP |
+						   R500_INST_ALPHA_CLAMP));
 
 	    OUT_VIDEO_REG(R500_GA_US_VECTOR_DATA, (R500_RGB_ADDR0(0) |
 						   R500_RGB_ADDR1(0) |


More information about the xorg-commit mailing list