From 9b089ca943cffc6fc0cc2a779da66add25bc135f Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Fri, 15 Mar 2024 09:02:47 +0100 Subject: [PATCH] radv: fix occlusion queries with MSAA and no attachments The number of samples should be the rasterization samples and not the framebuffer samples. Fixes recent dEQP-VK.query_pool.occlusion_query.no_attachments_*. Cc: mesa-stable Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_cmd_buffer.c | 6 ++++-- src/gallium/drivers/zink/ci/zink-radv-navi10-fails.txt | 2 -- src/gallium/drivers/zink/ci/zink-radv-navi31-fails.txt | 2 -- src/gallium/drivers/zink/ci/zink-radv-vangogh-fails.txt | 2 -- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 7a154894bbf..71f1bfffa0c 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -3763,7 +3763,8 @@ radv_flush_occlusion_query_state(struct radv_cmd_buffer *cmd_buffer) if (!enable_occlusion_queries) { db_count_control = S_028004_ZPASS_INCREMENT_DISABLE(gfx_level < GFX11); } else { - uint32_t sample_rate = util_logbase2(cmd_buffer->state.render.max_samples); + const uint32_t rasterization_samples = radv_get_rasterization_samples(cmd_buffer); + const uint32_t sample_rate = util_logbase2(rasterization_samples); bool gfx10_perfect = gfx_level >= GFX10 && (cmd_buffer->state.perfect_occlusion_queries_enabled || cmd_buffer->state.inherited_query_control_flags & VK_QUERY_CONTROL_PRECISE_BIT); @@ -9279,7 +9280,8 @@ radv_emit_all_graphics_states(struct radv_cmd_buffer *cmd_buffer, const struct r if (cmd_buffer->state.dirty & RADV_CMD_DIRTY_SHADER_QUERY) radv_flush_shader_query_state(cmd_buffer); - if (cmd_buffer->state.dirty & RADV_CMD_DIRTY_OCCLUSION_QUERY) + if (cmd_buffer->state.dirty & (RADV_CMD_DIRTY_OCCLUSION_QUERY | RADV_CMD_DIRTY_DYNAMIC_RASTERIZATION_SAMPLES | + RADV_CMD_DIRTY_DYNAMIC_PRIMITIVE_TOPOLOGY)) radv_flush_occlusion_query_state(cmd_buffer); if ((cmd_buffer->state.dirty & diff --git a/src/gallium/drivers/zink/ci/zink-radv-navi10-fails.txt b/src/gallium/drivers/zink/ci/zink-radv-navi10-fails.txt index b98b99b192c..d0880caacdc 100644 --- a/src/gallium/drivers/zink/ci/zink-radv-navi10-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-radv-navi10-fails.txt @@ -15,8 +15,6 @@ spec@arb_framebuffer_object@fbo-blit-scaled-linear,Fail spec@arb_bindless_texture@compiler@samplers@arith-bound-sampler-texture2d.frag,Crash -spec@arb_framebuffer_no_attachments@arb_framebuffer_no_attachments-query,Fail -spec@arb_framebuffer_no_attachments@arb_framebuffer_no_attachments-query@MS8,Fail spec@arb_gpu_shader_fp64@execution@arb_gpu_shader_fp64-tf-separate,Fail spec@arb_gpu_shader_fp64@execution@conversion@frag-conversion-explicit-dmat2-mat2,Fail spec@arb_gpu_shader_fp64@execution@conversion@frag-conversion-explicit-dmat2x3-mat2x3,Fail diff --git a/src/gallium/drivers/zink/ci/zink-radv-navi31-fails.txt b/src/gallium/drivers/zink/ci/zink-radv-navi31-fails.txt index 634d69c104b..17f0589a620 100644 --- a/src/gallium/drivers/zink/ci/zink-radv-navi31-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-radv-navi31-fails.txt @@ -15,8 +15,6 @@ spec@arb_framebuffer_object@fbo-blit-scaled-linear,Fail spec@arb_bindless_texture@compiler@samplers@arith-bound-sampler-texture2d.frag,Crash -spec@arb_framebuffer_no_attachments@arb_framebuffer_no_attachments-query,Fail -spec@arb_framebuffer_no_attachments@arb_framebuffer_no_attachments-query@MS8,Fail spec@arb_gpu_shader_fp64@execution@arb_gpu_shader_fp64-tf-separate,Fail spec@arb_gpu_shader_fp64@execution@conversion@frag-conversion-explicit-dmat2-mat2,Fail spec@arb_gpu_shader_fp64@execution@conversion@frag-conversion-explicit-dmat2x3-mat2x3,Fail diff --git a/src/gallium/drivers/zink/ci/zink-radv-vangogh-fails.txt b/src/gallium/drivers/zink/ci/zink-radv-vangogh-fails.txt index c8480c23272..557ca1f87b5 100644 --- a/src/gallium/drivers/zink/ci/zink-radv-vangogh-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-radv-vangogh-fails.txt @@ -15,8 +15,6 @@ spec@arb_framebuffer_object@fbo-blit-scaled-linear,Fail spec@arb_bindless_texture@compiler@samplers@arith-bound-sampler-texture2d.frag,Crash -spec@arb_framebuffer_no_attachments@arb_framebuffer_no_attachments-query,Fail -spec@arb_framebuffer_no_attachments@arb_framebuffer_no_attachments-query@MS8,Fail spec@arb_gpu_shader_fp64@execution@arb_gpu_shader_fp64-tf-separate,Fail spec@arb_gpu_shader_fp64@execution@conversion@frag-conversion-explicit-dmat2-mat2,Fail spec@arb_gpu_shader_fp64@execution@conversion@frag-conversion-explicit-dmat2x3-mat2x3,Fail