[GPU] Add anisotropic filtering override
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
#include "xenia/base/cvar.h"
|
||||
#include "xenia/base/math.h"
|
||||
#include "xenia/gpu/dxbc_shader.h"
|
||||
#include "xenia/gpu/gpu_flags.h"
|
||||
#include "xenia/gpu/xenos.h"
|
||||
#include "xenia/ui/graphics_provider.h"
|
||||
|
||||
@@ -1378,7 +1379,10 @@ void DxbcShaderTranslator::PostTranslation() {
|
||||
shader_binding.mag_filter = translator_binding.mag_filter;
|
||||
shader_binding.min_filter = translator_binding.min_filter;
|
||||
shader_binding.mip_filter = translator_binding.mip_filter;
|
||||
shader_binding.aniso_filter = translator_binding.aniso_filter;
|
||||
shader_binding.aniso_filter =
|
||||
cvars::anisotropic_override > -1 && cvars::anisotropic_override < 6
|
||||
? xenos::AnisoFilter(cvars::anisotropic_override)
|
||||
: translator_binding.aniso_filter;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,3 +70,15 @@ DEFINE_int32(
|
||||
"Set to higher number than query_occlusion_sample_lower_threshold. This "
|
||||
"value is ignored if query_occlusion_sample_lower_threshold is set to -1.",
|
||||
"GPU");
|
||||
|
||||
DEFINE_int32(anisotropic_override, -1,
|
||||
"Level of anisotropic filtering enforced on all texture fetch "
|
||||
"instructions.\n"
|
||||
" -1 = No override\n"
|
||||
" 0 = Disable anisotropic filtering\n"
|
||||
" 1 = Force 1x anisotropic filtering\n"
|
||||
" 2 = Force 2x anisotropic filtering\n"
|
||||
" 3 = Force 4x anisotropic filtering\n"
|
||||
" 4 = Force 8x anisotropic filtering\n"
|
||||
" 5 = Force 16x anisotropic filtering",
|
||||
"GPU");
|
||||
|
||||
@@ -30,6 +30,8 @@ DECLARE_int32(query_occlusion_sample_lower_threshold);
|
||||
|
||||
DECLARE_int32(query_occlusion_sample_upper_threshold);
|
||||
|
||||
DECLARE_int32(anisotropic_override);
|
||||
|
||||
DECLARE_bool(disassemble_pm4);
|
||||
|
||||
#define XE_GPU_FINE_GRAINED_DRAW_SCOPES 1
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
#include "xenia/base/assert.h"
|
||||
#include "xenia/base/math.h"
|
||||
#include "xenia/base/string_buffer.h"
|
||||
#include "xenia/gpu/gpu_flags.h"
|
||||
#include "xenia/gpu/spirv_shader.h"
|
||||
|
||||
namespace xe {
|
||||
@@ -807,7 +808,10 @@ void SpirvShaderTranslator::PostTranslation() {
|
||||
shader_binding.mag_filter = translator_binding.mag_filter;
|
||||
shader_binding.min_filter = translator_binding.min_filter;
|
||||
shader_binding.mip_filter = translator_binding.mip_filter;
|
||||
shader_binding.aniso_filter = translator_binding.aniso_filter;
|
||||
shader_binding.aniso_filter =
|
||||
cvars::anisotropic_override > -1 && cvars::anisotropic_override < 6
|
||||
? xenos::AnisoFilter(cvars::anisotropic_override)
|
||||
: translator_binding.aniso_filter;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user