summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-emit-vm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-emit-vm.cpp')
-rw-r--r--source/slang/slang-emit-vm.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/source/slang/slang-emit-vm.cpp b/source/slang/slang-emit-vm.cpp
index 1602fbfb8..80d3762aa 100644
--- a/source/slang/slang-emit-vm.cpp
+++ b/source/slang/slang-emit-vm.cpp
@@ -247,6 +247,17 @@ public:
operand = addConstantValue(constantInst);
mapInstToOperand[inst] = operand;
}
+ else if (auto constantVector = as<IRMakeVector>(inst))
+ {
+ SLANG_ASSERT(constantVector->getOperandCount() > 0);
+ operand = ensureInst(constantVector->getOperand(0));
+ for (UInt i = 1; i < constantVector->getOperandCount(); i++)
+ {
+ ensureInst(constantVector->getOperand(i));
+ }
+ operand.size *= (uint32_t)constantVector->getOperandCount();
+ mapInstToOperand[inst] = operand;
+ }
else
{
SLANG_UNEXPECTED("unsupported global inst for vm bytecode emit");