From 3f43d6c14320c71a170b697bf13a4f130a71d297 Mon Sep 17 00:00:00 2001 From: Yong He Date: Mon, 30 Dec 2024 23:39:41 -0800 Subject: Add `RaytracingAccelerationStructure::__init(uint64_t)`. (#5967) --- source/slang/hlsl.meta.slang | 18 +++++++++++++++++- source/slang/slang-emit-glsl.cpp | 1 + 2 files changed, 18 insertions(+), 1 deletion(-) (limited to 'source') diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang index 774c6a247..d8f9845b8 100644 --- a/source/slang/hlsl.meta.slang +++ b/source/slang/hlsl.meta.slang @@ -15592,7 +15592,23 @@ struct RayDesc __builtin __magic_type(RaytracingAccelerationStructureType) __intrinsic_type($(kIROp_RaytracingAccelerationStructureType)) -struct RaytracingAccelerationStructure {}; +struct RaytracingAccelerationStructure +{ + [require(glsl_spirv, raytracing)] + [__readNone] + __init(uint64_t address) + { + __target_switch + { + case spirv: + return spirv_asm { + result: $$RaytracingAccelerationStructure = OpConvertUToAccelerationStructureKHR $address; + }; + case glsl: + __intrinsic_asm "accelerationStructureEXT($0)"; + } + } +}; // 10.1.4 - Subobject Definitions diff --git a/source/slang/slang-emit-glsl.cpp b/source/slang/slang-emit-glsl.cpp index a19c9c01f..a863e7eb1 100644 --- a/source/slang/slang-emit-glsl.cpp +++ b/source/slang/slang-emit-glsl.cpp @@ -3139,6 +3139,7 @@ void GLSLSourceEmitter::emitSimpleTypeImpl(IRType* type) } case kIROp_RayQueryType: { + _requireRayQuery(); m_writer->emit("rayQueryEXT"); return; } -- cgit v1.2.3