radv: fix pipeline stats mask

Left-shifting by 11*8 or 14*8 is undefined.  This fixes many
dEQP-VK.query_pool.statistics_query.* failures (but not pre-existing
flakes) for release builds using clang.

Fixes: 48aabaf225 ("radv: do not harcode the pipeline stats mask for query resolves")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27651>
(cherry picked from commit ec5d0ffb04)
This commit is contained in:
Chia-I Wu 2024-02-15 18:09:41 -08:00 committed by Eric Engestrom
parent 519c96f3c8
commit c126631fe7
2 changed files with 2 additions and 2 deletions

View file

@ -2994,7 +2994,7 @@
"description": "radv: fix pipeline stats mask",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "48aabaf225f3ebf0bada2fe820d2c0f6288a3ca5",
"notes": null

View file

@ -1155,7 +1155,7 @@ radv_query_shader(struct radv_cmd_buffer *cmd_buffer, VkPipeline *pipeline, stru
.range = VK_WHOLE_SIZE}}});
/* Encode the number of elements for easy access by the shader. */
pipeline_stats_mask &= (1 << radv_get_pipelinestat_query_size(device)) - 1;
pipeline_stats_mask &= (1 << (radv_get_pipelinestat_query_size(device) / 8)) - 1;
pipeline_stats_mask |= util_bitcount(pipeline_stats_mask) << 16;
avail_offset -= src_offset;