@@ -1909,6 +1909,34 @@ bool MenuCommon::RenderMenu()
1909
1909
1910
1910
if (currentBackend == " fsr31" || currentBackend == " fsr31_12" )
1911
1911
{
1912
+ if (bool nlSRGB = Config::Instance ()->FsrNonLinearSRGB .value_or_default (); ImGui::Checkbox (" FSR Non-Linear sRGB Input" , &nlSRGB))
1913
+ {
1914
+ Config::Instance ()->FsrNonLinearSRGB = nlSRGB;
1915
+
1916
+ if (nlSRGB)
1917
+ Config::Instance ()->FsrNonLinearPQ = false ;
1918
+
1919
+ State::Instance ().newBackend = currentBackend;
1920
+ for (auto & singleChangeBackend : State::Instance ().changeBackend )
1921
+ singleChangeBackend.second = true ;
1922
+ }
1923
+ ShowHelpMarker (" Indicates input color resource contains perceptual sRGB colors\n "
1924
+ " Might improve upscaling quality of FSR4" );
1925
+
1926
+ if (bool nlPQ = Config::Instance ()->FsrNonLinearPQ .value_or_default (); ImGui::Checkbox (" FSR Non-Linear PQ Input" , &nlPQ))
1927
+ {
1928
+ Config::Instance ()->FsrNonLinearPQ = nlPQ;
1929
+
1930
+ if (nlPQ)
1931
+ Config::Instance ()->FsrNonLinearSRGB = false ;
1932
+
1933
+ State::Instance ().newBackend = currentBackend;
1934
+ for (auto & singleChangeBackend : State::Instance ().changeBackend )
1935
+ singleChangeBackend.second = true ;
1936
+ }
1937
+ ShowHelpMarker (" Indicates input color resource contains perceptual PQ colors\n "
1938
+ " Might improve upscaling quality of FSR4" );
1939
+
1912
1940
if (bool dView = Config::Instance ()->FsrDebugView .value_or_default (); ImGui::Checkbox (" FSR 3.X Debug View" , &dView))
1913
1941
Config::Instance ()->FsrDebugView = dView;
1914
1942
ShowHelpMarker (" Top left: Dilated Motion Vectors\n "
@@ -2310,7 +2338,7 @@ bool MenuCommon::RenderMenu()
2310
2338
if (State::Instance ().api == DX12 || State::Instance ().api == DX11)
2311
2339
{
2312
2340
// if motion vectors are not display size
2313
- ImGui::BeginDisabled (!Config::Instance ()->DisplayResolution .value_or (false ) && !State::Instance ().DisplaySizeMV .value_or (false ) &&
2341
+ ImGui::BeginDisabled (!Config::Instance ()->DisplayResolution .value_or (false ) && !State::Instance ().DisplaySizeMV .value_or (false ) &&
2314
2342
!(State::Instance ().currentFeature ->GetFeatureFlags () & NVSDK_NGX_DLSS_Feature_Flags_MVLowRes));
2315
2343
2316
2344
ImGui::SeparatorText (" Output Scaling" );
@@ -2389,7 +2417,7 @@ bool MenuCommon::RenderMenu()
2389
2417
if (currentFeature != nullptr )
2390
2418
{
2391
2419
ImGui::Text (" Output Scaling is %s, target res: %dx%d" , Config::Instance ()->OutputScalingEnabled .value_or_default () ? " ENABLED" : " DISABLED" ,
2392
- (uint32_t )(currentFeature->DisplayWidth () * _ssRatio), (uint32_t )(currentFeature->DisplayHeight () * _ssRatio));
2420
+ (uint32_t )(currentFeature->DisplayWidth () * _ssRatio), (uint32_t )(currentFeature->DisplayHeight () * _ssRatio));
2393
2421
}
2394
2422
2395
2423
ImGui::EndDisabled ();
@@ -2416,7 +2444,7 @@ bool MenuCommon::RenderMenu()
2416
2444
}
2417
2445
}
2418
2446
ShowHelpMarker (" Ignores the value sent by the game\n "
2419
- " and uses the value set below" );
2447
+ " and uses the value set below" );
2420
2448
2421
2449
ImGui::BeginDisabled (!Config::Instance ()->OverrideSharpness .value_or_default ());
2422
2450
@@ -2435,9 +2463,9 @@ bool MenuCommon::RenderMenu()
2435
2463
if (bool upOverride = Config::Instance ()->UpscaleRatioOverrideEnabled .value_or_default (); ImGui::Checkbox (" Ratio Override" , &upOverride))
2436
2464
Config::Instance ()->UpscaleRatioOverrideEnabled = upOverride;
2437
2465
ShowHelpMarker (" Let's you override every upscaler preset\n "
2438
- " with a value set below\n\n "
2439
- " 1.5x on a 1080p screen means internal resolution of 720p\n "
2440
- " 1080 / 1.5 = 720" );
2466
+ " with a value set below\n\n "
2467
+ " 1.5x on a 1080p screen means internal resolution of 720p\n "
2468
+ " 1080 / 1.5 = 720" );
2441
2469
2442
2470
ImGui::BeginDisabled (!Config::Instance ()->UpscaleRatioOverrideEnabled .value_or_default ());
2443
2471
@@ -2453,9 +2481,9 @@ bool MenuCommon::RenderMenu()
2453
2481
if (bool qOverride = Config::Instance ()->QualityRatioOverrideEnabled .value_or_default (); ImGui::Checkbox (" Quality Override" , &qOverride))
2454
2482
Config::Instance ()->QualityRatioOverrideEnabled = qOverride;
2455
2483
ShowHelpMarker (" Let's you override each preset's ratio individually\n "
2456
- " Note that not every game supports every quality preset\n\n "
2457
- " 1.5x on a 1080p screen means internal resolution of 720p\n "
2458
- " 1080 / 1.5 = 720" );
2484
+ " Note that not every game supports every quality preset\n\n "
2485
+ " 1.5x on a 1080p screen means internal resolution of 720p\n "
2486
+ " 1080 / 1.5 = 720" );
2459
2487
2460
2488
ImGui::BeginDisabled (!Config::Instance ()->QualityRatioOverrideEnabled .value_or_default ());
2461
2489
@@ -2520,7 +2548,7 @@ bool MenuCommon::RenderMenu()
2520
2548
singleChangeBackend.second = true ;
2521
2549
}
2522
2550
ShowHelpMarker (" Some Unreal Engine games need this\n "
2523
- " Might fix colors, especially in dark areas" );
2551
+ " Might fix colors, especially in dark areas" );
2524
2552
2525
2553
ImGui::TableNextColumn ();
2526
2554
if (bool hdr = Config::Instance ()->HDR .value_or (false ); ImGui::Checkbox (" HDR" , &hdr))
@@ -2596,7 +2624,7 @@ bool MenuCommon::RenderMenu()
2596
2624
singleChangeBackend.second = true ;
2597
2625
}
2598
2626
ShowHelpMarker (" Mostly a fix for Unreal Engine games\n "
2599
- " Top left part of the screen will be blurry" );
2627
+ " Top left part of the screen will be blurry" );
2600
2628
2601
2629
ImGui::TableNextColumn ();
2602
2630
auto accessToReactiveMask = State::Instance ().currentFeature ->AccessToReactiveMask ();
@@ -2619,8 +2647,8 @@ bool MenuCommon::RenderMenu()
2619
2647
2620
2648
if (accessToReactiveMask)
2621
2649
ShowHelpMarker (" Allows the use of a reactive mask\n "
2622
- " Keep in mind that a reactive mask sent to DLSS\n "
2623
- " will not produce a good image in combination with FSR/XeSS" );
2650
+ " Keep in mind that a reactive mask sent to DLSS\n "
2651
+ " will not produce a good image in combination with FSR/XeSS" );
2624
2652
else
2625
2653
ShowHelpMarker (" Option disabled because tha game doesn't provide a reactive mask" );
2626
2654
@@ -2707,8 +2735,8 @@ bool MenuCommon::RenderMenu()
2707
2735
Config::Instance ()->ExtendedLimits = extendedLimits;
2708
2736
2709
2737
ShowHelpMarker (" Extended sliders limit for quality presets\n\n "
2710
- " Using this option changes resolution detection logic\n "
2711
- " and might cause issues and crashes!" );
2738
+ " Using this option changes resolution detection logic\n "
2739
+ " and might cause issues and crashes!" );
2712
2740
}
2713
2741
2714
2742
bool pcShaders = Config::Instance ()->UsePrecompiledShaders .value_or_default ();
0 commit comments