Add high precision filtering extension
This lets users specify the level of sampling precision they want.
Chromium needs this to pass WebGL tests with SWANGLE.
Bug: b/146423360
Bug: b/154620295
Change-Id: I83575823b5909d836c3d4c02803ba7909ce08935
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/42268
Tested-by: Antonio Maiorano <amaiorano@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Result: kokoro <noreply+kokoro@google.com>
diff --git a/src/Vulkan/VkSampler.cpp b/src/Vulkan/VkSampler.cpp
index 11cb00e..d64a4d5 100644
--- a/src/Vulkan/VkSampler.cpp
+++ b/src/Vulkan/VkSampler.cpp
@@ -16,7 +16,7 @@
namespace vk {
-SamplerState::SamplerState(const VkSamplerCreateInfo *pCreateInfo, const vk::SamplerYcbcrConversion *ycbcrConversion)
+SamplerState::SamplerState(const VkSamplerCreateInfo *pCreateInfo, const vk::SamplerYcbcrConversion *ycbcrConversion, VkSamplerFilteringPrecisionModeGOOGLE filteringPrecision)
: Memset(this, 0)
, magFilter(pCreateInfo->magFilter)
, minFilter(pCreateInfo->minFilter)
@@ -33,6 +33,7 @@
, maxLod(ClampLod(pCreateInfo->maxLod))
, borderColor(pCreateInfo->borderColor)
, unnormalizedCoordinates(pCreateInfo->unnormalizedCoordinates)
+ , filteringPrecision(filteringPrecision)
{
if(ycbcrConversion)
{