r600g: r6xx deadlock workaround (v6)
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=50655 https://bugs.freedesktop.org/show_bug.cgi?id=47116 v2: flush along with workaround. v3: just need a flush v4: try WAIT_UNTIL v5: switch to PS partial flush v6: rework patch Note: this is a candidate for the 9.1 branch. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
7ebf83f109
commit
8442b67f5f
|
@ -1360,6 +1360,12 @@ static void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info
|
|||
rctx->vgt_state.atom.dirty = true;
|
||||
}
|
||||
|
||||
/* Workaround for hardware deadlock on certain R600 ASICs: write into a CB register. */
|
||||
if (rctx->chip_class == R600) {
|
||||
rctx->flags |= R600_CONTEXT_PS_PARTIAL_FLUSH;
|
||||
rctx->cb_misc_state.atom.dirty = true;
|
||||
}
|
||||
|
||||
/* Emit states. */
|
||||
r600_need_cs_space(rctx, ib.user_buffer ? 5 : 0, TRUE);
|
||||
r600_flush_emit(rctx);
|
||||
|
|
Loading…
Reference in New Issue