Disable reactive mask toggle when there's no reactive mask

This commit is contained in:
FakeMichau
2024-07-16 17:11:03 +02:00
parent 58d9e75c0e
commit a3ab4adeb8
16 changed files with 39 additions and 25 deletions
+2
View File
@@ -22,6 +22,7 @@ protected:
bool _hasDepth = false;
bool _hasMV = false;
bool _hasTM = false;
bool _hasReactiveMask = false;
bool _hasExposure = false;
bool _hasOutput = false;
int _initFlags = 0;
@@ -68,6 +69,7 @@ public:
bool HasDepth() const { return _hasDepth; }
bool HasMV() const { return _hasMV; }
bool HasTM() const { return _hasTM; }
bool HasReactiveMask() const { return _hasReactiveMask; }
bool HasExposure() const { return _hasExposure; }
bool HasOutput() const { return _hasOutput; }
int InitFlags() const { return _initFlags; }
+8 -8
View File
@@ -194,13 +194,13 @@ void IFeature_Dx11wDx12::ReleaseSharedResources()
SAFE_RELEASE(dx11Mv.SharedTexture);
SAFE_RELEASE(dx11Out.SharedTexture);
SAFE_RELEASE(dx11Depth.SharedTexture);
SAFE_RELEASE(dx11Tm.SharedTexture);
SAFE_RELEASE(dx11Reactive.SharedTexture);
SAFE_RELEASE(dx11Exp.SharedTexture);
SAFE_RELEASE(dx11Color.Dx12Resource);
SAFE_RELEASE(dx11Mv.Dx12Resource);
SAFE_RELEASE(dx11Out.Dx12Resource);
SAFE_RELEASE(dx11Depth.Dx12Resource);
SAFE_RELEASE(dx11Tm.Dx12Resource);
SAFE_RELEASE(dx11Reactive.Dx12Resource);
SAFE_RELEASE(dx11Exp.Dx12Resource);
ReleaseSyncResources();
@@ -510,7 +510,7 @@ bool IFeature_Dx11wDx12::ProcessDx11Textures(const NVSDK_NGX_Parameter* InParame
{
spdlog::debug("IFeature_Dx11wDx12::ProcessDx11Textures Bias mask exist..");
if (CopyTextureFrom11To12(paramMask, &dx11Tm, true, Config::Instance()->DontUseNTShared.value_or(false)) == false)
if (CopyTextureFrom11To12(paramMask, &dx11Reactive, true, Config::Instance()->DontUseNTShared.value_or(false)) == false)
return false;
}
// This is only needed for XeSS
@@ -710,12 +710,12 @@ bool IFeature_Dx11wDx12::ProcessDx11Textures(const NVSDK_NGX_Parameter* InParame
dx11Exp.Dx12Handle = dx11Exp.Dx11Handle;
}
if (!Config::Instance()->DisableReactiveMask.value_or(true) && paramMask && dx11Tm.Dx12Handle != dx11Tm.Dx11Handle)
if (!Config::Instance()->DisableReactiveMask.value_or(true) && paramMask && dx11Reactive.Dx12Handle != dx11Reactive.Dx11Handle)
{
if (dx11Tm.Dx12Handle != NULL)
CloseHandle(dx11Tm.Dx12Handle);
if (dx11Reactive.Dx12Handle != NULL)
CloseHandle(dx11Reactive.Dx12Handle);
result = Dx12Device->OpenSharedHandle(dx11Tm.Dx11Handle, IID_PPV_ARGS(&dx11Tm.Dx12Resource));
result = Dx12Device->OpenSharedHandle(dx11Reactive.Dx11Handle, IID_PPV_ARGS(&dx11Reactive.Dx12Resource));
if (result != S_OK)
{
@@ -723,7 +723,7 @@ bool IFeature_Dx11wDx12::ProcessDx11Textures(const NVSDK_NGX_Parameter* InParame
return false;
}
dx11Tm.Dx12Handle = dx11Tm.Dx11Handle;
dx11Reactive.Dx12Handle = dx11Reactive.Dx11Handle;
}
#pragma endregion
+1 -1
View File
@@ -45,7 +45,7 @@ protected:
D3D11_TEXTURE2D_RESOURCE_C dx11Color = {};
D3D11_TEXTURE2D_RESOURCE_C dx11Mv = {};
D3D11_TEXTURE2D_RESOURCE_C dx11Depth = {};
D3D11_TEXTURE2D_RESOURCE_C dx11Tm = {};
D3D11_TEXTURE2D_RESOURCE_C dx11Reactive = {};
D3D11_TEXTURE2D_RESOURCE_C dx11Exp = {};
D3D11_TEXTURE2D_RESOURCE_C dx11Out = {};
@@ -383,7 +383,8 @@ bool FSR2FeatureDx11::Evaluate(ID3D11DeviceContext* InContext, NVSDK_NGX_Paramet
_hasDepth = params.depth.resource != nullptr;
_hasMV = params.motionVectors.resource != nullptr;
_hasExposure = params.exposure.resource != nullptr;
_hasTM = params.reactive.resource != nullptr;
_hasTM = params.transparencyAndComposition.resource != nullptr;
_hasReactiveMask = params.reactive.resource != nullptr;
_hasOutput = params.output.resource != nullptr;
float MVScaleX = 1.0f;
@@ -218,7 +218,7 @@ bool FSR2FeatureDx11on12::Evaluate(ID3D11DeviceContext* InDeviceContext, NVSDK_N
params.motionVectors = ffxGetResourceDX12(&_context, dx11Mv.Dx12Resource, L"FSR2_Motion", FFX_RESOURCE_STATE_COMPUTE_READ);
params.depth = ffxGetResourceDX12(&_context, dx11Depth.Dx12Resource, L"FSR2_Depth", FFX_RESOURCE_STATE_COMPUTE_READ);
params.exposure = ffxGetResourceDX12(&_context, dx11Exp.Dx12Resource, L"FSR2_Exp", FFX_RESOURCE_STATE_COMPUTE_READ);
params.reactive = ffxGetResourceDX12(&_context, dx11Tm.Dx12Resource, L"FSR2_Reactive", FFX_RESOURCE_STATE_COMPUTE_READ);
params.reactive = ffxGetResourceDX12(&_context, dx11Reactive.Dx12Resource, L"FSR2_Reactive", FFX_RESOURCE_STATE_COMPUTE_READ);
// OutputScaling
if (useSS)
@@ -251,7 +251,8 @@ bool FSR2FeatureDx11on12::Evaluate(ID3D11DeviceContext* InDeviceContext, NVSDK_N
_hasDepth = params.depth.resource != nullptr;
_hasMV = params.motionVectors.resource != nullptr;
_hasExposure = params.exposure.resource != nullptr;
_hasTM = params.reactive.resource != nullptr;
_hasTM = params.transparencyAndComposition.resource != nullptr;
_hasReactiveMask = params.reactive.resource != nullptr;
_hasOutput = params.output.resource != nullptr;
#pragma endregion
@@ -259,7 +259,8 @@ bool FSR2FeatureDx12::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVSDK_N
_hasDepth = params.depth.resource != nullptr;
_hasMV = params.motionVectors.resource != nullptr;
_hasExposure = params.exposure.resource != nullptr;
_hasTM = params.reactive.resource != nullptr;
_hasTM = params.transparencyAndComposition.resource != nullptr;
_hasReactiveMask = params.reactive.resource != nullptr;
_hasOutput = params.output.resource != nullptr;
float MVScaleX = 1.0f;
+2 -1
View File
@@ -288,7 +288,8 @@ bool FSR2FeatureVk::Evaluate(VkCommandBuffer InCmdBuffer, NVSDK_NGX_Parameter* I
_hasDepth = params.depth.resource != nullptr;
_hasMV = params.motionVectors.resource != nullptr;
_hasExposure = params.exposure.resource != nullptr;
_hasTM = params.reactive.resource != nullptr;
_hasTM = params.transparencyAndComposition.resource != nullptr;
_hasReactiveMask = params.reactive.resource != nullptr;
_hasOutput = params.output.resource != nullptr;
float MVScaleX = 1.0f;
@@ -219,7 +219,7 @@ bool FSR2FeatureDx11on12_212::Evaluate(ID3D11DeviceContext* InDeviceContext, NVS
params.motionVectors = Fsr212::ffxGetResourceDX12_212(&_context, dx11Mv.Dx12Resource, (wchar_t*)L"FSR2_Motion", Fsr212::FFX_RESOURCE_STATE_COMPUTE_READ);
params.depth = Fsr212::ffxGetResourceDX12_212(&_context, dx11Depth.Dx12Resource, (wchar_t*)L"FSR2_Depth", Fsr212::FFX_RESOURCE_STATE_COMPUTE_READ);
params.exposure = Fsr212::ffxGetResourceDX12_212(&_context, dx11Exp.Dx12Resource, (wchar_t*)L"FSR2_Exp", Fsr212::FFX_RESOURCE_STATE_COMPUTE_READ);
params.reactive = Fsr212::ffxGetResourceDX12_212(&_context, dx11Tm.Dx12Resource, (wchar_t*)L"FSR2_Reactive", Fsr212::FFX_RESOURCE_STATE_COMPUTE_READ);
params.reactive = Fsr212::ffxGetResourceDX12_212(&_context, dx11Reactive.Dx12Resource, (wchar_t*)L"FSR2_Reactive", Fsr212::FFX_RESOURCE_STATE_COMPUTE_READ);
// OutputScaling
if (useSS)
@@ -248,7 +248,8 @@ bool FSR2FeatureDx11on12_212::Evaluate(ID3D11DeviceContext* InDeviceContext, NVS
_hasDepth = params.depth.resource != nullptr;
_hasMV = params.motionVectors.resource != nullptr;
_hasExposure = params.exposure.resource != nullptr;
_hasTM = params.reactive.resource != nullptr;
_hasTM = params.transparencyAndComposition.resource != nullptr;
_hasReactiveMask = params.reactive.resource != nullptr;
_hasOutput = params.output.resource != nullptr;
#pragma endregion
@@ -259,7 +259,8 @@ bool FSR2FeatureDx12_212::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVS
_hasDepth = params.depth.resource != nullptr;
_hasMV = params.motionVectors.resource != nullptr;
_hasExposure = params.exposure.resource != nullptr;
_hasTM = params.reactive.resource != nullptr;
_hasTM = params.transparencyAndComposition.resource != nullptr;
_hasReactiveMask = params.reactive.resource != nullptr;
_hasOutput = params.output.resource != nullptr;
float MVScaleX = 1.0f;
@@ -283,7 +283,8 @@ bool FSR2FeatureVk212::Evaluate(VkCommandBuffer InCmdBuffer, NVSDK_NGX_Parameter
_hasDepth = params.depth.resource != nullptr;
_hasMV = params.motionVectors.resource != nullptr;
_hasExposure = params.exposure.resource != nullptr;
_hasTM = params.reactive.resource != nullptr;
_hasTM = params.transparencyAndComposition.resource != nullptr;
_hasReactiveMask = params.reactive.resource != nullptr;
_hasOutput = params.output.resource != nullptr;
float MVScaleX = 1.0f;
@@ -259,7 +259,7 @@ bool FSR31FeatureDx11on12::Evaluate(ID3D11DeviceContext* InDeviceContext, NVSDK_
params.motionVectors = ffxApiGetResourceDX12(dx11Mv.Dx12Resource, FFX_API_RESOURCE_STATE_COMPUTE_READ);
params.depth = ffxApiGetResourceDX12(dx11Depth.Dx12Resource, FFX_API_RESOURCE_STATE_COMPUTE_READ);
params.exposure = ffxApiGetResourceDX12(dx11Exp.Dx12Resource, FFX_API_RESOURCE_STATE_COMPUTE_READ);
params.reactive = ffxApiGetResourceDX12(dx11Tm.Dx12Resource, FFX_API_RESOURCE_STATE_COMPUTE_READ);
params.reactive = ffxApiGetResourceDX12(dx11Reactive.Dx12Resource, FFX_API_RESOURCE_STATE_COMPUTE_READ);
// Output Scaling
if (useSS)
@@ -288,7 +288,8 @@ bool FSR31FeatureDx11on12::Evaluate(ID3D11DeviceContext* InDeviceContext, NVSDK_
_hasDepth = params.depth.resource != nullptr;
_hasMV = params.motionVectors.resource != nullptr;
_hasExposure = params.exposure.resource != nullptr;
_hasTM = params.reactive.resource != nullptr;
_hasTM = params.transparencyAndComposition.resource != nullptr;
_hasReactiveMask = params.reactive.resource != nullptr;
_hasOutput = params.output.resource != nullptr;
#pragma endregion
@@ -300,7 +300,8 @@ bool FSR31FeatureDx12::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVSDK_
_hasDepth = params.depth.resource != nullptr;
_hasMV = params.motionVectors.resource != nullptr;
_hasExposure = params.exposure.resource != nullptr;
_hasTM = params.reactive.resource != nullptr;
_hasTM = params.transparencyAndComposition.resource != nullptr;
_hasReactiveMask = params.reactive.resource != nullptr;
_hasOutput = params.output.resource != nullptr;
float MVScaleX = 1.0f;
@@ -377,7 +377,8 @@ bool FSR31FeatureVk::Evaluate(VkCommandBuffer InCmdBuffer, NVSDK_NGX_Parameter*
_hasDepth = params.depth.resource != nullptr;
_hasMV = params.motionVectors.resource != nullptr;
_hasExposure = params.exposure.resource != nullptr;
_hasTM = params.reactive.resource != nullptr;
_hasTM = params.transparencyAndComposition.resource != nullptr;
_hasReactiveMask = params.reactive.resource != nullptr;
_hasOutput = params.output.resource != nullptr;
float MVScaleX = 1.0f;
@@ -262,8 +262,8 @@ bool XeSSFeatureDx11::Evaluate(ID3D11DeviceContext* InDeviceContext, NVSDK_NGX_P
_hasDepth = params.pDepthTexture != nullptr;
params.pExposureScaleTexture = dx11Exp.Dx12Resource;
_hasExposure = params.pExposureScaleTexture != nullptr;
params.pResponsivePixelMaskTexture = dx11Tm.Dx12Resource;
_hasTM = params.pResponsivePixelMaskTexture != nullptr;
params.pResponsivePixelMaskTexture = dx11Reactive.Dx12Resource;
_hasReactiveMask = params.pResponsivePixelMaskTexture != nullptr;
spdlog::debug("XeSSFeatureDx11::Evaluate Textures -> params complete!");
@@ -262,7 +262,7 @@ bool XeSSFeatureDx12::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVSDK_N
_hasOutput = params.pOutputTexture != nullptr;
_hasDepth = params.pDepthTexture != nullptr;
_hasExposure = params.pExposureScaleTexture != nullptr;
_hasTM = params.pResponsivePixelMaskTexture != nullptr;
_hasReactiveMask = params.pResponsivePixelMaskTexture != nullptr;
float MVScaleX = 1.0f;
float MVScaleY = 1.0f;
+2
View File
@@ -1534,6 +1534,7 @@ public:
}
ImGui::TableNextColumn();
ImGui::BeginDisabled(!Config::Instance()->CurrentFeature->HasReactiveMask());
if (bool rm = Config::Instance()->DisableReactiveMask.value_or(true); ImGui::Checkbox("Disable Reactive Mask", &rm))
{
Config::Instance()->DisableReactiveMask = rm;
@@ -1544,6 +1545,7 @@ public:
Config::Instance()->changeBackend = true;
}
}
ImGui::EndDisabled();
}
ImGui::EndTable();