mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-16 18:28:05 +02:00
glsl: In lower_jumps.cpp, lower both branches of a conditional.
Previously, lower_jumps.cpp would break out of its loop after lowering
a jump instruction in just the then- or else-branch of a conditional,
and it would fail to lower a jump instruction occurring in the other
branch.
Without this patch, lower_jumps.cpp may require multiple passes in
order to lower all jumps. This results in sub-optimal output because
lower_jumps.cpp produces a brand new set of temporary variables each
time it is run, and the redundant temporary variables are not
guaranteed to be eliminated by later optimization passes.
Fixes unit test test_lower_returns_4.
(cherry picked from commit e71b4ab8a6)
This commit is contained in:
parent
de798938d4
commit
38ae26b709
1 changed files with 4 additions and 1 deletions
|
|
@ -451,7 +451,10 @@ lower_continue:
|
|||
block_records[lower].min_strength = strength_always_clears_execute_flag;
|
||||
block_records[lower].may_clear_execute_flag = true;
|
||||
this->progress = true;
|
||||
break;
|
||||
|
||||
/* Let the loop run again, in case the other branch of the
|
||||
* if needs to be lowered too.
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue