mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 11:18:08 +02:00
glsl: fix 'if ((x=foo()) > 1.0)' bug
Fixes fd.o bug 27216. May also be the root cause of fd.o bug 28950. We weren't propogating the storage info for the x=foo() expression up through the IR tree to the inequality expression. NOTE: This is a candidate for the Mesa 7.8 branch.
This commit is contained in:
parent
7c6a897275
commit
3751e6e1fc
1 changed files with 5 additions and 1 deletions
|
|
@ -2361,7 +2361,10 @@ emit(slang_emit_info *emitInfo, slang_ir_node *n)
|
|||
#if 0
|
||||
assert(!n->Store);
|
||||
#endif
|
||||
n->Store = n->Children[1]->Store;
|
||||
if (n->Children[1]->Store)
|
||||
n->Store = n->Children[1]->Store;
|
||||
else
|
||||
n->Store = n->Children[0]->Store;
|
||||
return inst;
|
||||
|
||||
case IR_SCOPE:
|
||||
|
|
@ -2369,6 +2372,7 @@ emit(slang_emit_info *emitInfo, slang_ir_node *n)
|
|||
_slang_push_var_table(emitInfo->vt);
|
||||
inst = emit(emitInfo, n->Children[0]);
|
||||
_slang_pop_var_table(emitInfo->vt);
|
||||
n->Store = n->Children[0]->Store;
|
||||
return inst;
|
||||
|
||||
case IR_VAR_DECL:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue