r300-gallium: Separate out fog block.
authorCorbin Simpson <MostAwesomeDude@gmail.com>
Fri, 6 Mar 2009 21:18:12 +0000 (13:18 -0800)
committerCorbin Simpson <MostAwesomeDude@gmail.com>
Sat, 7 Mar 2009 03:07:53 +0000 (19:07 -0800)
We'll never actually use fog block. (I hope.)

src/gallium/drivers/r300/r300_state_invariant.c
src/gallium/drivers/r300/r300_surface.c

index 4ead767a3097443cb31a41655f7609aea71c0d70..c7c20c2de5bd9d0ab26673d7f234bd3c5968389d 100644 (file)
@@ -34,7 +34,7 @@ void r300_emit_invariant_state(struct r300_context* r300)
     struct r300_capabilities* caps = r300_screen(r300->context.screen)->caps;
     CS_LOCALS(r300);
 
-    BEGIN_CS(16);
+    BEGIN_CS(26);
     /* Amount of time to wait for vertex fetches in PVS */
     OUT_CS_REG(VAP_PVS_VTX_TIMEOUT_REG, 0xffff);
     /* Various GB enables */
@@ -62,5 +62,12 @@ void r300_emit_invariant_state(struct r300_context* r300)
                 R300_GA_ENHANCE_DEADLOCK_CNTL_PREVENT_TCL |
                 R300_GA_ENHANCE_FASTSYNC_CNTL_ENABLE);
     }
+
+    /* Fog block. */
+    OUT_CS_REG(R300_FG_FOG_BLEND, 0x00000000);
+    OUT_CS_REG(R300_FG_FOG_COLOR_R, 0x00000000);
+    OUT_CS_REG(R300_FG_FOG_COLOR_G, 0x00000000);
+    OUT_CS_REG(R300_FG_FOG_COLOR_B, 0x00000000);
+    OUT_CS_REG(R300_FG_DEPTH_SRC, 0x00000000);
     END_CS;
 }
index c1d324039edf3444bbeb571b1f3fd06304d5ab8a..cec64ecdd7420c86d893290dcf659eebc13e9938 100644 (file)
@@ -72,7 +72,7 @@ static void r300_surface_fill(struct pipe_context* pipe,
         r300_emit_rs_block_state(r300, &r300_rs_block_clear_state);
     }
 
-    BEGIN_CS(122 + (caps->has_tcl ? 2 : 0));
+    BEGIN_CS(112 + (caps->has_tcl ? 2 : 0));
     /* Flush PVS. */
     OUT_CS_REG(R300_VAP_PVS_STATE_FLUSH_REG, 0x0);
 
@@ -123,12 +123,6 @@ static void r300_surface_fill(struct pipe_context* pipe,
     OUT_CS_REG(R300_SU_DEPTH_OFFSET, 0x00000000);
     OUT_CS_REG(R300_SC_HYPERZ, 0x0000001C);
     OUT_CS_REG(R300_SC_EDGERULE, 0x2DA49525);
-    OUT_CS_REG(R300_FG_FOG_BLEND, 0x00000002);
-    OUT_CS_REG(R300_FG_FOG_COLOR_R, 0x00000000);
-    OUT_CS_REG(R300_FG_FOG_COLOR_G, 0x00000000);
-    OUT_CS_REG(R300_FG_FOG_COLOR_B, 0x00000000);
-    OUT_CS_REG(R300_FG_DEPTH_SRC, 0x00000000);
-    OUT_CS_REG(R300_FG_DEPTH_SRC, 0x00000000);
     OUT_CS_REG(R300_RB3D_CCTL, 0x00000000);
     OUT_CS_REG(RB3D_COLOR_CHANNEL_MASK, 0x0000000F);
 
@@ -162,7 +156,6 @@ static void r300_surface_fill(struct pipe_context* pipe,
             ((R300_LAST_VEC | (2 << R300_DST_VEC_LOC_SHIFT) |
                 R300_DATA_TYPE_FLOAT_4) << R300_DATA_TYPE_1_SHIFT));
     }
-    OUT_CS_REG(R300_FG_FOG_BLEND, 0x00000000);
     OUT_CS_REG(R300_VAP_PROG_STREAM_CNTL_EXT_0, 0xF688F688);
     OUT_CS_REG(R300_VAP_VTX_STATE_CNTL, 0x1);
     OUT_CS_REG(R300_VAP_VSM_VTX_ASSM, 0x405);