From 05de28d01b679b06ff44a8f693ec6197a2cdcb97 Mon Sep 17 00:00:00 2001 From: Eric Engestrom Date: Sun, 19 Mar 2023 21:26:40 +0000 Subject: [PATCH] v3d: fix `dirty` bitset being too small to accept V3D_DIRTY_SSBO Many of the `V3D_DIRTY_*` flags are above 32 bits, but for now the only one used here is V3D_DIRTY_SSBO. `shader->uniform_dirty_bits`, where `dirty` ends up, is already 64 bits. Fixes: 45bb8f2957108056de10 ("broadcom: Add V3D 3.3 gallium driver called "vc5", for BCM7268.") Reviewed-by: Iago Toral Quiroga Part-of: (cherry picked from commit a7c051b5acd7f7b9b5f7dd03deed5f8657ea5248) --- .pick_status.json | 2 +- src/gallium/drivers/v3d/v3d_uniforms.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 32f1b188e85..cb56e24c2d7 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -7384,7 +7384,7 @@ "description": "v3d: fix `dirty` bitset being too small to accept V3D_DIRTY_SSBO", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "45bb8f2957108056de10721d50259e2f8c5a4ddc" }, diff --git a/src/gallium/drivers/v3d/v3d_uniforms.c b/src/gallium/drivers/v3d/v3d_uniforms.c index d316195dd53..1b1048626bc 100644 --- a/src/gallium/drivers/v3d/v3d_uniforms.c +++ b/src/gallium/drivers/v3d/v3d_uniforms.c @@ -450,7 +450,7 @@ v3d_write_uniforms(struct v3d_context *v3d, struct v3d_job *job, void v3d_set_shader_uniform_dirty_flags(struct v3d_compiled_shader *shader) { - uint32_t dirty = 0; + uint64_t dirty = 0; for (int i = 0; i < shader->prog_data.base->uniforms.count; i++) { switch (shader->prog_data.base->uniforms.contents[i]) {