diff --git a/src/gallium/drivers/r600/r600_compiler_r700.c b/src/gallium/drivers/r600/r600_compiler_r700.c
index 293fd77..982f4f5 100644
--- a/src/gallium/drivers/r600/r600_compiler_r700.c
+++ b/src/gallium/drivers/r600/r600_compiler_r700.c
@@ -143,7 +143,7 @@ static int r700_shader_alu_bytecode(struct r600_shader *rshader,
 		rshader->bcode[id++] = S_SQ_ALU_WORD1_DST_GPR(gpr[0]) |
 					S_SQ_ALU_WORD1_DST_CHAN(alu->component[0]) |
 					S_SQ_ALU_WORD1_OP2_WRITE_MASK(1) |
-					S_SQ_ALU_WORD1_OP2_ALU_INST(alu->opcode) |
+					((alu->opcode)<<8) |
 					S_SQ_ALU_WORD1_BANK_SWIZZLE(5);
 	}
 	*cid = id;
diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index ff5ab89..7692791 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -364,7 +364,7 @@ static void *r600_create_dsa_state(struct pipe_context *ctx,
 	dsa.db_depth_control = 0x00700700;
 	dsa.db_shader_control = 0x00000210;
 	dsa.db_render_control = 0x00000060;
-	dsa.db_render_override = 0x0000002A;
+	dsa.db_render_override = 0x0000006A;
 	dsa.db_alpha_to_mask = 0x0000AA00;
 	dsa.db_sresults_compare_state1 = 0x00000000;
 	dsa.db_preload_control = 0x00000000;
diff --git a/src/gallium/winsys/drm/r600/core/r700_atom.c b/src/gallium/winsys/drm/r600/core/r700_atom.c
index 24fcb89..8b9a44a 100644
--- a/src/gallium/winsys/drm/r600/core/r700_atom.c
+++ b/src/gallium/winsys/drm/r600/core/r700_atom.c
@@ -30,10 +30,10 @@ void r700_scheduler_states_default(struct r600_winsys *rdev, struct r600_schedul
 {
 	struct radeon_ib *ib = scheduler->ib;
 
-#if 0
+
 	ib->ptr[ib->cpkts++] = PKT3(PKT3_START_3D_CMDBUF, 0);
 	ib->ptr[ib->cpkts++] = 0x00000000;
-#endif
+
 	ib->ptr[ib->cpkts++] = PKT3(PKT3_CONTEXT_CONTROL, 1);
 	ib->ptr[ib->cpkts++] = 0x80000000;
 	ib->ptr[ib->cpkts++] = 0x80000000;
@@ -50,15 +50,15 @@ void r700_scheduler_states_default(struct r600_winsys *rdev, struct r600_schedul
 	/* R7xx R_008D8C_SQ_DYN_GPR_CNTL_PS_FLUSH_REQ */
 	ib->ptr[ib->cpkts++] = PKT3(PKT3_SET_CONFIG_REG, 1);
 	ib->ptr[ib->cpkts++] = 0x00000363;
-	ib->ptr[ib->cpkts++] = 0x00004000;
+	ib->ptr[ib->cpkts++] = 0x00000000;
 	/* R_009839_DB_DEBUG */
 	ib->ptr[ib->cpkts++] = PKT3(PKT3_SET_CONFIG_REG, 1);
 	ib->ptr[ib->cpkts++] = 0x0000060C;
-	ib->ptr[ib->cpkts++] = 0x00000000;
+	ib->ptr[ib->cpkts++] = 0x82000000;
 	/* R_09838_DB_WATERMARK */
 	ib->ptr[ib->cpkts++] = PKT3(PKT3_SET_CONFIG_REG, 1);
 	ib->ptr[ib->cpkts++] = 0x0000060E;
-	ib->ptr[ib->cpkts++] = 0x00420204;
+	ib->ptr[ib->cpkts++] = 0x01020204;
 	/* R_0288A8_SQ_ESGS_RING_ITEMSIZE
 	 * R_0288AC_SQ_GSVS_RING_ITEMSIZE
 	 * R_0288B0_SQ_ESTMP_RING_ITEMSIZE
@@ -99,7 +99,7 @@ void r700_scheduler_states_default(struct r600_winsys *rdev, struct r600_schedul
 	/* SPI_THREAD_GROUPING */
 	ib->ptr[ib->cpkts++] = PKT3(PKT3_SET_CONTEXT_REG, 1);
 	ib->ptr[ib->cpkts++] = 0x000001B2;
-	ib->ptr[ib->cpkts++] = 0x00000001;
+	ib->ptr[ib->cpkts++] = 0x00000000;
 	/* SPI_INTERP_CONTROL_0
 	 * SPI_INPUT_Z
 	 * SPI_FOG_CNTL
@@ -203,13 +203,13 @@ void r700_scheduler_states_default(struct r600_winsys *rdev, struct r600_schedul
 	ib->ptr[ib->cpkts++] = 0x0000000D;
 	ib->ptr[ib->cpkts++] = 0x40240054;
 	ib->ptr[ib->cpkts++] = 0x00000000;
-	ib->ptr[ib->cpkts++] = 0x00003CBC;
-	ib->ptr[ib->cpkts++] = 0x00800080;
+	ib->ptr[ib->cpkts++] = 0x04043088;
+	ib->ptr[ib->cpkts++] = 0x00280028;
 	ib->ptr[ib->cpkts++] = 0x00000000;
 	/* R7xx PA_SC_EDGERULE */
 	ib->ptr[ib->cpkts++] = PKT3(PKT3_SET_CONTEXT_REG, 1);
 	ib->ptr[ib->cpkts++] = 0x0000008C;
-	ib->ptr[ib->cpkts++] = 0xAAAAAAAA;
+	ib->ptr[ib->cpkts++] = 0x00000000;
 	/* PA_SC_AA_SAMPLE_LOCS_MCTX */
 	ib->ptr[ib->cpkts++] = PKT3(PKT3_SET_CONTEXT_REG, 1);
 	ib->ptr[ib->cpkts++] = 0x00000307;
@@ -230,5 +230,18 @@ void r700_scheduler_states_default(struct r600_winsys *rdev, struct r600_schedul
 	/* PA_SC_MODE_CNTL */
 	ib->ptr[ib->cpkts++] = PKT3(PKT3_SET_CONTEXT_REG, 1);
 	ib->ptr[ib->cpkts++] = 0x00000293;
-	ib->ptr[ib->cpkts++] = 0x00514000;
+	ib->ptr[ib->cpkts++] = 0x00504010;
+	/*FOG_RED*/
+	ib->ptr[ib->cpkts++] = PKT3(PKT3_SET_CONTEXT_REG, 3);
+	ib->ptr[ib->cpkts++] = 0x00000109;
+	ib->ptr[ib->cpkts++] = 0x00000000;
+	ib->ptr[ib->cpkts++] = 0x00000000;
+	ib->ptr[ib->cpkts++] = 0x00000000;
+	/*CB_CLEAR_RED*/
+	ib->ptr[ib->cpkts++] = PKT3(PKT3_SET_CONTEXT_REG, 4);
+	ib->ptr[ib->cpkts++] = 0x00000120;
+	ib->ptr[ib->cpkts++] = 1.0f;
+	ib->ptr[ib->cpkts++] = 0.0f;
+	ib->ptr[ib->cpkts++] = 1.0f;
+	ib->ptr[ib->cpkts++] = 1.0f;
 }
