Correct border clamp and depth comparison order
The Vulkan spec on 'Texel Input Operations' lists Texel replacement
before Depth comparison.
Bug: b/227518327
Change-Id: I2648289504030a29f184fd342240d7f066d01c54
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/64688
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/Pipeline/SamplerCore.cpp b/src/Pipeline/SamplerCore.cpp
index f126b4b..9f69fc8 100644
--- a/src/Pipeline/SamplerCore.cpp
+++ b/src/Pipeline/SamplerCore.cpp
@@ -2097,6 +2097,11 @@
}
}
+ if(borderModeActive())
+ {
+ c = replaceBorderTexel(c, valid);
+ }
+
if(state.compareEnable)
{
Float4 ref = dRef;
@@ -2129,11 +2134,6 @@
c.w = Float4(1.0f);
}
- if(borderModeActive())
- {
- c = replaceBorderTexel(c, valid);
- }
-
return c;
}