From 85d40ed62f5ef6d38a0f898b7bd452cca0f65a5b Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Fri, 22 Sep 2023 00:45:53 +0800 Subject: Emit loads for array resources correctly (#3214) * Emit loads for array resources correctly * Put arrays of UniformConstant resources in UniformConstant * less expected failure * This code was actually used --------- Co-authored-by: Yong He --- source/slang/slang-ir-spirv-legalize.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'source') diff --git a/source/slang/slang-ir-spirv-legalize.cpp b/source/slang/slang-ir-spirv-legalize.cpp index 393b907f7..1590f94c8 100644 --- a/source/slang/slang-ir-spirv-legalize.cpp +++ b/source/slang/slang-ir-spirv-legalize.cpp @@ -184,7 +184,7 @@ struct SPIRVLegalizationContext : public SourceEmitterBase // just prior to the block. const auto asmBlock = spirvAsmOperand->getAsmBlock(); builder.setInsertBefore(asmBlock); - auto loadedValue = builder.emitLoad(addrInst); + auto loadedValue = builder.emitLoad(addr); builder.setInsertBefore(spirvAsmOperand); auto loadedValueOperand = builder.emitSPIRVAsmOperandInst(loadedValue); spirvAsmOperand->replaceUsesWith(loadedValueOperand); @@ -210,6 +210,8 @@ struct SPIRVLegalizationContext : public SourceEmitterBase return true; if (as(type)) return true; + if (const auto arr = as(type)) + return isSpirvUniformConstantType(arr->getElementType()); switch (type->getOp()) { case kIROp_RaytracingAccelerationStructureType: -- cgit v1.2.3