From f71a80671ca49b182af6134ccf8c9576f97e447b Mon Sep 17 00:00:00 2001 From: CamilleLaVey Date: Wed, 23 Sep 2026 02:37:57 -0400 Subject: [PATCH] Remove final references to sync1 --- .../renderer_vulkan/present/post_process.cpp | 20 ++++++-- .../renderer_vulkan/present/util.cpp | 47 ++++++++++++++----- .../vulkan_common/vulkan_wrapper.cpp | 7 --- src/video_core/vulkan_common/vulkan_wrapper.h | 3 -- 4 files changed, 50 insertions(+), 27 deletions(-) diff --git a/src/video_core/renderer_vulkan/present/post_process.cpp b/src/video_core/renderer_vulkan/present/post_process.cpp index 07d75b7025..f5164e488e 100644 --- a/src/video_core/renderer_vulkan/present/post_process.cpp +++ b/src/video_core/renderer_vulkan/present/post_process.cpp @@ -134,7 +134,9 @@ vk::RenderPass CreateFxRenderPass(const Device& device, VkFormat format, bool cl initial_layout = VK_IMAGE_LAYOUT_UNDEFINED; } - const VkAttachmentDescription attachment{ + const VkAttachmentDescription2 attachment{ + .sType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2, + .pNext = nullptr, .flags = 0, .format = format, .samples = VK_SAMPLE_COUNT_1_BIT, @@ -146,14 +148,20 @@ vk::RenderPass CreateFxRenderPass(const Device& device, VkFormat format, bool cl .finalLayout = VK_IMAGE_LAYOUT_GENERAL, }; - const VkAttachmentReference reference{ + static constexpr VkAttachmentReference2 reference{ + .sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2, + .pNext = nullptr, .attachment = 0, .layout = VK_IMAGE_LAYOUT_GENERAL, + .aspectMask = 0, }; - const VkSubpassDescription subpass{ + const VkSubpassDescription2 subpass{ + .sType = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2, + .pNext = nullptr, .flags = 0, .pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS, + .viewMask = 0, .inputAttachmentCount = 0, .pInputAttachments = nullptr, .colorAttachmentCount = 1, @@ -164,8 +172,8 @@ vk::RenderPass CreateFxRenderPass(const Device& device, VkFormat format, bool cl .pPreserveAttachments = nullptr, }; - return device.GetLogical().CreateRenderPass(VkRenderPassCreateInfo{ - .sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO, + return device.GetLogical().CreateRenderPass2(VkRenderPassCreateInfo2{ + .sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2, .pNext = nullptr, .flags = 0, .attachmentCount = 1, @@ -174,6 +182,8 @@ vk::RenderPass CreateFxRenderPass(const Device& device, VkFormat format, bool cl .pSubpasses = &subpass, .dependencyCount = 0, .pDependencies = nullptr, + .correlatedViewMaskCount = 0, + .pCorrelatedViewMasks = nullptr, }); } diff --git a/src/video_core/renderer_vulkan/present/util.cpp b/src/video_core/renderer_vulkan/present/util.cpp index 131973bdd6..80d5e19578 100644 --- a/src/video_core/renderer_vulkan/present/util.cpp +++ b/src/video_core/renderer_vulkan/present/util.cpp @@ -203,7 +203,9 @@ vk::ImageView CreateWrappedImageView(const Device& device, vk::Image& image, VkF vk::RenderPass CreateWrappedRenderPass(const Device& device, VkFormat format, VkImageLayout initial_layout) { - const VkAttachmentDescription attachment{ + const VkAttachmentDescription2 attachment{ + .sType = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2, + .pNext = nullptr, .flags = VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT, .format = format, .samples = VK_SAMPLE_COUNT_1_BIT, @@ -216,14 +218,20 @@ vk::RenderPass CreateWrappedRenderPass(const Device& device, VkFormat format, .finalLayout = VK_IMAGE_LAYOUT_GENERAL, }; - constexpr VkAttachmentReference color_attachment_ref{ + static constexpr VkAttachmentReference2 color_attachment_ref{ + .sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2, + .pNext = nullptr, .attachment = 0, .layout = VK_IMAGE_LAYOUT_GENERAL, + .aspectMask = 0, }; - const VkSubpassDescription subpass_description{ + const VkSubpassDescription2 subpass_description{ + .sType = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2, + .pNext = nullptr, .flags = 0, .pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS, + .viewMask = 0, .inputAttachmentCount = 0, .pInputAttachments = nullptr, .colorAttachmentCount = 1, @@ -234,18 +242,31 @@ vk::RenderPass CreateWrappedRenderPass(const Device& device, VkFormat format, .pPreserveAttachments = nullptr, }; - constexpr VkSubpassDependency dependency{ - .srcSubpass = VK_SUBPASS_EXTERNAL, - .dstSubpass = 0, - .srcStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, - .dstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, + static constexpr VkMemoryBarrier2 dependency_barrier{ + .sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2, + .pNext = nullptr, + .srcStageMask = VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT, .srcAccessMask = 0, - .dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, - .dependencyFlags = 0, + .dstStageMask = VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT, + .dstAccessMask = + VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, }; - return device.GetLogical().CreateRenderPass(VkRenderPassCreateInfo{ - .sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO, + static constexpr VkSubpassDependency2 dependency{ + .sType = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2, + .pNext = &dependency_barrier, + .srcSubpass = VK_SUBPASS_EXTERNAL, + .dstSubpass = 0, + .srcStageMask = 0, + .dstStageMask = 0, + .srcAccessMask = 0, + .dstAccessMask = 0, + .dependencyFlags = 0, + .viewOffset = 0, + }; + + return device.GetLogical().CreateRenderPass2(VkRenderPassCreateInfo2{ + .sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2, .pNext = nullptr, .flags = 0, .attachmentCount = 1, @@ -254,6 +275,8 @@ vk::RenderPass CreateWrappedRenderPass(const Device& device, VkFormat format, .pSubpasses = &subpass_description, .dependencyCount = 1, .pDependencies = &dependency, + .correlatedViewMaskCount = 0, + .pCorrelatedViewMasks = nullptr, }); } diff --git a/src/video_core/vulkan_common/vulkan_wrapper.cpp b/src/video_core/vulkan_common/vulkan_wrapper.cpp index 01a19e8cef..a2ca3b7fa6 100644 --- a/src/video_core/vulkan_common/vulkan_wrapper.cpp +++ b/src/video_core/vulkan_common/vulkan_wrapper.cpp @@ -183,7 +183,6 @@ void Load(VkDevice device, DeviceDispatch& dld) noexcept { X(vkCreatePipelineCache); X(vkCreatePipelineLayout); X(vkCreateQueryPool); - X(vkCreateRenderPass); X(vkCreateRenderPass2); X(vkCreateSampler); X(vkCreateSemaphore); @@ -737,12 +736,6 @@ DescriptorPool Device::CreateDescriptorPool(const VkDescriptorPoolCreateInfo& ci return DescriptorPool(object, handle, *dld); } -RenderPass Device::CreateRenderPass(const VkRenderPassCreateInfo& ci) const { - VkRenderPass object; - Check(dld->vkCreateRenderPass(handle, &ci, nullptr, &object)); - return RenderPass(object, handle, *dld); -} - RenderPass Device::CreateRenderPass2(const VkRenderPassCreateInfo2& ci) const { VkRenderPass object; Check(dld->vkCreateRenderPass2(handle, &ci, nullptr, &object)); diff --git a/src/video_core/vulkan_common/vulkan_wrapper.h b/src/video_core/vulkan_common/vulkan_wrapper.h index bfa56f084a..9c60f03fd2 100644 --- a/src/video_core/vulkan_common/vulkan_wrapper.h +++ b/src/video_core/vulkan_common/vulkan_wrapper.h @@ -299,7 +299,6 @@ struct DeviceDispatch : InstanceDispatch { PFN_vkCreatePipelineCache vkCreatePipelineCache{}; PFN_vkCreatePipelineLayout vkCreatePipelineLayout{}; PFN_vkCreateQueryPool vkCreateQueryPool{}; - PFN_vkCreateRenderPass vkCreateRenderPass{}; PFN_vkCreateRenderPass2 vkCreateRenderPass2{}; PFN_vkCreateSampler vkCreateSampler{}; PFN_vkCreateSemaphore vkCreateSemaphore{}; @@ -1057,8 +1056,6 @@ public: [[nodiscard]] DescriptorPool CreateDescriptorPool(const VkDescriptorPoolCreateInfo& ci) const; - [[nodiscard]] RenderPass CreateRenderPass(const VkRenderPassCreateInfo& ci) const; - [[nodiscard]] RenderPass CreateRenderPass2(const VkRenderPassCreateInfo2& ci) const; [[nodiscard]] DescriptorSetLayout CreateDescriptorSetLayout(