summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi/si_pipe.c
diff options
context:
space:
mode:
authorPaul Berry <[email protected]>2014-01-31 09:55:35 -0800
committerPaul Berry <[email protected]>2014-02-04 09:06:09 -0800
commit7f5740899fe8ee2d7fecebf1b9622e06dbc78f43 (patch)
treefd75c45ca7298fe65db4c5da35d98ee29dd264b8 /src/gallium/drivers/radeonsi/si_pipe.c
parent56790856b303ad5ba86d7eb261ade91edaa3ee0b (diff)
glsl: Fix continue statements in do-while loops.
From the GLSL 4.40 spec, section 6.4 (Jumps): The continue jump is used only in loops. It skips the remainder of the body of the inner most loop of which it is inside. For while and do-while loops, this jump is to the next evaluation of the loop condition-expression from which the loop continues as previously defined. Previously, we incorrectly treated a "continue" statement as jumping to the top of a do-while loop. This patch fixes the problem by replicating the loop condition when converting the "continue" statement to IR. (We already do a similar thing in "for" loops, to ensure that "continue" causes the loop expression to be executed). Fixes piglit tests: - glsl-fs-continue-inside-do-while.shader_test - glsl-vs-continue-inside-do-while.shader_test - glsl-fs-continue-in-switch-in-do-while.shader_test - glsl-vs-continue-in-switch-in-do-while.shader_test Cc: [email protected] Acked-by: Carl Worth <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Matt Turner <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_pipe.c')
0 files changed, 0 insertions, 0 deletions