From cbcb97a64c0b7b908fc7be565b0d6141d2f1a1f7 Mon Sep 17 00:00:00 2001 From: Jay Kwak <82421531+jkwak-work@users.noreply.github.com> Date: Wed, 29 Jan 2025 17:42:28 -0800 Subject: Update SPIRV submodules and fix tests (#6222) --- source/slang/slang-emit-spirv.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'source') diff --git a/source/slang/slang-emit-spirv.cpp b/source/slang/slang-emit-spirv.cpp index 7c2e80846..24d8cc0c6 100644 --- a/source/slang/slang-emit-spirv.cpp +++ b/source/slang/slang-emit-spirv.cpp @@ -1669,11 +1669,19 @@ struct SPIRVEmitContext : public SourceEmitterBase, public SPIRVEmitSharedContex &sizeAndAlignment); stride = (int)sizeAndAlignment.getStride(); } - emitOpDecorateArrayStride( - getSection(SpvLogicalSectionID::Annotations), - nullptr, - arrayType, - SpvLiteralInteger::from32(stride)); + + // Avoid validation error: Array containing a Block or BufferBlock must not be + // decorated with ArrayStride + if (!elementType->findDecorationImpl(kIROp_SPIRVBufferBlockDecoration) && + !elementType->findDecorationImpl(kIROp_SPIRVBlockDecoration)) + { + emitOpDecorateArrayStride( + getSection(SpvLogicalSectionID::Annotations), + nullptr, + arrayType, + SpvLiteralInteger::from32(stride)); + } + return arrayType; } case kIROp_AtomicType: -- cgit v1.2.3