Skip to content

Commit e374ebe

Browse files
committed
GS: Add new filtering mode to reduce UI blur.
1 parent f28c488 commit e374ebe

File tree

4 files changed

+13
-1
lines changed

4 files changed

+13
-1
lines changed

pcsx2-qt/Settings/GraphicsHardwareRenderingSettingsTab.ui

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,11 @@
121121
<string>Bilinear (Forced excluding sprite)</string>
122122
</property>
123123
</item>
124+
<item>
125+
<property name="text">
126+
<string>Bilinear (PS2 except flat nearest)</string>
127+
</property>
128+
</item>
124129
</widget>
125130
</item>
126131
<item row="4" column="0">

pcsx2-qt/Settings/GraphicsSettingsWidget.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,8 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* settings_dialog,
497497
"Nearest: Makes no attempt to blend colors.<br> "
498498
"Bilinear (Forced): Will blend colors together to remove harsh edges between different colored pixels even if the game told the PS2 not to.<br> "
499499
"Bilinear (PS2): Will apply filtering to all surfaces that a game instructs the PS2 to filter.<br> "
500-
"Bilinear (Forced Excluding Sprites): Will apply filtering to all surfaces, even if the game told the PS2 not to, except sprites."));
500+
"Bilinear (Forced Excluding Sprites): Will apply filtering to all surfaces, even if the game told the PS2 not to, except sprites.<br>",
501+
"Bilinear (PS2 Except Flat Nearest): Will apply filtering to all surfaces that a game instructs the PS2 to filter, with the exception of flat draws that will be forced to nearest."));
501502

502503
dialog()->registerWidgetHelp(m_hw.trilinearFiltering, tr("Trilinear Filtering"), tr("Automatic (Default)"),
503504
tr("Reduces blurriness of large textures applied to small, steeply angled surfaces by sampling colors from the two nearest Mipmaps. Requires Mipmapping to be 'on'.<br> "

pcsx2/Config.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,7 @@ enum class BiFiltering : u8
317317
Forced,
318318
PS2,
319319
Forced_But_Sprite,
320+
PS2_But_Flat_Nearest,
320321
};
321322

322323
enum class TriFiltering : s8

pcsx2/GS/Renderers/Common/GSVertexTrace.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,11 @@ void GSVertexTrace::Update(const void* vertex, const u16* index, int v_count, in
112112
m_filter.opt_linear = (m_primclass == GS_SPRITE_CLASS) ? m_filter.linear : 1;
113113
break;
114114

115+
case BiFiltering::PS2_But_Flat_Nearest:
116+
// Special case to reduce UI blurriness when upscaling is enabled
117+
m_filter.opt_linear = m_eq.z ? 0 : m_filter.linear;
118+
break;
119+
115120
case BiFiltering::Forced:
116121
m_filter.opt_linear = 1;
117122
break;

0 commit comments

Comments
 (0)