From 7b2d09d148582dd92dca6044b3a3fab90a476f88 Mon Sep 17 00:00:00 2001
From: Corbin Simpson <MostAwesomeDude@gmail.com>
Date: Sun, 17 Jan 2010 12:23:28 -0800
Subject: [PATCH] Always write MSAA control registers.

Prevents misrendering if a 3D driver has used them.
---
 src/radeon_commonfuncs.c |   34 +++++++++++++++++-----------------
 1 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/src/radeon_commonfuncs.c b/src/radeon_commonfuncs.c
index 8c46235..3d04f27 100644
--- a/src/radeon_commonfuncs.c
+++ b/src/radeon_commonfuncs.c
@@ -110,29 +110,29 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn)
 	OUT_ACCEL_REG(RADEON_WAIT_UNTIL, RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_3D_IDLECLEAN);
 	FINISH_ACCEL();
 
-	BEGIN_ACCEL(3);
+	BEGIN_ACCEL(5);
 	OUT_ACCEL_REG(R300_GB_AA_CONFIG, 0);
+    OUT_ACCEL_REG(R300_GB_MSPOS0, ((6 << R300_MS_X0_SHIFT) |
+                   (6 << R300_MS_Y0_SHIFT) |
+                   (6 << R300_MS_X1_SHIFT) |
+                   (6 << R300_MS_Y1_SHIFT) |
+                   (6 << R300_MS_X2_SHIFT) |
+                   (6 << R300_MS_Y2_SHIFT) |
+                   (6 << R300_MSBD0_Y_SHIFT) |
+                   (6 << R300_MSBD0_X_SHIFT)));
+    OUT_ACCEL_REG(R300_GB_MSPOS1, ((6 << R300_MS_X3_SHIFT) |
+                   (6 << R300_MS_Y3_SHIFT) |
+                   (6 << R300_MS_X4_SHIFT) |
+                   (6 << R300_MS_Y4_SHIFT) |
+                   (6 << R300_MS_X5_SHIFT) |
+                   (6 << R300_MS_Y5_SHIFT) |
+                   (6 << R300_MSBD1_SHIFT)));
 	OUT_ACCEL_REG(R300_RB3D_DSTCACHE_CTLSTAT, R300_DC_FLUSH_3D | R300_DC_FREE_3D);
 	OUT_ACCEL_REG(R300_RB3D_ZCACHE_CTLSTAT, R300_ZC_FLUSH | R300_ZC_FREE);
 	FINISH_ACCEL();
 
 	if (!info->cs) {
-	    BEGIN_ACCEL(3);
-	    OUT_ACCEL_REG(R300_GB_MSPOS0, ((6 << R300_MS_X0_SHIFT) |
-					   (6 << R300_MS_Y0_SHIFT) |
-					   (6 << R300_MS_X1_SHIFT) |
-					   (6 << R300_MS_Y1_SHIFT) |
-					   (6 << R300_MS_X2_SHIFT) |
-					   (6 << R300_MS_Y2_SHIFT) |
-					   (6 << R300_MSBD0_Y_SHIFT) |
-					   (6 << R300_MSBD0_X_SHIFT)));
-	    OUT_ACCEL_REG(R300_GB_MSPOS1, ((6 << R300_MS_X3_SHIFT) |
-					   (6 << R300_MS_Y3_SHIFT) |
-					   (6 << R300_MS_X4_SHIFT) |
-					   (6 << R300_MS_Y4_SHIFT) |
-					   (6 << R300_MS_X5_SHIFT) |
-					   (6 << R300_MS_Y5_SHIFT) |
-					   (6 << R300_MSBD1_SHIFT)));
+        BEGIN_ACCEL(1);
 	    OUT_ACCEL_REG(R300_GA_ENHANCE, R300_GA_DEADLOCK_CNTL | R300_GA_FASTSYNC_CNTL);
 	    FINISH_ACCEL();
 	}
-- 
1.6.5.2

