diff options
| author | Yong He <yonghe@outlook.com> | 2024-12-30 23:39:41 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-30 23:39:41 -0800 |
| commit | 3f43d6c14320c71a170b697bf13a4f130a71d297 (patch) | |
| tree | f2e97eff84b666095ed73e95333b674d99036934 /source | |
| parent | cc1b96d91d8875bf727079d58fbf78af1135f505 (diff) | |
Add `RaytracingAccelerationStructure::__init(uint64_t)`. (#5967)
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/hlsl.meta.slang | 18 | ||||
| -rw-r--r-- | source/slang/slang-emit-glsl.cpp | 1 |
2 files changed, 18 insertions, 1 deletions
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; } |
