diff options
author | Marek Olšák <[email protected]> | 2014-04-20 18:11:56 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2014-04-25 01:33:12 +0200 |
commit | 3d0c4f3b01569f43318e648786ae79f7b6b4948e (patch) | |
tree | 7c4c62d1b35fba081c54e5f3b322dc5558e3c9e8 /src/gallium/drivers/r600/r600_state.c | |
parent | ecc8a37ec5be7fca79205f08666fb76474ab5c0d (diff) |
r600g: fix for an MSAA hang on RV770
Cc: 10.0 10.1 [email protected]
Reviewed-by: Alex Deucher <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_state.c')
-rw-r--r-- | src/gallium/drivers/r600/r600_state.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c index 99cfe6f8e66..ffcceacfb81 100644 --- a/src/gallium/drivers/r600/r600_state.c +++ b/src/gallium/drivers/r600/r600_state.c @@ -1615,6 +1615,11 @@ static void r600_emit_db_misc_state(struct r600_context *rctx, struct r600_atom db_render_control |= S_028D0C_DEPTH_CLEAR_ENABLE(1); } + /* RV770 workaround for a hang with 8x MSAA. */ + if (rctx->b.family == CHIP_RV770 && a->log_samples == 3) { + db_render_override |= S_028D10_MAX_TILES_IN_DTT(6); + } + r600_write_context_reg_seq(cs, R_028D0C_DB_RENDER_CONTROL, 2); radeon_emit(cs, db_render_control); /* R_028D0C_DB_RENDER_CONTROL */ radeon_emit(cs, db_render_override); /* R_028D10_DB_RENDER_OVERRIDE */ |