-
Fix 'continue' in GLSL loops. · 2f490f06Nicolas Capens authored
The test expression of a loop is placed between the TEST and ENDWHILE shader assembly instructions, and should no longer be affected by the cleared execution mask of a continue statement. Thus TEST should always be emitted, even for non-deterministic loops. Other masks should still apply, and work recursively, so the 'whileTest' boolean to disable all masks during the test expression evaluation has been replaced with a stack to restore the continue mask at the TEST instruction. Bug swiftshader:93 Bug b/118009174 Change-Id: I505c48f0344e61a6c31f81d26e93bc1217a105a2 Reviewed-on: https://swiftshader-review.googlesource.com/c/22248Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
2f490f06