r300: emit different clear paths for non-TCL, this gets the clear color correct
authorDave Airlie <airlied@nx6125b.(none)>
Sat, 14 Apr 2007 07:44:33 +0000 (17:44 +1000)
committerDave Airlie <airlied@nx6125b.(none)>
Sat, 14 Apr 2007 07:44:33 +0000 (17:44 +1000)
src/mesa/drivers/dri/r300/r300_ioctl.c

index 4177415521368b7dbb89b8d18eab61b5d6619d6f..90ac9881e8f7cf85285b3cd01743b1be0f7fb0d5 100644 (file)
@@ -186,7 +186,10 @@ static void r300EmitClearState(GLcontext * ctx)
                
        R300_STATECHANGE(r300, vir[0]);
        reg_start(R300_VAP_INPUT_ROUTE_0_0, 0);
-       e32(0x21030003);
+       if (!has_tcl)
+         e32(0x22030003);
+       else
+         e32(0x21030003);
        
        /* disable fog */
        R300_STATECHANGE(r300, fogs);
@@ -201,7 +204,17 @@ static void r300EmitClearState(GLcontext * ctx)
        reg_start(R300_VAP_INPUT_CNTL_0, 1);
        e32(0x00000001);
        e32(0x00000405);
-       
+
+       if (!has_tcl) {
+         /* comes from fglrx startup of clear */
+         reg_start(R300_SE_VTE_CNTL, 1);
+         e32(0x043f);
+         e32(0x8);
+         
+         reg_start(0x21dc, 0);
+         e32(0xaaaaaaaa);
+       }
+
        R300_STATECHANGE(r300, vof);
        reg_start(R300_VAP_OUTPUT_VTX_FMT_0, 1);
        e32(R300_VAP_OUTPUT_VTX_FMT_0__POS_PRESENT | R300_VAP_OUTPUT_VTX_FMT_0__COLOR_PRESENT);