diff options
-rw-r--r-- | src/mesa/shader/slang/slang_emit.c | 5 |
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); |