summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno/a5xx
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2018-06-11 14:05:19 -0400
committerRob Clark <[email protected]>2018-06-19 13:02:28 -0400
commitced14f1c7a821dbb3fdb3c76b50a256c6568c714 (patch)
tree539d78fbdee9d77501d00a7b42a2e4709648d9c2 /src/gallium/drivers/freedreno/a5xx
parent570844059789cf497123a85ed19eac9274f11139 (diff)
freedreno: remove per-stateobj dirty_mask's
These never got updated in fd_context_all_dirty() so actually trying to rely on them (in the case of fd5_emit_images()) ends up in some cases where state is not emitted but should be. Best to just rip this out. Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/a5xx')
-rw-r--r--src/gallium/drivers/freedreno/a5xx/fd5_image.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_image.c b/src/gallium/drivers/freedreno/a5xx/fd5_image.c
index f5d25ff8a69..028497f3a10 100644
--- a/src/gallium/drivers/freedreno/a5xx/fd5_image.c
+++ b/src/gallium/drivers/freedreno/a5xx/fd5_image.c
@@ -219,11 +219,10 @@ fd5_emit_images(struct fd_context *ctx, struct fd_ringbuffer *ring,
enum pipe_shader_type shader)
{
struct fd_shaderimg_stateobj *so = &ctx->shaderimg[shader];
+ unsigned enabled_mask = so->enabled_mask;
- so->dirty_mask &= so->enabled_mask;
-
- while (so->dirty_mask) {
- unsigned index = u_bit_scan(&so->dirty_mask);
+ while (enabled_mask) {
+ unsigned index = u_bit_scan(&enabled_mask);
unsigned slot = get_image_slot(index);
struct fd5_image img;
@@ -233,4 +232,3 @@ fd5_emit_images(struct fd_context *ctx, struct fd_ringbuffer *ring,
emit_image_ssbo(ring, slot, &img, shader);
}
}
-