Qt: Move downsampling to enhancement settings

This commit is contained in:
Connor McLaughlin 2022-10-13 17:48:31 +10:00
parent 98ef639c0a
commit cc3fadba14
6 changed files with 44 additions and 43 deletions

View File

@ -764,9 +764,9 @@ bool CDROM::HasPendingDiscEvent() const
TickCount CDROM::GetAckDelayForCommand(Command command) TickCount CDROM::GetAckDelayForCommand(Command command)
{ {
if (command == Command::Init) if (command == Command::Reset)
{ {
// Init takes longer. // Full reset takes longer.
return 120000; return 120000;
} }
@ -1349,11 +1349,11 @@ void CDROM::ExecuteCommand(TickCount ticks_late)
return; return;
} }
case Command::Reset: case Command::Init:
{ {
Log_DebugPrintf("CDROM reset command"); Log_DebugPrintf("CDROM reset command");
if (m_command_second_response == Command::Reset) if (m_command_second_response == Command::Init)
{ {
// still pending // still pending
EndCommand(); EndCommand();
@ -1367,7 +1367,7 @@ void CDROM::ExecuteCommand(TickCount ticks_late)
SoftReset(ticks_late); SoftReset(ticks_late);
QueueCommandSecondResponse(Command::Reset, RESET_TICKS); QueueCommandSecondResponse(Command::Init, INIT_TICKS);
return; return;
} }
break; break;
@ -1666,7 +1666,7 @@ void CDROM::ExecuteCommandSecondResponse(TickCount ticks_late)
case Command::ReadTOC: case Command::ReadTOC:
case Command::Pause: case Command::Pause:
case Command::Reset: case Command::Init:
case Command::MotorOn: case Command::MotorOn:
case Command::Stop: case Command::Stop:
DoStatSecondResponse(); DoStatSecondResponse();

View File

@ -82,7 +82,7 @@ private:
AUDIO_FIFO_SIZE = 44100 * 2, AUDIO_FIFO_SIZE = 44100 * 2,
AUDIO_FIFO_LOW_WATERMARK = 10, AUDIO_FIFO_LOW_WATERMARK = 10,
RESET_TICKS = 400000, INIT_TICKS = 400000,
ID_READ_TICKS = 33868, ID_READ_TICKS = 33868,
MOTOR_ON_RESPONSE_TICKS = 400000, MOTOR_ON_RESPONSE_TICKS = 400000,
@ -113,7 +113,7 @@ private:
MotorOn = 0x07, MotorOn = 0x07,
Stop = 0x08, Stop = 0x08,
Pause = 0x09, Pause = 0x09,
Reset = 0x0A, Init = 0x0A,
Mute = 0x0B, Mute = 0x0B,
Demute = 0x0C, Demute = 0x0C,
Setfilter = 0x0D, Setfilter = 0x0D,
@ -131,7 +131,7 @@ private:
Test = 0x19, Test = 0x19,
GetID = 0x1A, GetID = 0x1A,
ReadS = 0x1B, ReadS = 0x1B,
Init = 0x1C, Reset = 0x1C,
GetQ = 0x1D, GetQ = 0x1D,
ReadTOC = 0x1E, ReadTOC = 0x1E,
VideoCD = 0x1F, VideoCD = 0x1F,

View File

@ -39,9 +39,6 @@ DisplaySettingsWidget::DisplaySettingsWidget(SettingsDialog* dialog, QWidget* pa
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.displayAlignment, "Display", "Alignment", SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.displayAlignment, "Display", "Alignment",
&Settings::ParseDisplayAlignment, &Settings::GetDisplayAlignmentName, &Settings::ParseDisplayAlignment, &Settings::GetDisplayAlignmentName,
Settings::DEFAULT_DISPLAY_ALIGNMENT); Settings::DEFAULT_DISPLAY_ALIGNMENT);
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.gpuDownsampleMode, "GPU", "DownsampleMode",
&Settings::ParseDownsampleModeName, &Settings::GetDownsampleModeName,
Settings::DEFAULT_GPU_DOWNSAMPLE_MODE);
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.displayLinearFiltering, "Display", "LinearFiltering", true); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.displayLinearFiltering, "Display", "LinearFiltering", true);
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.displayIntegerScaling, "Display", "IntegerScaling", false); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.displayIntegerScaling, "Display", "IntegerScaling", false);
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.displayStretch, "Display", "Stretch", false); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.displayStretch, "Display", "Stretch", false);
@ -102,10 +99,6 @@ DisplaySettingsWidget::DisplaySettingsWidget(SettingsDialog* dialog, QWidget* pa
m_ui.displayAlignment, tr("Position"), m_ui.displayAlignment, tr("Position"),
qApp->translate("DisplayCropMode", Settings::GetDisplayAlignmentDisplayName(Settings::DEFAULT_DISPLAY_ALIGNMENT)), qApp->translate("DisplayCropMode", Settings::GetDisplayAlignmentDisplayName(Settings::DEFAULT_DISPLAY_ALIGNMENT)),
tr("Determines the position on the screen when black borders must be added.")); tr("Determines the position on the screen when black borders must be added."));
dialog->registerWidgetHelp(
m_ui.gpuDownsampleMode, tr("Downsampling"), tr("Disabled"),
tr("Downsamples the rendered image prior to displaying it. Can improve overall image quality in mixed 2D/3D games, "
"but should be disabled for pure 3D games. Only applies to the hardware renderers."));
dialog->registerWidgetHelp(m_ui.displayLinearFiltering, tr("Linear Upscaling"), tr("Checked"), dialog->registerWidgetHelp(m_ui.displayLinearFiltering, tr("Linear Upscaling"), tr("Checked"),
tr("Uses bilinear texture filtering when displaying the console's framebuffer to the " tr("Uses bilinear texture filtering when displaying the console's framebuffer to the "
"screen. <br>Disabling filtering " "screen. <br>Disabling filtering "
@ -189,12 +182,6 @@ void DisplaySettingsWidget::setupAdditionalUi()
m_ui.displayAlignment->addItem( m_ui.displayAlignment->addItem(
qApp->translate("DisplayAlignment", Settings::GetDisplayAlignmentDisplayName(static_cast<DisplayAlignment>(i)))); qApp->translate("DisplayAlignment", Settings::GetDisplayAlignmentDisplayName(static_cast<DisplayAlignment>(i))));
} }
for (u32 i = 0; i < static_cast<u32>(GPUDownsampleMode::Count); i++)
{
m_ui.gpuDownsampleMode->addItem(
qApp->translate("GPUDownsampleMode", Settings::GetDownsampleModeDisplayName(static_cast<GPUDownsampleMode>(i))));
}
} }
void DisplaySettingsWidget::populateGPUAdaptersAndResolutions() void DisplaySettingsWidget::populateGPUAdaptersAndResolutions()

