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)
 	{