SpirvShader: Fixes for complex loops.
Combine all the active lane masks for the merge block. Previously this was only using the lane mask of the last loop iteration.
Loop phis were being overridden even for disabled lanes. Now fixed.
Made EmitBranch() use addActiveLaneMaskEdge(). This is effectively a noop change, but keeps the code more consistent.
dEQP-VK.glsl.switch.switch_in_do_while_loop_dynamic_vertex still seems broken, which I'm investigating.
Tests: dEQP-VK.glsl.switch.*
Bug: b/128527271
Change-Id: I49bafe5cdb49d6878dde98134f9cbb9a3ad4d384
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/31268
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Presubmit-Ready: Ben Clayton <bclayton@google.com>
Tested-by:
Ben Clayton <bclayton@google.com>
Reviewed-by:
Chris Forbes <chrisforbes@google.com>
Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
Showing
Please
register
or
sign in
to comment