diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/hlsl.meta.slang | 4 | ||||
| -rw-r--r-- | source/slang/slang-ir-spirv-legalize.cpp | 6 |
2 files changed, 3 insertions, 7 deletions
diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang index 44d5fbe83..565babc39 100644 --- a/source/slang/hlsl.meta.slang +++ b/source/slang/hlsl.meta.slang @@ -3040,7 +3040,7 @@ bool all(vector<T,N> x) } else { - let zero = __default<T>(); + let zero = __default<vector<T,N>>(); return spirv_asm { OpFUnordNotEqual $$vector<bool,N> %castResult $x $zero; @@ -3154,7 +3154,7 @@ bool any(vector<T, N> x) } else { - let zero = __default<T>(); + let zero = __default<vector<T,N>>(); return spirv_asm { OpFUnordNotEqual $$vector<bool,N> %castResult $x $zero; diff --git a/source/slang/slang-ir-spirv-legalize.cpp b/source/slang/slang-ir-spirv-legalize.cpp index 81bec8aa7..681fb36b1 100644 --- a/source/slang/slang-ir-spirv-legalize.cpp +++ b/source/slang/slang-ir-spirv-legalize.cpp @@ -627,11 +627,7 @@ struct SPIRVLegalizationContext : public SourceEmitterBase auto innerElementType = innerType; if (arrayType) { - Array<IRInst*, 2> arrayTypeArgs; - arrayTypeArgs.add(innerType); - if (arraySize) - arrayTypeArgs.add(arraySize); - innerType = (IRType*)builder.emitIntrinsicInst(builder.getTypeKind(), arrayType->getOp(), (UInt)arrayTypeArgs.getCount(), arrayTypeArgs.getBuffer()); + innerType = (IRType*)builder.getArrayTypeBase(arrayType->getOp(), innerType, arraySize); if (!arraySize) { builder.addRequireSPIRVDescriptorIndexingExtensionDecoration(inst); |
