classes.
builder.addDecoration(id, spv::DecorationOffset, symbol->getQualifier().layoutOffset);
}
- if (symbol->getQualifier().hasLocation())
- builder.addDecoration(id, spv::DecorationLocation, symbol->getQualifier().layoutLocation);
+ if (symbol->getQualifier().hasLocation()) {
+ if (!(glslangIntermediate->isRayTracingStage() && glslangIntermediate->IsRequestedExtension(glslang::E_GL_EXT_ray_tracing)
+ && (builder.getStorageClass(id) == spv::StorageClassRayPayloadKHR ||
+ builder.getStorageClass(id) == spv::StorageClassIncomingRayPayloadKHR ||
+ builder.getStorageClass(id) == spv::StorageClassCallableDataKHR ||
+ builder.getStorageClass(id) == spv::StorageClassIncomingCallableDataKHR))) {
+ // Location values are used to link TraceRayKHR and ExecuteCallableKHR to corresponding variables
+ // but are not valid in SPIRV since they are supported only for Input/Output Storage classes.
+ builder.addDecoration(id, spv::DecorationLocation, symbol->getQualifier().layoutLocation);
+ }
+ }
+
builder.addDecoration(id, TranslateInvariantDecoration(symbol->getType().getQualifier()));
if (symbol->getQualifier().hasStream() && glslangIntermediate->isMultiStream()) {
builder.addCapability(spv::CapabilityGeometryStreams);
Decorate 10(gl_CurrentRayTimeNV) BuiltIn CurrentRayTimeNV
Decorate 16(accEXT) DescriptorSet 0
Decorate 16(accEXT) Binding 0
- Decorate 32(incomingPayloadEXT) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
Decorate 10(gl_CurrentRayTimeNV) BuiltIn CurrentRayTimeNV
Decorate 16(accEXT) DescriptorSet 0
Decorate 16(accEXT) Binding 0
- Decorate 32(localPayloadEXT) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
Decorate 21(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR
Decorate 29(accEXT) DescriptorSet 0
Decorate 29(accEXT) Binding 0
- Decorate 46(payloadEXT) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
Decorate 70(gl_GeometryIndexEXT) BuiltIn RayGeometryIndexKHR
Decorate 76(gl_ObjectToWorld3x4EXT) BuiltIn ObjectToWorldKHR
Decorate 80(gl_WorldToObject3x4EXT) BuiltIn WorldToObjectKHR
- Decorate 84(incomingPayload) Location 1
Decorate 98(gl_SubgroupSize) RelaxedPrecision
Decorate 98(gl_SubgroupSize) BuiltIn SubgroupSize
Decorate 99 RelaxedPrecision
Decorate 80(gl_WorldToObject3x4EXT) BuiltIn WorldToObjectKHR
Decorate 85(accEXT) DescriptorSet 0
Decorate 85(accEXT) Binding 0
- Decorate 98(incomingPayload) Location 1
- Decorate 100(localPayload) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
Name 61 "gl_SMIDNV"
Decorate 8(accEXT) DescriptorSet 0
Decorate 8(accEXT) Binding 0
- Decorate 26(incomingPayload) Location 1
Decorate 28(gl_SubgroupInvocationID) RelaxedPrecision
Decorate 28(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
Decorate 29 RelaxedPrecision
Decorate 32(gl_RayTmaxEXT) BuiltIn RayTmaxKHR
Decorate 36(accEXT) DescriptorSet 0
Decorate 36(accEXT) Binding 0
- Decorate 51(incomingPayload) Location 1
Decorate 53(gl_SubGroupSizeARB) BuiltIn SubgroupSize
Decorate 53(gl_SubGroupSizeARB) Volatile
Decorate 53(gl_SubGroupSizeARB) Coherent
Decorate 74(s2D) Binding 1
Decorate 78(c2) Location 2
Decorate 85(lodClamp) Location 3
- Decorate 89(localPayload) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR
Decorate 14(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR
Decorate 16(dataBlock) Block
- Decorate 18 Location 1
- Decorate 29(data0) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
Name 26 "payload"
Decorate 8(accEXT) DescriptorSet 0
Decorate 8(accEXT) Binding 0
- Decorate 26(payload) Location 1
2: TypeVoid
3: TypeFunction 2
6: TypeAccelerationStructureKHR
MemberDecorate 36(block) 9 Offset 120
MemberDecorate 36(block) 10 Offset 128
Decorate 36(block) Block
- Decorate 60(payload) Location 1
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
MemberDecorate 36(block) 9 Offset 136
MemberDecorate 36(block) 10 Offset 144
Decorate 36(block) Block
- Decorate 60(payload) Location 1
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
MemberDecorate 36(block) 9 Offset 120
MemberDecorate 36(block) 10 Offset 128
Decorate 36(block) Block
- Decorate 60(payload) Location 1
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
MemberDecorate 36(block) 9 Offset 96
MemberDecorate 36(block) 10 Offset 104
Decorate 36(block) Block
- Decorate 60(payload) Location 1
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
MemberDecorate 38(block) 0 Offset 0
MemberDecorate 38(block) 1 Offset 16
Decorate 38(block) Block
- Decorate 53(payload) Location 1
Decorate 54(accEXT1) DescriptorSet 0
Decorate 54(accEXT1) Binding 1
Decorate 57(imageu) DescriptorSet 0
MemberDecorate 37(block) 0 Offset 0
MemberDecorate 37(block) 1 Offset 16
Decorate 37(block) Block
- Decorate 52(payload) Location 1
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
MemberDecorate 36(block) 3 Offset 32
MemberDecorate 36(block) 4 Offset 40
Decorate 36(block) Block
- Decorate 61(payload) Location 1
Decorate 65(accEXT1) DescriptorSet 0
Decorate 65(accEXT1) Binding 1
Decorate 80 DecorationNonUniformEXT
Decorate 60(gl_WorldToObject3x4EXT) BuiltIn WorldToObjectKHR
Decorate 78(result) DescriptorSet 0
Decorate 78(result) Binding 0
- Decorate 89(hitValue) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32