Added quirk for Prey

This commit is contained in:
cdozdil
2025-07-20 19:06:32 +03:00
parent 9c9a61f879
commit 6f7c0366ae
3 changed files with 17 additions and 5 deletions
+6
View File
@@ -973,6 +973,12 @@ static void CheckQuirks()
if (quirks & GameQuirk::DontUseNTShared && !Config::Instance()->DontUseNTShared.has_value())
Config::Instance()->DontUseNTShared.set_volatile_value(true);
if (quirks & GameQuirk::DontUseUnrealBarriers && !Config::Instance()->ColorResourceBarrier.has_value())
Config::Instance()->ColorResourceBarrier.set_volatile_value(128);
if (quirks & GameQuirk::DontUseUnrealBarriers && !Config::Instance()->MVResourceBarrier.has_value())
Config::Instance()->MVResourceBarrier.set_volatile_value(128);
State::Instance().gameQuirks = quirks;
}
+4 -1
View File
@@ -20,6 +20,7 @@ enum class GameQuirk : uint64_t
EnableVulkanExtensionSpoofing,
DisableOptiXessPipelineCreation,
DontUseNTShared,
DontUseUnrealBarriers,
// Quirks that are applied deeper in code
CyberpunkHudlessStateOverride,
@@ -159,7 +160,7 @@ static const QuirkEntry quirkTable[] = {
// Returnal
// no spoof needed for DLSS inputs, but no DLSSG and Reflex
QUIRK_ENTRY("returnal-win64-shipping.exe", GameQuirk::DisableDxgiSpoofing),
QUIRK_ENTRY("returnal-win64-shipping.exe", GameQuirk::DisableDxgiSpoofing, GameQuirk::DontUseUnrealBarriers),
// UNCHARTED: Legacy of Thieves Collection
// no spoof needed for DLSS inputs
@@ -249,6 +250,8 @@ static void printQuirks(flag_set<GameQuirk>& quirks)
spdlog::info("Quirk: Disable custom pipeline creation for XeSS");
if (quirks & GameQuirk::DontUseNTShared)
spdlog::info("Quirk: Don't use NTShared enabled");
if (quirks & GameQuirk::DontUseUnrealBarriers)
spdlog::info("Quirk: Don't use resource barrier fix for Unreal Engine games");
return;
}
@@ -243,14 +243,17 @@ bool XeSSFeatureDx12::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVSDK_N
else
LOG_DEBUG("AutoExposure enabled!");
bool supportsFloatResponsivePixelMask = Version() >= feature_version { 2, 0, 1 };
ID3D12Resource* paramReactiveMask = nullptr;
InParameters->Get("FSR.reactive", &paramReactiveMask);
bool supportsFloatResponsivePixelMask = Version() >= feature_version { 2, 0, 1 };
if (supportsFloatResponsivePixelMask &&
InParameters->Get("FSR.reactive", &paramReactiveMask) == NVSDK_NGX_Result_Success)
if (supportsFloatResponsivePixelMask && paramReactiveMask != nullptr)
{
if (!Config::Instance()->DisableReactiveMask.value_or(!supportsFloatResponsivePixelMask))
if (!Config::Instance()->DisableReactiveMask.value_or(false))
{
LOG_DEBUG("Using FSR reactive mask");
params.pResponsivePixelMaskTexture = paramReactiveMask;
}
}
else
{