diff --git a/.pick_status.json b/.pick_status.json index 0416d373e46..a557b1cd9d0 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -4108,7 +4108,7 @@ "description": "freedreno: Fix tracking of enabled SSBOs", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "0ed053f03d936d301091dd68e96ced8dbedc83b2" }, diff --git a/src/gallium/drivers/freedreno/freedreno_state.c b/src/gallium/drivers/freedreno/freedreno_state.c index a23870b797e..f5bcd886c44 100644 --- a/src/gallium/drivers/freedreno/freedreno_state.c +++ b/src/gallium/drivers/freedreno/freedreno_state.c @@ -164,7 +164,6 @@ fd_set_shader_buffers(struct pipe_context *pctx, enum pipe_shader_type shader, struct fd_shaderbuf_stateobj *so = &ctx->shaderbuf[shader]; const unsigned modified_bits = u_bit_consecutive(start, count); - so->enabled_mask &= ~modified_bits; so->writable_mask &= ~modified_bits; so->writable_mask |= writable_bitmask << start; @@ -194,6 +193,8 @@ fd_set_shader_buffers(struct pipe_context *pctx, enum pipe_shader_type shader, } } else { pipe_resource_reference(&buf->buffer, NULL); + + so->enabled_mask &= ~BIT(n); } }