-
Implement GLSLstd450Interpolate* functions · 0bcb71f9Alexis Hetu authored
This cl adds an implementation for: - GLSLstd450InterpolateAtCentroid - GLSLstd450InterpolateAtSample - GLSLstd450InterpolateAtOffset These functions essentially replicate the behavior of regular interpolants in the fragment shader processing. A specific extra difficulty encountered here is detecting which kind of pointer offset we are dealing with. Pointer offsets might be caused by [] operators being used on a vector or on an array (possibly an array of vectors). This distinction is important as it impacts what interpolant offsets point to. Note that there's missing coverage in dEQP-VK for interpolant arrays and this was caught with SwANGLE tests (a dEQP-VK issue will be logged shortly). Another issue was dealing with dynamic interpolant offsets, which was solved by looping over all of them and combining all plane equations into one before performing the interpolation. Bug: b/171415086 Change-Id: Id7c4c931918ba172d00da84655051445b110d3a9 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51737 Presubmit-Ready: Alexis Hétu <sugoi@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by:
Alexis Hétu <sugoi@google.com> Commit-Queue: Alexis Hétu <sugoi@google.com> Reviewed-by:
Nicolas Capens <nicolascapens@google.com>
0bcb71f9
×