@@ -1441,12 +1441,15 @@ void CVulkanLogicalDevice::createRayTracingPipelines_impl(
1441
1441
size_t maxShaderStages = 0 ;
1442
1442
for (const auto & info : createInfos)
1443
1443
maxShaderStages += info.shaders .size ();
1444
+ size_t maxShaderGroups = 0 ;
1445
+ for (const auto & info : createInfos)
1446
+ maxShaderGroups += info.shaderGroups .getShaderGroupCount ();
1444
1447
core::vector<VkRayTracingPipelineCreateInfoKHR> vk_createInfos (createInfos.size (), { VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR,nullptr });
1445
1448
core::vector<VkPipelineShaderStageRequiredSubgroupSizeCreateInfo> vk_requiredSubgroupSize (maxShaderStages,{
1446
1449
VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,nullptr
1447
1450
});
1448
1451
core::vector<VkPipelineShaderStageCreateInfo> vk_shaderStage (maxShaderStages, { VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, nullptr });
1449
- core::vector<VkRayTracingShaderGroupCreateInfoKHR> vk_shaderGroup (maxShaderStages , { VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR, nullptr });
1452
+ core::vector<VkRayTracingShaderGroupCreateInfoKHR> vk_shaderGroup (maxShaderGroups , { VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR, nullptr });
1450
1453
core::vector<VkSpecializationInfo> vk_specializationInfos (maxShaderStages, { 0 , nullptr , 0 , nullptr });
1451
1454
core::vector<VkSpecializationMapEntry> vk_specializationMapEntry (validation.count );
1452
1455
core::vector<uint8_t > specializationData (validation.dataSize );
@@ -1458,7 +1461,7 @@ void CVulkanLogicalDevice::createRayTracingPipelines_impl(
1458
1461
auto outSpecInfo = vk_specializationInfos.data ();
1459
1462
auto outSpecMapEntry = vk_specializationMapEntry.data ();
1460
1463
auto outSpecData = specializationData.data ();
1461
- auto getVkShaderIndex = [](uint32_t index) { return index == SShaderGroupParams::ShaderUnused ? VK_SHADER_UNUSED_KHR : index; };
1464
+ auto getVkShaderIndex = [](uint32_t index) { return index == SShaderGroupParams::SIndex::Unused ? VK_SHADER_UNUSED_KHR : index; };
1462
1465
auto getGeneralVkRayTracingShaderGroupCreateInfo = [getVkShaderIndex](SGeneralShaderGroup group) -> VkRayTracingShaderGroupCreateInfoKHR
1463
1466
{
1464
1467
return {
0 commit comments