summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mesa/shader/slang/slang_emit.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mesa/shader/slang/slang_emit.c b/src/mesa/shader/slang/slang_emit.c
index 6d79380ab5..b087483b02 100644
--- a/src/mesa/shader/slang/slang_emit.c
+++ b/src/mesa/shader/slang/slang_emit.c
@@ -539,8 +539,9 @@ emit_arith(slang_emit_info *emitInfo, slang_ir_node *n)
/* result storage */
if (!n->Store) {
- /* XXX this size isn't correct, it depends on the operands */
- if (!alloc_temp_storage(emitInfo, n, info->ResultSize))
+ GLint size = n->Children[0]->Store
+ ? n->Children[0]->Store->Size : info->ResultSize;
+ if (!alloc_temp_storage(emitInfo, n, size))
return NULL;
}
storage_to_dst_reg(&inst->DstReg, n->Store, n->Writemask);