https://bugs.freedesktop.org/show_bug.cgi?id=86089
--- Comment #2 from Shawn Starr shawn.starr@rogers.com --- Bisecting came up with this as bad commit:
73dd50acf6d244979c2a657906aa56d3ac60d550 is the first bad commit commit 73dd50acf6d244979c2a657906aa56d3ac60d550 Author: Tapani Pälli tapani.palli@intel.com Date: Wed Aug 6 09:46:54 2014 +0300
glsl: implement switch flow control using a loop
Patch removes old variable based logic for handling a break inside switch. Switch is put inside a loop so that existing infrastructure for loop flow control can be used for the switch, now also dead code elimination works properly.
Possible 'continue' call inside a switch needs now special handling which is taken care of by detecting continue, breaking out and calling continue for the outside loop.
v2: remove one unnecessary ir_expression (Curro)
Fixes following Piglit tests:
fs-exec-after-break.shader_test fs-conditional-break.shader_test
No Piglit or es3conform regressions.
Signed-off-by: Tapani Pälli tapani.palli@intel.com Reviewed-by: Francisco Jerez currojerez@riseup.net
:040000 040000 eac8a47066723ff804317ef11bb006dd0bb80d0f b73ed6cc78a66c54d684635f69a358fd54f65929 M src