diff options
author | Brian Paul <[email protected]> | 2008-07-15 14:41:47 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2008-07-15 14:41:47 -0600 |
commit | 5bf89cf2c399e40b3d5dc8cf03f03db70f50e777 (patch) | |
tree | 1d1b8fab007926e7098775b4f3f0c3bbafbb17d9 /src/mesa/shader/slang/slang_emit.c | |
parent | f006358d56e6b24c3e32665e088d5ee11877ec2c (diff) |
mesa: fix storage size computation in emit_arith()
Diffstat (limited to 'src/mesa/shader/slang/slang_emit.c')
-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 6d79380ab5f..b087483b020 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); |