panvk: reset dyn_bufs map count to 0 in create_copy_table

We were forgetting to reset the map count to 0 in case of dyn_bufs in
create_copy_table.

This was causing invalid copy entries to be added to the table causing
invalid copies in most situation with holes in the set definition while
still binding set 0 or at worst an assert to be triggered in
cmd_fill_dyn_bufs.

This fixes "dEQP-GLES3.functional.ubo.*" and
dEQP-GLES31.functional.ubo.*" on PanVK+ANGLE.

Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com>
Fixes: e350c334b6 ("panvk: Extend the descriptor lowering pass to support Valhall")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34652>
(cherry picked from commit 8d2e16cc110b081c4fd8910aac93715cdf6d005c)
This commit is contained in:
Mary Guillemard
2025-04-22 12:47:50 +00:00
committed by Eric Engestrom
parent d3285fe971
commit a05f320447
2 changed files with 3 additions and 2 deletions

View File

@@ -394,7 +394,7 @@
"description": "panvk: reset dyn_bufs map count to 0 in create_copy_table",
"nominated": true,
"nomination_type": 2,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "e350c334b6b2c7b420f326501533984c43d7c900",
"notes": null

View File

@@ -1251,7 +1251,7 @@ create_copy_table(nir_shader *nir, struct lower_desc_ctx *ctx)
}
desc_info->dummy_sampler_handle = pan_res_handle(0, dummy_sampler_idx);
copy_count = desc_info->dyn_bufs.count + desc_info->dyn_bufs.count;
copy_count = desc_info->dyn_bufs.count;
#endif
if (copy_count == 0)
@@ -1278,6 +1278,7 @@ create_copy_table(nir_shader *nir, struct lower_desc_ctx *ctx)
desc_info->dyn_bufs_start = dummy_sampler_idx + 1;
desc_info->dyn_bufs.map = rzalloc_array(ctx->ht, uint32_t, copy_count);
desc_info->dyn_bufs.count = 0;
assert(desc_info->dyn_bufs.map);
#endif