Handle the anisotropic filtering option in config.

This commit is contained in:
Skyth 2024-12-26 16:13:21 +03:00
parent a1a05f83dc
commit 8f4f1ea33e

View file

@ -3495,7 +3495,7 @@ static void ProcSetSamplerState(const RenderCommand& cmd)
auto mipFilter = ConvertTextureFilter((args.data3 >> 23) & 0x3); auto mipFilter = ConvertTextureFilter((args.data3 >> 23) & 0x3);
const auto borderColor = ConvertBorderColor(args.data5 & 0x3); const auto borderColor = ConvertBorderColor(args.data5 & 0x3);
bool anisotropyEnabled = mipFilter == RenderFilter::LINEAR; bool anisotropyEnabled = Config::AnisotropicFiltering > 0 && mipFilter == RenderFilter::LINEAR;
if (anisotropyEnabled) if (anisotropyEnabled)
{ {
magFilter = RenderFilter::LINEAR; magFilter = RenderFilter::LINEAR;
@ -3512,6 +3512,7 @@ static void ProcSetSamplerState(const RenderCommand& cmd)
SetDirtyValue(dirty, samplerDesc.minFilter, minFilter); SetDirtyValue(dirty, samplerDesc.minFilter, minFilter);
SetDirtyValue(dirty, samplerDesc.magFilter, magFilter); SetDirtyValue(dirty, samplerDesc.magFilter, magFilter);
SetDirtyValue(dirty, samplerDesc.mipmapMode, RenderMipmapMode(mipFilter)); SetDirtyValue(dirty, samplerDesc.mipmapMode, RenderMipmapMode(mipFilter));
SetDirtyValue(dirty, samplerDesc.maxAnisotropy, anisotropyEnabled ? Config::AnisotropicFiltering : 16u);
SetDirtyValue(dirty, samplerDesc.anisotropyEnabled, anisotropyEnabled); SetDirtyValue(dirty, samplerDesc.anisotropyEnabled, anisotropyEnabled);
SetDirtyValue(dirty, samplerDesc.borderColor, borderColor); SetDirtyValue(dirty, samplerDesc.borderColor, borderColor);