From feffe7fd2a4a710bec6f7818e8355cb9b7efe0ef Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Fri, 29 Mar 2024 10:28:22 +0100 Subject: [PATCH] panvk: We don't support resolve operations yet Make sure we crash when resolveMode != VK_RESOLVE_MODE_NONE in the vkCmdBeginRendering() path instead of silently ignoring resolve arguments. Signed-off-by: Boris Brezillon Reviewed-by: Mary Guillemard Part-of: --- src/panfrost/ci/panfrost-g52-fails.txt | 11 ++++++----- src/panfrost/vulkan/panvk_vX_cmd_buffer.c | 6 ++++++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/panfrost/ci/panfrost-g52-fails.txt b/src/panfrost/ci/panfrost-g52-fails.txt index 7e7aef5d747..a120792197d 100644 --- a/src/panfrost/ci/panfrost-g52-fails.txt +++ b/src/panfrost/ci/panfrost-g52-fails.txt @@ -386,11 +386,12 @@ spec@!opengl es 3.0@gles-3.0-transform-feedback-uniform-buffer-object,Fail dEQP-GLES31.functional.texture.border_clamp.range_clamp.linear_float_color,Fail -# The following tests started to fail after CI fix, see -# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16325 -dEQP-VK.rasterization.interpolation_multisample_4_bit.lines_wide,Fail -dEQP-VK.rasterization.interpolation_multisample_4_bit.non_strict_lines_wide,Fail -dEQP-VK.rasterization.interpolation_multisample_4_bit.triangles,Fail +# Resolve operations not supported +dEQP-VK.rasterization.interpolation_multisample_4_bit.lines,Crash +dEQP-VK.rasterization.interpolation_multisample_4_bit.lines_wide,Crash +dEQP-VK.rasterization.interpolation_multisample_4_bit.non_strict_lines,Crash +dEQP-VK.rasterization.interpolation_multisample_4_bit.non_strict_lines_wide,Crash +dEQP-VK.rasterization.interpolation_multisample_4_bit.triangles,Crash dEQP-VK.api.copy_and_blit.core.image_to_image.all_formats.color.1d_to_1d.r16g16_snorm.r16g16_snorm.general_optimal,Fail dEQP-VK.api.copy_and_blit.core.image_to_image.all_formats.color.1d_to_1d.r16g16b16a16_uint.r16g16b16a16_uint.optimal_general,Fail diff --git a/src/panfrost/vulkan/panvk_vX_cmd_buffer.c b/src/panfrost/vulkan/panvk_vX_cmd_buffer.c index f9a1651dcf6..0d150bf4e88 100644 --- a/src/panfrost/vulkan/panvk_vX_cmd_buffer.c +++ b/src/panfrost/vulkan/panvk_vX_cmd_buffer.c @@ -1782,6 +1782,8 @@ panvk_cmd_begin_rendering_init_fbinfo(struct panvk_cmd_buffer *cmdbuf, att_width = MAX2(iview_size.width, att_width); att_height = MAX2(iview_size.height, att_height); + assert(att->resolveMode == VK_RESOLVE_MODE_NONE); + cmdbuf->state.fb.bos[cmdbuf->state.fb.bo_count++] = img->bo; fbinfo->rts[i].view = &iview->pview; fbinfo->rts[i].crc_valid = &cmdbuf->state.fb.crc_valid[i]; @@ -1814,6 +1816,8 @@ panvk_cmd_begin_rendering_init_fbinfo(struct panvk_cmd_buffer *cmdbuf, att_width = MAX2(iview_size.width, att_width); att_height = MAX2(iview_size.height, att_height); + assert(att->resolveMode == VK_RESOLVE_MODE_NONE); + cmdbuf->state.fb.bos[cmdbuf->state.fb.bo_count++] = img->bo; fbinfo->zs.view.zs = &iview->pview; @@ -1838,6 +1842,8 @@ panvk_cmd_begin_rendering_init_fbinfo(struct panvk_cmd_buffer *cmdbuf, att_width = MAX2(iview_size.width, att_width); att_height = MAX2(iview_size.height, att_height); + assert(att->resolveMode == VK_RESOLVE_MODE_NONE); + cmdbuf->state.fb.bos[cmdbuf->state.fb.bo_count++] = img->bo; fbinfo->zs.view.s = iview && &iview->pview != fbinfo->zs.view.zs ? &iview->pview : NULL;