GPU: Make perspective-correct color interpolation toggleable

This commit is contained in:
Connor McLaughlin
2022-10-03 20:03:30 +10:00
parent 6af5a2486c
commit 971bba07d6
20 changed files with 145 additions and 80 deletions

View File

@ -3448,21 +3448,24 @@ void FullscreenUI::DrawDisplaySettingsPage()
const bool pgxp_enabled = GetEffectiveBoolSetting(bsi, "GPU", "PGXPEnable", false);
const bool texture_correction_enabled = GetEffectiveBoolSetting(bsi, "GPU", "PGXPTextureCorrection", true);
DrawToggleSetting(bsi, "PGXP Texture Correction",
"Uses perspective-correct interpolation for texture coordinates and colors, straightening out "
"warped textures.",
"GPU", "PGXPTextureCorrection", true, pgxp_enabled);
DrawToggleSetting(bsi, "PGXP Culling Correction",
DrawToggleSetting(
bsi, "Perspective Correct Textures",
"Uses perspective-correct interpolation for texture coordinates, straightening out warped textures.", "GPU",
"PGXPTextureCorrection", true, pgxp_enabled);
DrawToggleSetting(bsi, "Perspective Correct Colors",
"Uses perspective-correct interpolation for colors, which can improve visuals in some games.",
"GPU", "PGXPColorCorrection", false, pgxp_enabled);
DrawToggleSetting(bsi, "Culling Correction",
"Increases the precision of polygon culling, reducing the number of holes in geometry.", "GPU",
"PGXPCulling", true, pgxp_enabled);
DrawToggleSetting(bsi, "PGXP Preserve Projection Precision",
DrawToggleSetting(bsi, "Preserve Projection Precision",
"Adds additional precision to PGXP data post-projection. May improve visuals in some games.", "GPU",
"PGXPPreserveProjFP", false, pgxp_enabled);
DrawToggleSetting(bsi, "PGXP Depth Buffer",
DrawToggleSetting(bsi, "Depth Buffer",
"Reduces polygon Z-fighting through depth testing. Low compatibility with games.", "GPU",
"PGXPDepthBuffer", false, pgxp_enabled && texture_correction_enabled);
DrawToggleSetting(bsi, "PGXP CPU Mode", "Uses PGXP for all instructions, not just memory operations.", "GPU",
"PGXPCPU", false, pgxp_enabled);
DrawToggleSetting(bsi, "CPU Mode", "Uses PGXP for all instructions, not just memory operations.", "GPU", "PGXPCPU",
false, pgxp_enabled);
MenuHeading("Texture Replacements");

View File

@ -292,6 +292,8 @@ void ImGuiManager::DrawEnhancementsOverlay()
text.AppendString("/Cull");
if (g_settings.gpu_pgxp_texture_correction)
text.AppendString("/Tex");
if (g_settings.gpu_pgxp_color_correction)
text.AppendString("/Col");
if (g_settings.gpu_pgxp_vertex_cache)
text.AppendString("/VC");
if (g_settings.gpu_pgxp_cpu)