Mesa (master): freedreno/a6xx: fixup draw state earlier
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Jul 29 20:36:21 UTC 2020
Module: Mesa
Branch: master
Commit: b5558f2d2aa738d90b9e039144ae3ca69bdf92ca
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b5558f2d2aa738d90b9e039144ae3ca69bdf92ca
Author: Rob Clark <robdclark at chromium.org>
Date: Wed Jul 29 10:14:34 2020 -0700
freedreno/a6xx: fixup draw state earlier
`fixup_draw_state()` was updating `ctx->dirty` after it had already been
copied into the emit struct, which had the result that we were not re-
emitting the rast state when primitive_restart changes.
Fixes: 4d8f42c8512 ("freedreno/a6xx: separate rast stateobj for prim restart")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3067
Signed-off-by: Rob Clark <robdclark at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6117>
---
src/gallium/drivers/freedreno/a6xx/fd6_draw.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_draw.c b/src/gallium/drivers/freedreno/a6xx/fd6_draw.c
index 810bdf0ca79..e95c400dd38 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_draw.c
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_draw.c
@@ -210,6 +210,8 @@ fd6_draw_vbo(struct fd_context *ctx, const struct pipe_draw_info *info,
if (!fd6_ctx->prog)
return NULL;
+ fixup_draw_state(ctx, &emit);
+
emit.dirty = ctx->dirty; /* *after* fixup_shader_state() */
emit.bs = fd6_emit_get_prog(&emit)->bs;
emit.vs = fd6_emit_get_prog(&emit)->vs;
@@ -303,8 +305,6 @@ fd6_draw_vbo(struct fd_context *ctx, const struct pipe_draw_info *info,
ctx->last.restart_index = restart_index;
}
- fixup_draw_state(ctx, &emit);
-
fd6_emit_state(ring, &emit);
/* for debug after a lock up, write a unique counter value
More information about the mesa-commit
mailing list