summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineVulkan
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2020-12-23 04:53:07 +0000
committerassiduous <assiduous@diligentgraphics.com>2020-12-23 04:53:07 +0000
commit6d151d4cdd7448465d0fee093c2fd030cf9ed040 (patch)
tree66e108982f2e2df04f150d359dad9564a18b63f6 /Graphics/GraphicsEngineVulkan
parentPipelineStateVkImpl: reworked ray tracing shader group initialization (diff)
downloadDiligentCore-6d151d4cdd7448465d0fee093c2fd030cf9ed040.tar.gz
DiligentCore-6d151d4cdd7448465d0fee093c2fd030cf9ed040.zip
Fixed some issues with PSO create info validation
Diffstat (limited to 'Graphics/GraphicsEngineVulkan')
-rw-r--r--Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp
index 87f6ddc6..50f3bb9e 100644
--- a/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp
+++ b/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp
@@ -608,6 +608,8 @@ void PipelineStateVkImpl::InitResourceLayouts(const PipelineStateCreateInfo& Cre
m_StaticVarsMgrs[s].Initialize(StaticResLayout, GetRawAllocator(), nullptr, 0);
}
+
+ // Initialize shader resource layouts and assign bindings and descriptor sets in shader SPIRVs
ShaderResourceLayoutVk::Initialize(pDeviceVk, ShaderStages, m_ShaderResourceLayouts, GetRawAllocator(),
m_Desc.ResourceLayout, m_PipelineLayout,
(CreateInfo.Flags & PSO_CREATE_FLAG_IGNORE_MISSING_VARIABLES) == 0,
@@ -766,8 +768,8 @@ PipelineStateVkImpl::PipelineStateVkImpl(IReferenceCounters*
CreateRayTracingPipeline(pDeviceVk, vkShaderStages, ShaderGroups, m_PipelineLayout, m_Desc, GetRayTracingPipelineDesc(), m_Pipeline);
- auto err = LogicalDevice.GetRayTracingShaderGroupHandles(m_Pipeline, 0, static_cast<uint32_t>(ShaderGroups.size()), m_pRayTracingPipelineData->ShaderDataSize, &m_pRayTracingPipelineData->ShaderHandles[0]);
- VERIFY(err == VK_SUCCESS, "Failed to get shader group handles");
+ auto err = LogicalDevice.GetRayTracingShaderGroupHandles(m_Pipeline, 0, static_cast<uint32_t>(ShaderGroups.size()), m_pRayTracingPipelineData->ShaderDataSize, m_pRayTracingPipelineData->ShaderHandles);
+ DEV_CHECK_ERR(err == VK_SUCCESS, "Failed to get shader group handles");
(void)err;
}
catch (...)