Enable samplerAnisotropy - Enabled the feature - Removed restriction from SpirvShader::getImageSampler() - Added support for it in SpirvShader::convertFilterMode() The rest of the logic to compute anisotropic filtering was still there. Tests: dEQP-VK.texture.filtering_anisotropy.* Bug: b/146438763 Change-Id: I2a36d00b6da88091202abe6d4f4f7f9b49507eb3 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/39668 Presubmit-Ready: Alexis Hétu <sugoi@google.com> Reviewed-by: Nicolas Capens <nicolascapens@google.com> Reviewed-by: Chris Forbes <chrisforbes@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Tested-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/Pipeline/SpirvShaderSampling.cpp b/src/Pipeline/SpirvShaderSampling.cpp index 45deba6..fa07d73 100644 --- a/src/Pipeline/SpirvShaderSampling.cpp +++ b/src/Pipeline/SpirvShaderSampling.cpp
@@ -90,11 +90,6 @@ samplerState.studioSwing = (sampler->ycbcrConversion->ycbcrRange == VK_SAMPLER_YCBCR_RANGE_ITU_NARROW); samplerState.swappedChroma = (sampler->ycbcrConversion->components.r != VK_COMPONENT_SWIZZLE_R); } - - if(sampler->anisotropyEnable != VK_FALSE) - { - UNSUPPORTED("anisotropyEnable"); - } } routine = emitSamplerRoutine(instruction, samplerState); @@ -229,6 +224,11 @@ sw::FilterType SpirvShader::convertFilterMode(const vk::Sampler *sampler) { + if(sampler->anisotropyEnable == VK_TRUE) + { + return FILTER_ANISOTROPIC; + } + switch(sampler->magFilter) { case VK_FILTER_NEAREST: