Compute texture coordinates using floating point operations Modified the texture coordinate computation to use floating point operations when sampling floating point textures to increase accuracy and remove useless type conversions. Bug swiftshader:76 Change-Id: I76e5fd9a68aa6ba5eb21524edb8c6c6183e5430e Reviewed-on: https://swiftshader-review.googlesource.com/10628 Tested-by: Alexis Hétu <sugoi@google.com> Tested-by: Nicolas Capens <nicolascapens@google.com> Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Renderer/Sampler.cpp b/src/Renderer/Sampler.cpp index 7d7d47c..24734da 100644 --- a/src/Renderer/Sampler.cpp +++ b/src/Renderer/Sampler.cpp
@@ -207,8 +207,15 @@ mipmap.onePitchP[2] = 1; mipmap.onePitchP[3] = pitchP; + mipmap.pitchP[0] = pitchP; + mipmap.pitchP[1] = pitchP; + mipmap.pitchP[2] = pitchP; + mipmap.pitchP[3] = pitchP; + mipmap.sliceP[0] = sliceP; mipmap.sliceP[1] = sliceP; + mipmap.sliceP[2] = sliceP; + mipmap.sliceP[3] = sliceP; if(internalTextureFormat == FORMAT_YV12_BT601 || internalTextureFormat == FORMAT_YV12_BT709 ||
diff --git a/src/Renderer/Sampler.hpp b/src/Renderer/Sampler.hpp index 288f179..6fae602 100644 --- a/src/Renderer/Sampler.hpp +++ b/src/Renderer/Sampler.hpp
@@ -36,7 +36,8 @@ short height[4]; short depth[4]; short onePitchP[4]; - int sliceP[2]; + int4 pitchP; + int4 sliceP; }; struct Texture