From: Marek Olšák Date: Mon, 27 Feb 2012 13:34:52 +0000 (+0100) Subject: r600g: initialize DB_DEPTH_CONTROL at beginning of CS X-Git-Tag: mesa-9.0~2888 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=96ef4ddc3ddda4d1f637af86f4790d24f8f386c6;p=platform%2Fupstream%2Fmesa.git r600g: initialize DB_DEPTH_CONTROL at beginning of CS Otherwise streamout with rasterizer discard will make the kernel upset if the state tracker doesn't set a depth-stencil-alpha state. Reviewed-by: Alex Deucher Reviewed-by: Christian König --- diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c index 603b579..5d0fabc 100644 --- a/src/gallium/drivers/r600/evergreen_state.c +++ b/src/gallium/drivers/r600/evergreen_state.c @@ -1956,6 +1956,7 @@ static void cayman_init_atom_start_cs(struct r600_context *rctx) r600_store_context_reg(cb, R_0288A8_SQ_PGM_RESOURCES_FS, 0); r600_store_context_reg(cb, R_028354_SX_SURFACE_SYNC, S_028354_SURFACE_SYNC_MASK(0xf)); + r600_store_context_reg(cb, R_028800_DB_DEPTH_CONTROL, 0); eg_store_loop_const(cb, R_03A200_SQ_LOOP_CONST_0, 0x01000FFF); eg_store_loop_const(cb, R_03A200_SQ_LOOP_CONST_0 + (32 * 4), 0x01000FFF); @@ -2438,6 +2439,7 @@ void evergreen_init_atom_start_cs(struct r600_context *rctx) r600_store_context_reg(cb, R_0288A8_SQ_PGM_RESOURCES_FS, 0); r600_store_context_reg(cb, R_028354_SX_SURFACE_SYNC, S_028354_SURFACE_SYNC_MASK(0xf)); + r600_store_context_reg(cb, R_028800_DB_DEPTH_CONTROL, 0); eg_store_loop_const(cb, R_03A200_SQ_LOOP_CONST_0, 0x01000FFF); eg_store_loop_const(cb, R_03A200_SQ_LOOP_CONST_0 + (32 * 4), 0x01000FFF); diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c index bdecf7f..9b1dd3c 100644 --- a/src/gallium/drivers/r600/r600_state.c +++ b/src/gallium/drivers/r600/r600_state.c @@ -2142,6 +2142,7 @@ void r600_init_atom_start_cs(struct r600_context *rctx) if (rctx->chip_class == R700) r600_store_context_reg(cb, R_028354_SX_SURFACE_SYNC, S_028354_SURFACE_SYNC_MASK(0xf)); + r600_store_context_reg(cb, R_028800_DB_DEPTH_CONTROL, 0); r600_store_loop_const(cb, R_03E200_SQ_LOOP_CONST_0, 0x1000FFF); r600_store_loop_const(cb, R_03E200_SQ_LOOP_CONST_0 + (32 * 4), 0x1000FFF);