-
Fix deterministic loops within conditional blocks, again. · 6e8ec338Nicolas Capens authored
Deterministic loops use the first scalar of the SIMD register used as the loop index, for addressing arrays. This means that operations on the index register should not be masked (i.e. it should be treated as a scalar). Previously we were still masking it based on conditional statements, and we didn't disable the masking altogether for the loop initialization and initial test. A new shader assembly instruction 'SCALAR' was added for doing this. Previously this was conflated with the 'TEST' instruction, which should independently disable/restore the 'continue' mask. Bug swiftshader:93 Bug b/118009174 Change-Id: I4add1a6d74231f463217e57adfabdc81faf489ae Reviewed-on: https://swiftshader-review.googlesource.com/c/22348Tested-by:
Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com>
6e8ec338
×