mirror of https://github.com/PCSX2/pcsx2.git
GS: Force min/mag linear when trilinear is forced
Trilinear implies that min/mag will be linear. Less confusing, makes sense, and the min/mag point + mip linear case is currently not handled properly with regard to the GS registers.
This commit is contained in:
parent
ddbdfd47be
commit
5987e03463
|
@ -146,7 +146,9 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsDialog* dialog, QWidget*
|
||||||
SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.texturePreloading, "EmuCore/GS", "texture_preloading",
|
SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.texturePreloading, "EmuCore/GS", "texture_preloading",
|
||||||
static_cast<int>(TexturePreloadingLevel::Off));
|
static_cast<int>(TexturePreloadingLevel::Off));
|
||||||
|
|
||||||
|
connect(m_ui.trilinearFiltering, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &GraphicsSettingsWidget::onTrilinearFilteringChanged);
|
||||||
connect(m_ui.gpuPaletteConversion, QOverload<int>::of(&QCheckBox::stateChanged), this, &GraphicsSettingsWidget::onGpuPaletteConversionChanged);
|
connect(m_ui.gpuPaletteConversion, QOverload<int>::of(&QCheckBox::stateChanged), this, &GraphicsSettingsWidget::onGpuPaletteConversionChanged);
|
||||||
|
onTrilinearFilteringChanged();
|
||||||
onGpuPaletteConversionChanged(m_ui.gpuPaletteConversion->checkState());
|
onGpuPaletteConversionChanged(m_ui.gpuPaletteConversion->checkState());
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -290,7 +292,18 @@ void GraphicsSettingsWidget::onFullscreenModeChanged(int index)
|
||||||
g_emu_thread->applySettings();
|
g_emu_thread->applySettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GraphicsSettingsWidget::onIntegerScalingChanged() { m_ui.bilinearFiltering->setEnabled(!m_ui.integerScaling->isChecked()); }
|
void GraphicsSettingsWidget::onIntegerScalingChanged()
|
||||||
|
{
|
||||||
|
m_ui.bilinearFiltering->setEnabled(!m_ui.integerScaling->isChecked());
|
||||||
|
}
|
||||||
|
|
||||||
|
void GraphicsSettingsWidget::onTrilinearFilteringChanged()
|
||||||
|
{
|
||||||
|
const bool forced_bilinear =
|
||||||
|
(m_dialog->getEffectiveIntValue("EmuCore/GS", "UserHacks_TriFilter", static_cast<int>(TriFiltering::Automatic))
|
||||||
|
>= static_cast<int>(TriFiltering::Forced));
|
||||||
|
m_ui.textureFiltering->setDisabled(forced_bilinear);
|
||||||
|
}
|
||||||
|
|
||||||
void GraphicsSettingsWidget::onShadeBoostChanged()
|
void GraphicsSettingsWidget::onShadeBoostChanged()
|
||||||
{
|
{
|
||||||
|
|
|
@ -41,6 +41,7 @@ private Q_SLOTS:
|
||||||
void onAdapterChanged(int index);
|
void onAdapterChanged(int index);
|
||||||
void onEnableHardwareFixesChanged();
|
void onEnableHardwareFixesChanged();
|
||||||
void onIntegerScalingChanged();
|
void onIntegerScalingChanged();
|
||||||
|
void onTrilinearFilteringChanged();
|
||||||
void onGpuPaletteConversionChanged(int state);
|
void onGpuPaletteConversionChanged(int state);
|
||||||
void onFullscreenModeChanged(int index);
|
void onFullscreenModeChanged(int index);
|
||||||
void onShadeBoostChanged();
|
void onShadeBoostChanged();
|
||||||
|
|
|
@ -1055,8 +1055,12 @@ void GSRendererNew::EmulateTextureSampler(const GSTextureCache::Source* tex)
|
||||||
switch (GSConfig.UserHacks_TriFilter)
|
switch (GSConfig.UserHacks_TriFilter)
|
||||||
{
|
{
|
||||||
case TriFiltering::Forced:
|
case TriFiltering::Forced:
|
||||||
|
{
|
||||||
|
// force bilinear otherwise we can end up with min/mag nearest and mip linear.
|
||||||
|
bilinear = true;
|
||||||
trilinear = static_cast<u8>(GS_MIN_FILTER::Linear_Mipmap_Linear);
|
trilinear = static_cast<u8>(GS_MIN_FILTER::Linear_Mipmap_Linear);
|
||||||
trilinear_auto = !need_mipmap || GSConfig.HWMipmap != HWMipmapLevel::Full;
|
trilinear_auto = !need_mipmap || GSConfig.HWMipmap != HWMipmapLevel::Full;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TriFiltering::PS2:
|
case TriFiltering::PS2:
|
||||||
|
|
Loading…
Reference in New Issue