diff options
author | Rob Clark <[email protected]> | 2018-06-11 14:05:19 -0400 |
---|---|---|
committer | Rob Clark <[email protected]> | 2018-06-19 13:02:28 -0400 |
commit | ced14f1c7a821dbb3fdb3c76b50a256c6568c714 (patch) | |
tree | 539d78fbdee9d77501d00a7b42a2e4709648d9c2 /src/gallium/drivers/freedreno/a5xx | |
parent | 570844059789cf497123a85ed19eac9274f11139 (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.c | 8 |
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); } } - |