Fix non-float constant creation for ASM
Despite the name, PARAMETER_FLOAT4LITERAL is used for integer and
Boolean constants in the ASM representation of GLSL compiled shaders.
Reactor can turn sNaN values into qNan when constructing Float
constants, and thus integers bitcast from a float which were initialized
from a reinterpreted integer may not preserve its original bit pattern.
Instead construct the Float register values from Reactor Ints which are
bitcast to Float.
Bug: b/140302841
Change-Id: I4d915851c430dee4a752e06be0011c10d89fb79d
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/35888
Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
Tested-by:
Nicolas Capens <nicolascapens@google.com>
Reviewed-by:
Chris Forbes <chrisforbes@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Showing
Please
register
or
sign in
to comment