summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/api_validate.c
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2016-11-30 17:27:37 -0800
committerEmil Velikov <emil.l.velikov@gmail.com>2016-12-14 19:03:11 +0000
commit403d106c9c5eed481cb58ee0104e211c3d8f44f8 (patch)
treed5648229d20c97f9a4ea58100408920f2f5d070b /src/mesa/main/api_validate.c
parenta539345c3e6105e4f9aa38819218e028713bdf93 (diff)
downloadexternal_mesa3d-403d106c9c5eed481cb58ee0104e211c3d8f44f8.zip
external_mesa3d-403d106c9c5eed481cb58ee0104e211c3d8f44f8.tar.gz
external_mesa3d-403d106c9c5eed481cb58ee0104e211c3d8f44f8.tar.bz2
vc4: In a loop break/continue, jump if everyone has taken the path.
This should be a win for most loops, which tend to have uniform control flow. More importantly, it exposes important information to live variables: that the break/continue here means that our jump target may have access to values that were live on our input. Previously, we were just setting the exec mask and letting control flow fall through, so an intervening def between the break and the end of the loop would appear to live variables as if it screened off the variable, when it didn't actually. Fixes a regression in glsl-vs-loop-redundant-condition.shader_test when a perturbing of register allocation caused a live variable to get stomped. Cc: 13.0 <mesa-stable@lists.freedesktop.org> (cherry picked from commit 8e5ec33f1151dd82402bdfdaa4fff7c284e49a1c)
Diffstat (limited to 'src/mesa/main/api_validate.c')
0 files changed, 0 insertions, 0 deletions