pvr: only specially handle gfx subcmd for BeginQuery

Among all subcommands, only gfx subcommands are bound to a query pool,
other subcommands seem to need no special handling.

In addition, if a ResetQuery is done before BeginQuery, the last
subcommand will be a event one, which fails the current assert that
assumes it's a gfx one.

Change the assertion of the subcommand being a gfx one to an addition
check of whether the subcommand is a gfx one.

This fixes crash of Vulkan CTS 1.4.5.1 test
dEQP-VK.query_pool.discard.normal.no_depth.none.discard .

Backport-to: 26.0
Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn>
Reviewed-by: Simon Perretta <simon.perretta@imgtec.com>
(cherry picked from commit 5a497316d4)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40359>
This commit is contained in:
Icenowy Zheng 2026-02-08 00:35:07 +08:00 committed by Eric Engestrom
parent 3611d60cea
commit 049caf1696
2 changed files with 3 additions and 4 deletions

View file

@ -4924,7 +4924,7 @@
"description": "pvr: only specially handle gfx subcmd for BeginQuery",
"nominated": true,
"nomination_type": 4,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null

View file

@ -170,9 +170,8 @@ void PVR_PER_ARCH(CmdBeginQuery)(VkCommandBuffer commandBuffer,
/* Occlusion queries can't be nested. */
assert(!state->vis_test_enabled);
if (state->current_sub_cmd) {
assert(state->current_sub_cmd->type == PVR_SUB_CMD_TYPE_GRAPHICS);
if (state->current_sub_cmd &&
state->current_sub_cmd->type == PVR_SUB_CMD_TYPE_GRAPHICS) {
if (!state->current_sub_cmd->gfx.query_pool) {
state->current_sub_cmd->gfx.query_pool = pool;
} else if (state->current_sub_cmd->gfx.query_pool != pool) {