From 841d140c694bc86ec3f7ca3ea1e7cc8dce0a7026 Mon Sep 17 00:00:00 2001 From: Kbz-8 Date: Wed, 4 Dec 2024 15:38:47 +0100 Subject: [PATCH] working on subpass dependencies --- Makefile | 2 +- runtime/Sources/Renderer/Descriptor.cpp | 3 -- .../Sources/Renderer/Pipelines/Graphics.cpp | 28 ++++++------------- 3 files changed, 10 insertions(+), 23 deletions(-) diff --git a/Makefile b/Makefile index b08d23b..0f12752 100644 --- a/Makefile +++ b/Makefile @@ -36,7 +36,7 @@ CXXPCHFLAGS = -xc++-header PCH = runtime/Includes/PreCompiled.h GCH = -NZSLC = nzslc +NZRRC = nzslc ifeq ($(TOOLCHAIN), gcc) CXX = g++ diff --git a/runtime/Sources/Renderer/Descriptor.cpp b/runtime/Sources/Renderer/Descriptor.cpp index 0954bd0..6436770 100644 --- a/runtime/Sources/Renderer/Descriptor.cpp +++ b/runtime/Sources/Renderer/Descriptor.cpp @@ -119,10 +119,7 @@ namespace mlx return set == rhs_set; }); if(it == m_used_sets.end()) - { - Error("Vulkan: cannot return descriptor set to pool, invalid pool"); return; - } m_used_sets.erase(it); m_free_sets.push_back(set); } diff --git a/runtime/Sources/Renderer/Pipelines/Graphics.cpp b/runtime/Sources/Renderer/Pipelines/Graphics.cpp index 9036e09..d7fba28 100644 --- a/runtime/Sources/Renderer/Pipelines/Graphics.cpp +++ b/runtime/Sources/Renderer/Pipelines/Graphics.cpp @@ -178,27 +178,17 @@ namespace mlx { attachments.push_back(kvfBuildAttachmentDescription(KVF_IMAGE_COLOR, image->GetFormat(), image->GetLayout(), image->GetLayout(), clear_attachments, VK_SAMPLE_COUNT_1_BIT)); attachment_views.push_back(image->GetImageView()); -#if 0 - VkSubpassDependency& first_dependency = dependencies.emplace_back(); - first_dependency.srcSubpass = VK_SUBPASS_EXTERNAL; - first_dependency.dstSubpass = 0; - first_dependency.srcStageMask = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; - first_dependency.dstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - first_dependency.srcAccessMask = VK_ACCESS_SHADER_READ_BIT; - first_dependency.dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; - first_dependency.dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT; - - VkSubpassDependency& second_dependency = dependencies.emplace_back(); - second_dependency.srcSubpass = 0; - second_dependency.dstSubpass = VK_SUBPASS_EXTERNAL; - second_dependency.srcStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - second_dependency.dstStageMask = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; - second_dependency.srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; - second_dependency.dstAccessMask = VK_ACCESS_SHADER_READ_BIT; - second_dependency.dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT; -#endif } + VkSubpassDependency& dependency = dependencies.emplace_back(); + dependency.srcSubpass = VK_SUBPASS_EXTERNAL; + dependency.dstSubpass = 0; + dependency.srcStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + dependency.dstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + dependency.srcAccessMask = 0; + dependency.dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + dependency.dependencyFlags = 0; + m_renderpass = kvfCreateRenderPassWithSubpassDependencies(RenderCore::Get().GetDevice(), attachments.data(), attachments.size(), GetPipelineBindPoint(), dependencies.data(), dependencies.size()); m_clears.clear(); m_clears.resize(attachments.size());