Fix passing sampler offset operands unchanged
All sampler operands are passed through an array of float values. Offset
operands are integers, but we were retrieving them from the SPIR-V
constant object interpreted as floating-point data, and then creating
Float constants from them. This may alter their bit pattern,
specifically values corresponding to sNaN may become qNaN.
Instead create Reactor integer constants and bitcast them to Float.
Bug: b/140302841
Change-Id: I06aceb7b2a97d5f5ce9009f5ba97238602cdc126
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/35910
Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by:
Nicolas Capens <nicolascapens@google.com>
Reviewed-by:
Chris Forbes <chrisforbes@google.com>
Showing
Please
register
or
sign in
to comment