View File

@ -154,17 +154,17 @@
<item row="1" column="1"> <item row="1" column="1">
<widget class="QComboBox" name="displayCropMode"/> <widget class="QComboBox" name="displayCropMode"/>
</item> </item>
<item row="3" column="0"> <item row="2" column="0">
<widget class="QLabel" name="label_6"> <widget class="QLabel" name="label_7">
<property name="text"> <property name="text">
<string>Downsampling:</string> <string>Position:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="1"> <item row="2" column="1">
<widget class="QComboBox" name="gpuDownsampleMode"/> <widget class="QComboBox" name="displayAlignment"/>
</item> </item>
<item row="4" column="0" colspan="2"> <item row="3" column="0" colspan="2">
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="0" column="0"> <item row="0" column="0">
<widget class="QCheckBox" name="displayIntegerScaling"> <widget class="QCheckBox" name="displayIntegerScaling">
@ -196,16 +196,6 @@
</item> </item>
</layout> </layout>
</item> </item>
<item row="2" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Position:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="displayAlignment"/>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>

View File

@ -14,6 +14,9 @@ EnhancementSettingsWidget::EnhancementSettingsWidget(SettingsDialog* dialog, QWi
setupAdditionalUi(); setupAdditionalUi();
SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.resolutionScale, "GPU", "ResolutionScale", 1); SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.resolutionScale, "GPU", "ResolutionScale", 1);
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.gpuDownsampleMode, "GPU", "DownsampleMode",
&Settings::ParseDownsampleModeName, &Settings::GetDownsampleModeName,
Settings::DEFAULT_GPU_DOWNSAMPLE_MODE);
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.trueColor, "GPU", "TrueColor", false); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.trueColor, "GPU", "TrueColor", false);
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.scaledDithering, "GPU", "ScaledDithering", false); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.scaledDithering, "GPU", "ScaledDithering", false);
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.disableInterlacing, "GPU", "DisableInterlacing", true); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.disableInterlacing, "GPU", "DisableInterlacing", true);
@ -41,9 +44,14 @@ EnhancementSettingsWidget::EnhancementSettingsWidget(SettingsDialog* dialog, QWi
updateScaledDitheringEnabled(); updateScaledDitheringEnabled();
connect(m_ui.pgxpEnable, &QCheckBox::stateChanged, this, &EnhancementSettingsWidget::updatePGXPSettingsEnabled); connect(m_ui.pgxpEnable, &QCheckBox::stateChanged, this, &EnhancementSettingsWidget::updatePGXPSettingsEnabled);
connect(m_ui.pgxpTextureCorrection, &QCheckBox::stateChanged, this, &EnhancementSettingsWidget::updatePGXPSettingsEnabled); connect(m_ui.pgxpTextureCorrection, &QCheckBox::stateChanged, this,
&EnhancementSettingsWidget::updatePGXPSettingsEnabled);
updatePGXPSettingsEnabled(); updatePGXPSettingsEnabled();
dialog->registerWidgetHelp(
m_ui.gpuDownsampleMode, tr("Downsampling"), tr("Disabled"),
tr("Downsamples the rendered image prior to displaying it. Can improve overall image quality in mixed 2D/3D games, "
"but should be disabled for pure 3D games. Only applies to the hardware renderers."));
dialog->registerWidgetHelp( dialog->registerWidgetHelp(
m_ui.disableInterlacing, tr("Disable Interlacing (force progressive render/scan)"), tr("Unchecked"), m_ui.disableInterlacing, tr("Disable Interlacing (force progressive render/scan)"), tr("Unchecked"),
tr( tr(
@ -139,6 +147,12 @@ void EnhancementSettingsWidget::setupAdditionalUi()
m_ui.textureFiltering->addItem( m_ui.textureFiltering->addItem(
qApp->translate("GPUTextureFilter", Settings::GetTextureFilterDisplayName(static_cast<GPUTextureFilter>(i)))); qApp->translate("GPUTextureFilter", Settings::GetTextureFilterDisplayName(static_cast<GPUTextureFilter>(i))));
} }
for (u32 i = 0; i < static_cast<u32>(GPUDownsampleMode::Count); i++)
{
m_ui.gpuDownsampleMode->addItem(
qApp->translate("GPUDownsampleMode", Settings::GetDownsampleModeDisplayName(static_cast<GPUDownsampleMode>(i))));
}
} }
void EnhancementSettingsWidget::updatePGXPSettingsEnabled() void EnhancementSettingsWidget::updatePGXPSettingsEnabled()

View File

@ -52,34 +52,44 @@
<item row="2" column="1"> <item row="2" column="1">
<widget class="QComboBox" name="textureFiltering"/> <widget class="QComboBox" name="textureFiltering"/>
</item> </item>
<item row="3" column="0" colspan="2"> <item row="4" column="0" colspan="2">
<widget class="QCheckBox" name="trueColor"> <widget class="QCheckBox" name="trueColor">
<property name="text"> <property name="text">
<string>True Color Rendering (24-bit, disables dithering)</string> <string>True Color Rendering (24-bit, disables dithering)</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="0" colspan="2"> <item row="5" column="0" colspan="2">
<widget class="QCheckBox" name="scaledDithering"> <widget class="QCheckBox" name="scaledDithering">
<property name="text"> <property name="text">
<string>Scaled Dithering (scale dither pattern to resolution)</string> <string>Scaled Dithering (scale dither pattern to resolution)</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="5" column="0" colspan="2"> <item row="6" column="0" colspan="2">
<widget class="QCheckBox" name="widescreenHack"> <widget class="QCheckBox" name="widescreenHack">
<property name="text"> <property name="text">
<string>Widescreen Hack (render 3D in display aspect ratio)</string> <string>Widescreen Hack (render 3D in display aspect ratio)</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="6" column="0" colspan="2"> <item row="7" column="0" colspan="2">
<widget class="QCheckBox" name="useSoftwareRendererForReadbacks"> <widget class="QCheckBox" name="useSoftwareRendererForReadbacks">
<property name="text"> <property name="text">
<string>Software Renderer Readbacks (run in parallel for VRAM-&gt;CPU transfers)</string> <string>Software Renderer Readbacks (run in parallel for VRAM-&gt;CPU transfers)</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Downsampling:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="gpuDownsampleMode"/>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>