summaryrefslogtreecommitdiff
path: root/source/slang/slang-emit-spirv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-emit-spirv.cpp')
-rw-r--r--source/slang/slang-emit-spirv.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/source/slang/slang-emit-spirv.cpp b/source/slang/slang-emit-spirv.cpp
index 07f1b2aee..88fb8b0fe 100644
--- a/source/slang/slang-emit-spirv.cpp
+++ b/source/slang/slang-emit-spirv.cpp
@@ -1430,11 +1430,17 @@ struct SPIRVEmitContext
);
}
case kIROp_SamplerStateType:
- return emitOpTypeSampler(inst);
- // > OpTypeArray
- // > OpTypeRuntimeArray
- // > OpTypeOpaque
- // > OpTypePointer
+ return emitOpTypeSampler(inst);
+
+ case kIROp_RaytracingAccelerationStructureType:
+ requireSPIRVCapability(SpvCapabilityRayTracingKHR);
+ ensureExtensionDeclaration(UnownedStringSlice("SPV_KHR_ray_tracing"));
+ return emitOpTypeAccelerationStructure(inst);
+
+ case kIROp_RayQueryType:
+ ensureExtensionDeclaration(UnownedStringSlice("SPV_KHR_ray_query"));
+ requireSPIRVCapability(SpvCapabilityRayQueryKHR);
+ return emitOpTypeRayQuery(inst);
case kIROp_FuncType:
// > OpTypeFunction
@@ -1544,6 +1550,8 @@ struct SPIRVEmitContext
}
case kIROp_GetStringHash:
return emitGetStringHash(inst);
+ case kIROp_AllocateOpaqueHandle:
+ return nullptr;
default:
{
if (as<IRSPIRVAsmOperand>(inst))