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",
|
||||
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);
|
||||
onTrilinearFilteringChanged();
|
||||
onGpuPaletteConversionChanged(m_ui.gpuPaletteConversion->checkState());
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
@ -290,7 +292,18 @@ void GraphicsSettingsWidget::onFullscreenModeChanged(int index)
|
|||
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()
|
||||
{
|
||||
|
|
|
@ -41,6 +41,7 @@ private Q_SLOTS:
|
|||
void onAdapterChanged(int index);
|
||||
void onEnableHardwareFixesChanged();
|
||||
void onIntegerScalingChanged();
|
||||
void onTrilinearFilteringChanged();
|
||||
void onGpuPaletteConversionChanged(int state);
|
||||
void onFullscreenModeChanged(int index);
|
||||
void onShadeBoostChanged();
|
||||
|
|
|
@ -1055,8 +1055,12 @@ void GSRendererNew::EmulateTextureSampler(const GSTextureCache::Source* tex)
|
|||
switch (GSConfig.UserHacks_TriFilter)
|
||||
{
|
||||
case TriFiltering::Forced:
|
||||
trilinear = static_cast<u8>(GS_MIN_FILTER::Linear_Mipmap_Linear);
|
||||
trilinear_auto = !need_mipmap || GSConfig.HWMipmap != HWMipmapLevel::Full;
|
||||
{
|
||||
// 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_auto = !need_mipmap || GSConfig.HWMipmap != HWMipmapLevel::Full;
|
||||
}
|
||||
break;
|
||||
|
||||
case TriFiltering::PS2:
|
||||
|
|
Loading…
Reference in New Issue