From e7ce48557a4dc6a43a7db721aaad0f23ef0810af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tapani=20P=C3=A4lli?= Date: Mon, 26 Feb 2024 15:10:21 +0200 Subject: [PATCH] vulkan/runtime: add a subpass bit for legacy dithering MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v2: use bit only when dithering enabled on device Signed-off-by: Tapani Pälli Reviewed-by: Lionel Landwerlin Part-of: --- src/vulkan/runtime/vk_render_pass.c | 7 +++++++ src/vulkan/runtime/vk_render_pass.h | 3 +++ 2 files changed, 10 insertions(+) diff --git a/src/vulkan/runtime/vk_render_pass.c b/src/vulkan/runtime/vk_render_pass.c index 9eb6998738396..349dea74037af 100644 --- a/src/vulkan/runtime/vk_render_pass.c +++ b/src/vulkan/runtime/vk_render_pass.c @@ -482,6 +482,11 @@ vk_common_CreateRenderPass2(VkDevice _device, subpass->attachment_count = num_subpass_attachments2(desc); subpass->attachments = next_subpass_attachment; + if (device->enabled_features.legacyDithering) { + subpass->legacy_dithering_enabled = + desc->flags & VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT; + } + /* From the Vulkan 1.3.204 spec: * * VUID-VkRenderPassCreateInfo2-viewMask-03058 @@ -2114,6 +2119,8 @@ begin_subpass(struct vk_command_buffer *cmd_buffer, .pColorAttachments = color_attachments, .pDepthAttachment = &depth_attachment, .pStencilAttachment = &stencil_attachment, + .flags = subpass->legacy_dithering_enabled ? + VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT : 0, }; VkRenderingFragmentShadingRateAttachmentInfoKHR fsr_attachment; diff --git a/src/vulkan/runtime/vk_render_pass.h b/src/vulkan/runtime/vk_render_pass.h index 9acd65aa3ada7..e5ed12692d875 100644 --- a/src/vulkan/runtime/vk_render_pass.h +++ b/src/vulkan/runtime/vk_render_pass.h @@ -182,6 +182,9 @@ struct vk_subpass { /** VkMultisampledRenderToSingleSampledInfoEXT for this subpass */ VkMultisampledRenderToSingleSampledInfoEXT mrtss; + + /** True if legacy dithering is enabled for this subpass. */ + bool legacy_dithering_enabled; }; /***/