diff --git a/.pick_status.json b/.pick_status.json index 6dc1b2da74c..271f6cf308e 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -2414,7 +2414,7 @@ "description": "panfrost: don't overwrite push uniforms and sysvals UBO with user's UBO", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "3b3cd59fb85b5b200acce45f950869eb9d7b69a6", "notes": null diff --git a/src/gallium/drivers/panfrost/pan_cmdstream.c b/src/gallium/drivers/panfrost/pan_cmdstream.c index 83746f20170..9077304f039 100644 --- a/src/gallium/drivers/panfrost/pan_cmdstream.c +++ b/src/gallium/drivers/panfrost/pan_cmdstream.c @@ -1459,8 +1459,8 @@ panfrost_emit_const_buf(struct panfrost_batch *batch, panfrost_emit_ubo(ubos.cpu, ubo_count, transfer.gpu, sys_size); /* The rest are honest-to-goodness UBOs */ - - u_foreach_bit(ubo, ss->info.ubo_mask & buf->enabled_mask) { + unsigned user_ubo_mask = ss->info.ubo_mask & BITFIELD_MASK(ubo_count); + u_foreach_bit(ubo, user_ubo_mask & buf->enabled_mask) { size_t usz = buf->cb[ubo].buffer_size; uint64_t address = 0;