From 5c111ebef679c994047df95bbdf90181ccb2d067 Mon Sep 17 00:00:00 2001 From: jarcherNV Date: Wed, 2 Apr 2025 01:46:52 -0700 Subject: Use correct syntax for WGSL array transpiling (#6693) Fixes issue #6533 This patch updates handling of Array and ConstantBuffer types for WGSL transpiling, giving correct syntax for arrays of buffers in WGSL. --- source/slang/slang-emit-wgsl.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'source') diff --git a/source/slang/slang-emit-wgsl.cpp b/source/slang/slang-emit-wgsl.cpp index 227c6cf75..8a3a3cc01 100644 --- a/source/slang/slang-emit-wgsl.cpp +++ b/source/slang/slang-emit-wgsl.cpp @@ -656,6 +656,11 @@ void WGSLSourceEmitter::emitSimpleTypeImpl(IRType* type) m_writer->emit(">"); return; } + case kIROp_ConstantBufferType: + { + emitType((IRType*)type->getOperand(0)); + return; + } default: break; } @@ -771,6 +776,13 @@ void WGSLSourceEmitter::emitVarKeywordImpl(IRType* type, IRInst* varDecl) { m_writer->emit(""); } + else if ( + type->getOp() == kIROp_ArrayType && + type->getOperand(0)->getOp() == kIROp_ConstantBufferType) + { + // Arrays of constant buffers should use the uniform keyword. + m_writer->emit(""); + } else if ( type->getOp() == kIROp_HLSLRWStructuredBufferType || type->getOp() == kIROp_HLSLRasterizerOrderedStructuredBufferType || -- cgit v1.2.3