mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 06:58:05 +02:00
freedreno/a6xx: fix LRZ hang
In detecting the case where we actually do need to re-emit LRZ state
(due to new batch), we were checking `ctx->last.dirty` to detect when
we cannot trust previous state. But this is cleared before we check
it.
Move where it is cleared to the end of the draw_vbo() path.
Fixes: dfa702e94b ("freedreno/a6xx: limit LRZ state emit")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4842>
This commit is contained in:
parent
0e51082cfa
commit
f8424d3b99
2 changed files with 1 additions and 2 deletions
|
|
@ -137,8 +137,6 @@ fixup_draw_state(struct fd_context *ctx, struct fd6_emit *emit)
|
|||
ctx->dirty |= FD_DIRTY_RASTERIZER;
|
||||
ctx->last.primitive_restart = emit->primitive_restart;
|
||||
}
|
||||
|
||||
ctx->last.dirty = false;
|
||||
}
|
||||
|
||||
static bool
|
||||
|
|
|
|||
|
|
@ -450,6 +450,7 @@ fd_context_all_dirty(struct fd_context *ctx)
|
|||
static inline void
|
||||
fd_context_all_clean(struct fd_context *ctx)
|
||||
{
|
||||
ctx->last.dirty = false;
|
||||
ctx->dirty = 0;
|
||||
for (unsigned i = 0; i < PIPE_SHADER_TYPES; i++) {
|
||||
/* don't mark compute state as clean, since it is not emitted
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue