From f75bf474ef87737c87ef6dcb431bd0b87faee0a8 Mon Sep 17 00:00:00 2001 From: ArielG-NV <159081215+ArielG-NV@users.noreply.github.com> Date: Fri, 15 Aug 2025 08:24:06 -0700 Subject: [CUDA] Fix incorrect `kIROp_RaytracingAccelerationStructureType` emitting logic (#8168) Fixes: #8167 Current emitting logic does not work, this has been corrected. The provided test ensures our CUDA code is valid by compiling PTX from it. `m_writer->emit("OptixTraversableHandle");` should be `out <<` since `out` adds to type-name-cache; otherwise using a type twice will produce bad type-names (since we filled type-name cache with "" instead of "typeName") --- source/slang/slang-emit-cuda.cpp | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) (limited to 'source/slang/slang-emit-cuda.cpp') diff --git a/source/slang/slang-emit-cuda.cpp b/source/slang/slang-emit-cuda.cpp index e27fd25aa..a5b90740d 100644 --- a/source/slang/slang-emit-cuda.cpp +++ b/source/slang/slang-emit-cuda.cpp @@ -214,6 +214,7 @@ SlangResult CUDASourceEmitter::calcTypeName(IRType* type, CodeGenTarget target, out << "TensorView"; return SLANG_OK; } + case kIROp_RaytracingAccelerationStructureType: case kIROp_HitObjectType: { out << "OptixTraversableHandle"; @@ -254,22 +255,6 @@ SlangResult CUDASourceEmitter::calcTypeName(IRType* type, CodeGenTarget target, } } - if (auto untypedBufferType = as(type)) - { - switch (untypedBufferType->getOp()) - { - case kIROp_RaytracingAccelerationStructureType: - { - m_writer->emit("OptixTraversableHandle"); - return SLANG_OK; - break; - } - - default: - break; - } - } - return Super::calcTypeName(type, target, out); } -- cgit v1.2.3