From dfa7d46a0cf961d77be6d4a93eba1831935224f7 Mon Sep 17 00:00:00 2001 From: assiduous Date: Sun, 26 Jul 2020 12:56:01 -0700 Subject: Implemented SubpassDependencyDesc struct --- Graphics/GraphicsEngineVulkan/src/RenderPassVkImpl.cpp | 16 ++++++++++++++-- .../GraphicsEngineVulkan/src/VulkanTypeConversions.cpp | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'Graphics/GraphicsEngineVulkan') diff --git a/Graphics/GraphicsEngineVulkan/src/RenderPassVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/RenderPassVkImpl.cpp index 5ebab9c1..67731739 100644 --- a/Graphics/GraphicsEngineVulkan/src/RenderPassVkImpl.cpp +++ b/Graphics/GraphicsEngineVulkan/src/RenderPassVkImpl.cpp @@ -129,9 +129,21 @@ RenderPassVkImpl::RenderPassVkImpl(IReferenceCounters* pRefCounters, RenderPassCI.subpassCount = Desc.SubpassCount; RenderPassCI.pSubpasses = vkSubpasses.data(); - + std::vector vkDependencies(Desc.DependencyCount); + for (Uint32 i = 0; i < Desc.DependencyCount; ++i) + { + const auto& DependencyDesc = m_Desc.pDependencies[i]; + auto& vkDependency = vkDependencies[i]; + vkDependency.srcSubpass = DependencyDesc.SrcSubpass; + vkDependency.dstSubpass = DependencyDesc.DstSubpass; + vkDependency.srcStageMask = DependencyDesc.SrcStageMask; + vkDependency.dstStageMask = DependencyDesc.DstStageMask; + vkDependency.srcAccessMask = DependencyDesc.SrcAccessMask; + vkDependency.dstAccessMask = DependencyDesc.DstAccessMask; + vkDependency.dependencyFlags = 0; + } RenderPassCI.dependencyCount = Desc.DependencyCount; - RenderPassCI.pDependencies; + RenderPassCI.pDependencies = vkDependencies.data(); const auto& LogicalDevice = pDevice->GetLogicalDevice(); diff --git a/Graphics/GraphicsEngineVulkan/src/VulkanTypeConversions.cpp b/Graphics/GraphicsEngineVulkan/src/VulkanTypeConversions.cpp index 939c8e9d..01596a78 100644 --- a/Graphics/GraphicsEngineVulkan/src/VulkanTypeConversions.cpp +++ b/Graphics/GraphicsEngineVulkan/src/VulkanTypeConversions.cpp @@ -1454,7 +1454,7 @@ static_assert(PIPELINE_STAGE_FLAG_VERTEX_SHADER == VK_PIPELINE_ST static_assert(PIPELINE_STAGE_FLAG_HULL_SHADER == VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, "PIPELINE_STAGE_FLAG_HULL_SHADER != VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"); static_assert(PIPELINE_STAGE_FLAG_DOMAIN_SHADER == VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, "PIPELINE_STAGE_FLAG_DOMAIN_SHADER != VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"); static_assert(PIPELINE_STAGE_FLAG_GEOMETRY_SHADER == VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, "PIPELINE_STAGE_FLAG_GEOMETRY_SHADER != VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"); -static_assert(PIPELINE_STAGE_FLAG_FRAGMENT_SHADER == VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, "PIPELINE_STAGE_FLAG_FRAGMENT_SHADER != VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"); +static_assert(PIPELINE_STAGE_FLAG_PIXEL_SHADER == VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, "PIPELINE_STAGE_FLAG_PIXEL_SHADER != VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"); static_assert(PIPELINE_STAGE_FLAG_EARLY_FRAGMENT_TESTS == VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT, "PIPELINE_STAGE_FLAG_EARLY_FRAGMENT_TESTS != VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"); static_assert(PIPELINE_STAGE_FLAG_LATE_FRAGMENT_TESTS == VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, "PIPELINE_STAGE_FLAG_LATE_FRAGMENT_TESTS != VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"); static_assert(PIPELINE_STAGE_FLAG_RENDER_TARGET == VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, "PIPELINE_STAGE_FLAG_RENDER_TARGET != VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"); -- cgit v1.2.3