pvr: emit PPP state when vis_test dirty bit is set
authorFrank Binns <frank.binns@imgtec.com>
Sat, 30 Sep 2023 13:34:58 +0000 (14:34 +0100)
committerMarge Bot <emma+marge@anholt.net>
Tue, 10 Oct 2023 18:27:01 +0000 (18:27 +0000)
Unlike other dirty bits, the vis_test dirty bit wasn't being taken into
consideration when determining whether PPP state needed to be emitted as part
of a draw call.

Fixes a large number of tests in dEQP-VK.query_pool.occlusion_query.*.

Fixes: 2b1992a0005 ("pvr: Implement vkCmdBeginQuery API.")
Signed-off-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25491>

src/imagination/vulkan/pvr_cmd_buffer.c

index dfe6489958fc02a5b91f1d7c969f969adb792605..42af3c17a3b646c98234929c1cda2c1cf07ca526 100644 (file)
@@ -5925,7 +5925,7 @@ pvr_ppp_state_update_required(const struct pvr_cmd_buffer *cmd_buffer)
           header->pres_wclamp || header->pres_outselects ||
           header->pres_varying_word0 || header->pres_varying_word1 ||
           header->pres_varying_word2 || header->pres_stream_out_program ||
-          state->dirty.fragment_descriptors ||
+          state->dirty.fragment_descriptors || state->dirty.vis_test ||
           state->dirty.gfx_pipeline_binding || state->dirty.isp_userpass ||
           state->push_constants.dirty_stages & VK_SHADER_STAGE_FRAGMENT_BIT ||
           BITSET_TEST(dynamic_dirty, MESA_VK_DYNAMIC_DS_STENCIL_COMPARE_MASK) ||