Merge pull request #811 from mdinkov/master

Invalid VkSpecializationInfo passed into vkCreateRayTracingPipelinesKHR
This commit is contained in:
Sascha Willems 2021-02-24 14:09:16 +01:00 committed by GitHub
commit 73e538c1b8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -374,13 +374,14 @@ public:
*/
std::vector<VkPipelineShaderStageCreateInfo> shaderStages;
VkSpecializationMapEntry specializationMapEntry = vks::initializers::specializationMapEntry(0, 0, sizeof(uint32_t));
uint32_t maxRecursion = 4;
VkSpecializationInfo specializationInfo = vks::initializers::specializationInfo(1, &specializationMapEntry, sizeof(maxRecursion), &maxRecursion);
// Ray generation group
{
shaderStages.push_back(loadShader(getShadersPath() + "raytracingreflections/raygen.rgen.spv", VK_SHADER_STAGE_RAYGEN_BIT_KHR));
// Pass recursion depth for reflections to ray generation shader via specialization constant
VkSpecializationMapEntry specializationMapEntry = vks::initializers::specializationMapEntry(0, 0, sizeof(uint32_t));
uint32_t maxRecursion = 4;
VkSpecializationInfo specializationInfo = vks::initializers::specializationInfo(1, &specializationMapEntry, sizeof(maxRecursion), &maxRecursion);
shaderStages.back().pSpecializationInfo = &specializationInfo;
VkRayTracingShaderGroupCreateInfoKHR shaderGroup{};
shaderGroup.sType = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR;