mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-03-12 22:56:52 +01:00
Eliminate SamplerCommon
This commit is contained in:
parent
3096f77ba0
commit
6236a0d494
@ -644,7 +644,6 @@
|
||||
<ClInclude Include="VideoCommon\PostProcessing.h" />
|
||||
<ClInclude Include="VideoCommon\RenderBase.h" />
|
||||
<ClInclude Include="VideoCommon\RenderState.h" />
|
||||
<ClInclude Include="VideoCommon\SamplerCommon.h" />
|
||||
<ClInclude Include="VideoCommon\ShaderCache.h" />
|
||||
<ClInclude Include="VideoCommon\ShaderGenCommon.h" />
|
||||
<ClInclude Include="VideoCommon\Statistics.h" />
|
||||
|
@ -7,7 +7,6 @@
|
||||
#include <memory>
|
||||
|
||||
#include "Common/CommonTypes.h"
|
||||
#include "VideoCommon/SamplerCommon.h"
|
||||
#include "VideoCommon/VideoConfig.h"
|
||||
|
||||
namespace OGL
|
||||
|
@ -70,7 +70,6 @@ add_library(videocommon
|
||||
RenderBase.h
|
||||
RenderState.cpp
|
||||
RenderState.h
|
||||
SamplerCommon.h
|
||||
ShaderCache.cpp
|
||||
ShaderCache.h
|
||||
ShaderGenCommon.cpp
|
||||
|
@ -1,20 +0,0 @@
|
||||
// Copyright 2016 Dolphin Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
namespace SamplerCommon
|
||||
{
|
||||
// Helper for checking if a BPMemory TexMode0 register is set to Point
|
||||
// Filtering modes. This is used to decide whether Anisotropic enhancements
|
||||
// are (mostly) safe in the VideoBackends.
|
||||
// If both the minification and magnification filters are set to POINT modes
|
||||
// then applying anisotropic filtering is equivalent to forced filtering. Point
|
||||
// mode textures are usually some sort of 2D UI billboard which will end up
|
||||
// misaligned from the correct pixels when filtered anisotropically.
|
||||
template <class T>
|
||||
constexpr bool IsBpTexMode0PointFiltering(const T& tm0)
|
||||
{
|
||||
return tm0.min_filter == FilterMode::Near && tm0.mag_filter == FilterMode::Near;
|
||||
}
|
||||
} // namespace SamplerCommon
|
@ -40,7 +40,6 @@
|
||||
#include "VideoCommon/OpcodeDecoding.h"
|
||||
#include "VideoCommon/PixelShaderManager.h"
|
||||
#include "VideoCommon/RenderBase.h"
|
||||
#include "VideoCommon/SamplerCommon.h"
|
||||
#include "VideoCommon/ShaderCache.h"
|
||||
#include "VideoCommon/Statistics.h"
|
||||
#include "VideoCommon/TMEM.h"
|
||||
@ -966,6 +965,18 @@ void TextureCacheBase::DumpTexture(TCacheEntry* entry, std::string basename, uns
|
||||
entry->texture->Save(filename, level);
|
||||
}
|
||||
|
||||
// Helper for checking if a BPMemory TexMode0 register is set to Point
|
||||
// Filtering modes. This is used to decide whether Anisotropic enhancements
|
||||
// are (mostly) safe in the VideoBackends.
|
||||
// If both the minification and magnification filters are set to POINT modes
|
||||
// then applying anisotropic filtering is equivalent to forced filtering. Point
|
||||
// mode textures are usually some sort of 2D UI billboard which will end up
|
||||
// misaligned from the correct pixels when filtered anisotropically.
|
||||
static bool IsAnisostropicEnhancementSafe(const TexMode0& tm0)
|
||||
{
|
||||
return !(tm0.min_filter == FilterMode::Near && tm0.mag_filter == FilterMode::Near);
|
||||
}
|
||||
|
||||
static void SetSamplerState(u32 index, float custom_tex_scale, bool custom_tex,
|
||||
bool has_arbitrary_mips)
|
||||
{
|
||||
@ -988,7 +999,7 @@ static void SetSamplerState(u32 index, float custom_tex_scale, bool custom_tex,
|
||||
state.max_lod = 255;
|
||||
|
||||
// Anisotropic filtering option.
|
||||
if (g_ActiveConfig.iMaxAnisotropy != 0 && !SamplerCommon::IsBpTexMode0PointFiltering(tm0))
|
||||
if (g_ActiveConfig.iMaxAnisotropy != 0 && IsAnisostropicEnhancementSafe(tm0))
|
||||
{
|
||||
// https://www.opengl.org/registry/specs/EXT/texture_filter_anisotropic.txt
|
||||
// For predictable results on all hardware/drivers, only use one of:
|
||||
|
@ -27,7 +27,6 @@
|
||||
#include "VideoCommon/PerfQueryBase.h"
|
||||
#include "VideoCommon/PixelShaderManager.h"
|
||||
#include "VideoCommon/RenderBase.h"
|
||||
#include "VideoCommon/SamplerCommon.h"
|
||||
#include "VideoCommon/Statistics.h"
|
||||
#include "VideoCommon/TextureCacheBase.h"
|
||||
#include "VideoCommon/VertexLoaderManager.h"
|
||||
|
Loading…
x
Reference in New Issue
Block a user