mirror of
https://github.com/optiscaler/OptiScaler.git
synced 2026-09-23 22:05:53 +00:00
Always try to get a pointer to a reactive mask
This commit is contained in:
@@ -500,17 +500,17 @@ bool IFeature_Dx11wDx12::ProcessDx11Textures(const NVSDK_NGX_Parameter* InParame
|
||||
else
|
||||
spdlog::debug("IFeature_Dx11wDx12::ProcessDx11Textures AutoExposure enabled!");
|
||||
|
||||
ID3D11Resource* paramMask = nullptr;
|
||||
ID3D11Resource* paramReactiveMask = nullptr;
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mReactiveMask) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mReactiveMask);
|
||||
|
||||
if (!Config::Instance()->DisableReactiveMask.value_or(true))
|
||||
{
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mMask) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mMask);
|
||||
|
||||
if (paramMask)
|
||||
if (paramReactiveMask)
|
||||
{
|
||||
spdlog::debug("IFeature_Dx11wDx12::ProcessDx11Textures Bias mask exist..");
|
||||
|
||||
if (CopyTextureFrom11To12(paramMask, &dx11Reactive, true, Config::Instance()->DontUseNTShared.value_or(false)) == false)
|
||||
if (CopyTextureFrom11To12(paramReactiveMask, &dx11Reactive, true, Config::Instance()->DontUseNTShared.value_or(false)) == false)
|
||||
return false;
|
||||
}
|
||||
// This is only needed for XeSS
|
||||
@@ -710,7 +710,7 @@ bool IFeature_Dx11wDx12::ProcessDx11Textures(const NVSDK_NGX_Parameter* InParame
|
||||
dx11Exp.Dx12Handle = dx11Exp.Dx11Handle;
|
||||
}
|
||||
|
||||
if (!Config::Instance()->DisableReactiveMask.value_or(true) && paramMask && dx11Reactive.Dx12Handle != dx11Reactive.Dx11Handle)
|
||||
if (!Config::Instance()->DisableReactiveMask.value_or(true) && paramReactiveMask && dx11Reactive.Dx12Handle != dx11Reactive.Dx11Handle)
|
||||
{
|
||||
if (dx11Reactive.Dx12Handle != NULL)
|
||||
CloseHandle(dx11Reactive.Dx12Handle);
|
||||
|
||||
@@ -359,16 +359,16 @@ bool FSR2FeatureDx11::Evaluate(ID3D11DeviceContext* InContext, NVSDK_NGX_Paramet
|
||||
else
|
||||
spdlog::debug("FSR2FeatureDx11::Evaluate AutoExposure enabled!");
|
||||
|
||||
ID3D11Resource* paramMask = nullptr;
|
||||
ID3D11Resource* paramReactiveMask = nullptr;
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mReactiveMask) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mReactiveMask);
|
||||
|
||||
if (!Config::Instance()->DisableReactiveMask.value_or(true))
|
||||
{
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mMask) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mMask);
|
||||
|
||||
if (paramMask)
|
||||
if (paramReactiveMask)
|
||||
{
|
||||
spdlog::debug("FSR2FeatureDx11::Evaluate Bias mask exist..");
|
||||
params.reactive = ffxGetResourceDX11(&_context, paramMask, (wchar_t*)L"FSR2_Reactive");
|
||||
params.reactive = ffxGetResourceDX11(&_context, paramReactiveMask, (wchar_t*)L"FSR2_Reactive");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -384,7 +384,7 @@ bool FSR2FeatureDx11::Evaluate(ID3D11DeviceContext* InContext, NVSDK_NGX_Paramet
|
||||
_hasMV = params.motionVectors.resource != nullptr;
|
||||
_hasExposure = params.exposure.resource != nullptr;
|
||||
_hasTM = params.transparencyAndComposition.resource != nullptr;
|
||||
_hasReactiveMask = params.reactive.resource != nullptr;
|
||||
_hasReactiveMask = paramReactiveMask != nullptr;
|
||||
_hasOutput = params.output.resource != nullptr;
|
||||
|
||||
float MVScaleX = 1.0f;
|
||||
|
||||
@@ -70,13 +70,14 @@ bool FSR2FeatureDx11on12::Evaluate(ID3D11DeviceContext* InDeviceContext, NVSDK_N
|
||||
}
|
||||
}
|
||||
|
||||
ID3D11Resource* paramReactiveMask = nullptr;
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mReactiveMask) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mReactiveMask);
|
||||
_hasReactiveMask = paramReactiveMask != nullptr;
|
||||
|
||||
if (!Config::Instance()->DisableReactiveMask.has_value())
|
||||
{
|
||||
ID3D11Resource* paramRM = nullptr;
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mRM) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mRM);
|
||||
|
||||
if (paramRM == nullptr)
|
||||
if (!paramReactiveMask)
|
||||
{
|
||||
spdlog::warn("FSR2FeatureDx11with12::Evaluate Bias mask not exist, enabling DisableReactiveMask!!");
|
||||
Config::Instance()->DisableReactiveMask = true;
|
||||
|
||||
@@ -238,20 +238,20 @@ bool FSR2FeatureDx12::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVSDK_N
|
||||
else
|
||||
spdlog::debug("FSR2FeatureDx12::Evaluate AutoExposure enabled!");
|
||||
|
||||
ID3D12Resource* paramMask = nullptr;
|
||||
ID3D12Resource* paramReactiveMask = nullptr;
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mReactiveMask) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mReactiveMask);
|
||||
|
||||
if (!Config::Instance()->DisableReactiveMask.value_or(true))
|
||||
{
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mMask) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mMask);
|
||||
|
||||
if (paramMask)
|
||||
if (paramReactiveMask)
|
||||
{
|
||||
spdlog::debug("FSR2FeatureDx12::Evaluate Bias mask exist..");
|
||||
|
||||
if (Config::Instance()->MaskResourceBarrier.has_value())
|
||||
ResourceBarrier(InCommandList, paramMask, (D3D12_RESOURCE_STATES)Config::Instance()->MaskResourceBarrier.value(), D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE);
|
||||
ResourceBarrier(InCommandList, paramReactiveMask, (D3D12_RESOURCE_STATES)Config::Instance()->MaskResourceBarrier.value(), D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE);
|
||||
|
||||
params.reactive = ffxGetResourceDX12(&_context, paramMask, (wchar_t*)L"FSR2_Reactive", FFX_RESOURCE_STATE_COMPUTE_READ);
|
||||
params.reactive = ffxGetResourceDX12(&_context, paramReactiveMask, (wchar_t*)L"FSR2_Reactive", FFX_RESOURCE_STATE_COMPUTE_READ);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -260,7 +260,7 @@ bool FSR2FeatureDx12::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVSDK_N
|
||||
_hasMV = params.motionVectors.resource != nullptr;
|
||||
_hasExposure = params.exposure.resource != nullptr;
|
||||
_hasTM = params.transparencyAndComposition.resource != nullptr;
|
||||
_hasReactiveMask = params.reactive.resource != nullptr;
|
||||
_hasReactiveMask = paramReactiveMask != nullptr;
|
||||
_hasOutput = params.output.resource != nullptr;
|
||||
|
||||
float MVScaleX = 1.0f;
|
||||
@@ -437,8 +437,8 @@ bool FSR2FeatureDx12::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVSDK_N
|
||||
D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE,
|
||||
(D3D12_RESOURCE_STATES)Config::Instance()->ExposureResourceBarrier.value());
|
||||
|
||||
if (paramMask && Config::Instance()->MaskResourceBarrier.has_value())
|
||||
ResourceBarrier(InCommandList, paramMask,
|
||||
if (paramReactiveMask && Config::Instance()->MaskResourceBarrier.has_value())
|
||||
ResourceBarrier(InCommandList, paramReactiveMask,
|
||||
D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE,
|
||||
(D3D12_RESOURCE_STATES)Config::Instance()->MaskResourceBarrier.value());
|
||||
|
||||
|
||||
@@ -261,19 +261,20 @@ bool FSR2FeatureVk::Evaluate(VkCommandBuffer InCmdBuffer, NVSDK_NGX_Parameter* I
|
||||
else
|
||||
spdlog::debug("FSR2FeatureVk::Evaluate AutoExposure enabled!");
|
||||
|
||||
void* paramMask = nullptr;
|
||||
void* paramReactiveMask = nullptr;
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mReactiveMask) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mReactiveMask);
|
||||
|
||||
if (!Config::Instance()->DisableReactiveMask.value_or(true))
|
||||
{
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mMask);
|
||||
|
||||
if (paramMask)
|
||||
if (paramReactiveMask)
|
||||
{
|
||||
spdlog::debug("FSR2FeatureVk::Evaluate Bias mask exist..");
|
||||
|
||||
params.reactive = ffxGetTextureResourceVK(&_context, ((NVSDK_NGX_Resource_VK*)paramMask)->Resource.ImageViewInfo.Image,
|
||||
((NVSDK_NGX_Resource_VK*)paramMask)->Resource.ImageViewInfo.ImageView,
|
||||
((NVSDK_NGX_Resource_VK*)paramMask)->Resource.ImageViewInfo.Width, ((NVSDK_NGX_Resource_VK*)paramMask)->Resource.ImageViewInfo.Height,
|
||||
((NVSDK_NGX_Resource_VK*)paramMask)->Resource.ImageViewInfo.Format, (wchar_t*)L"FSR2_Reactive", FFX_RESOURCE_STATE_COMPUTE_READ);
|
||||
params.reactive = ffxGetTextureResourceVK(&_context, ((NVSDK_NGX_Resource_VK*)paramReactiveMask)->Resource.ImageViewInfo.Image,
|
||||
((NVSDK_NGX_Resource_VK*)paramReactiveMask)->Resource.ImageViewInfo.ImageView,
|
||||
((NVSDK_NGX_Resource_VK*)paramReactiveMask)->Resource.ImageViewInfo.Width, ((NVSDK_NGX_Resource_VK*)paramReactiveMask)->Resource.ImageViewInfo.Height,
|
||||
((NVSDK_NGX_Resource_VK*)paramReactiveMask)->Resource.ImageViewInfo.Format, (wchar_t*)L"FSR2_Reactive", FFX_RESOURCE_STATE_COMPUTE_READ);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -289,7 +290,7 @@ bool FSR2FeatureVk::Evaluate(VkCommandBuffer InCmdBuffer, NVSDK_NGX_Parameter* I
|
||||
_hasMV = params.motionVectors.resource != nullptr;
|
||||
_hasExposure = params.exposure.resource != nullptr;
|
||||
_hasTM = params.transparencyAndComposition.resource != nullptr;
|
||||
_hasReactiveMask = params.reactive.resource != nullptr;
|
||||
_hasReactiveMask = paramReactiveMask != nullptr;
|
||||
_hasOutput = params.output.resource != nullptr;
|
||||
|
||||
float MVScaleX = 1.0f;
|
||||
|
||||
@@ -73,13 +73,14 @@ bool FSR2FeatureDx11on12_212::Evaluate(ID3D11DeviceContext* InDeviceContext, NVS
|
||||
}
|
||||
}
|
||||
|
||||
ID3D11Resource* paramReactiveMask = nullptr;
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mReactiveMask) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mReactiveMask);
|
||||
_hasReactiveMask = paramReactiveMask != nullptr;
|
||||
|
||||
if (!Config::Instance()->DisableReactiveMask.has_value())
|
||||
{
|
||||
ID3D11Resource* paramRM = nullptr;
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mRM) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mRM);
|
||||
|
||||
if (paramRM == nullptr)
|
||||
if (!paramReactiveMask)
|
||||
{
|
||||
spdlog::warn("FSR2FeatureDx11with12_212::Evaluate Bias mask not exist, enabling DisableReactiveMask!!");
|
||||
Config::Instance()->DisableReactiveMask = true;
|
||||
|
||||
@@ -238,20 +238,20 @@ bool FSR2FeatureDx12_212::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVS
|
||||
spdlog::debug("FSR2FeatureDx12_212::Evaluate AutoExposure enabled!");
|
||||
}
|
||||
|
||||
ID3D12Resource* paramMask = nullptr;
|
||||
ID3D12Resource* paramReactiveMask = nullptr;
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mReactiveMask) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mReactiveMask);
|
||||
|
||||
if (!Config::Instance()->DisableReactiveMask.value_or(true))
|
||||
{
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mMask) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mMask);
|
||||
|
||||
if (paramMask)
|
||||
if (paramReactiveMask)
|
||||
{
|
||||
spdlog::debug("FSR2FeatureDx12_212::Evaluate Bias mask exist..");
|
||||
|
||||
if (Config::Instance()->MaskResourceBarrier.has_value())
|
||||
ResourceBarrier(InCommandList, paramMask, (D3D12_RESOURCE_STATES)Config::Instance()->MaskResourceBarrier.value(), D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE);
|
||||
ResourceBarrier(InCommandList, paramReactiveMask, (D3D12_RESOURCE_STATES)Config::Instance()->MaskResourceBarrier.value(), D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE);
|
||||
|
||||
params.reactive = Fsr212::ffxGetResourceDX12_212(&_context, paramMask, (wchar_t*)L"FSR2_Reactive", Fsr212::FFX_RESOURCE_STATE_COMPUTE_READ);
|
||||
params.reactive = Fsr212::ffxGetResourceDX12_212(&_context, paramReactiveMask, (wchar_t*)L"FSR2_Reactive", Fsr212::FFX_RESOURCE_STATE_COMPUTE_READ);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -260,7 +260,7 @@ bool FSR2FeatureDx12_212::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVS
|
||||
_hasMV = params.motionVectors.resource != nullptr;
|
||||
_hasExposure = params.exposure.resource != nullptr;
|
||||
_hasTM = params.transparencyAndComposition.resource != nullptr;
|
||||
_hasReactiveMask = params.reactive.resource != nullptr;
|
||||
_hasReactiveMask = paramReactiveMask != nullptr;
|
||||
_hasOutput = params.output.resource != nullptr;
|
||||
|
||||
float MVScaleX = 1.0f;
|
||||
@@ -419,8 +419,8 @@ bool FSR2FeatureDx12_212::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVS
|
||||
D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE,
|
||||
(D3D12_RESOURCE_STATES)Config::Instance()->ExposureResourceBarrier.value());
|
||||
|
||||
if (paramMask && Config::Instance()->MaskResourceBarrier.has_value())
|
||||
ResourceBarrier(InCommandList, paramMask,
|
||||
if (paramReactiveMask && Config::Instance()->MaskResourceBarrier.has_value())
|
||||
ResourceBarrier(InCommandList, paramReactiveMask,
|
||||
D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE,
|
||||
(D3D12_RESOURCE_STATES)Config::Instance()->MaskResourceBarrier.value());
|
||||
|
||||
|
||||
@@ -256,19 +256,20 @@ bool FSR2FeatureVk212::Evaluate(VkCommandBuffer InCmdBuffer, NVSDK_NGX_Parameter
|
||||
else
|
||||
spdlog::debug("FSR2FeatureVk212::Evaluate AutoExposure enabled!");
|
||||
|
||||
void* paramMask = nullptr;
|
||||
void* paramReactiveMask = nullptr;
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mReactiveMask) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mReactiveMask);
|
||||
|
||||
if (!Config::Instance()->DisableReactiveMask.value_or(true))
|
||||
{
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mMask);
|
||||
|
||||
if (paramMask)
|
||||
if (paramReactiveMask)
|
||||
{
|
||||
spdlog::debug("FSR2FeatureVk212::Evaluate Bias mask exist..");
|
||||
|
||||
params.reactive = Fsr212::ffxGetTextureResourceVK212(&_context, ((NVSDK_NGX_Resource_VK*)paramMask)->Resource.ImageViewInfo.Image,
|
||||
((NVSDK_NGX_Resource_VK*)paramMask)->Resource.ImageViewInfo.ImageView,
|
||||
((NVSDK_NGX_Resource_VK*)paramMask)->Resource.ImageViewInfo.Width, ((NVSDK_NGX_Resource_VK*)paramMask)->Resource.ImageViewInfo.Height,
|
||||
((NVSDK_NGX_Resource_VK*)paramMask)->Resource.ImageViewInfo.Format, (wchar_t*)L"FSR2_Reactive", Fsr212::FFX_RESOURCE_STATE_COMPUTE_READ);
|
||||
params.reactive = Fsr212::ffxGetTextureResourceVK212(&_context, ((NVSDK_NGX_Resource_VK*)paramReactiveMask)->Resource.ImageViewInfo.Image,
|
||||
((NVSDK_NGX_Resource_VK*)paramReactiveMask)->Resource.ImageViewInfo.ImageView,
|
||||
((NVSDK_NGX_Resource_VK*)paramReactiveMask)->Resource.ImageViewInfo.Width, ((NVSDK_NGX_Resource_VK*)paramReactiveMask)->Resource.ImageViewInfo.Height,
|
||||
((NVSDK_NGX_Resource_VK*)paramReactiveMask)->Resource.ImageViewInfo.Format, (wchar_t*)L"FSR2_Reactive", Fsr212::FFX_RESOURCE_STATE_COMPUTE_READ);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -284,7 +285,7 @@ bool FSR2FeatureVk212::Evaluate(VkCommandBuffer InCmdBuffer, NVSDK_NGX_Parameter
|
||||
_hasMV = params.motionVectors.resource != nullptr;
|
||||
_hasExposure = params.exposure.resource != nullptr;
|
||||
_hasTM = params.transparencyAndComposition.resource != nullptr;
|
||||
_hasReactiveMask = params.reactive.resource != nullptr;
|
||||
_hasReactiveMask = paramReactiveMask != nullptr;
|
||||
_hasOutput = params.output.resource != nullptr;
|
||||
|
||||
float MVScaleX = 1.0f;
|
||||
|
||||
@@ -109,13 +109,14 @@ bool FSR31FeatureDx11on12::Evaluate(ID3D11DeviceContext* InDeviceContext, NVSDK_
|
||||
}
|
||||
}
|
||||
|
||||
ID3D11Resource* paramReactiveMask = nullptr;
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mReactiveMask) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mReactiveMask);
|
||||
_hasReactiveMask = paramReactiveMask != nullptr;
|
||||
|
||||
if (!Config::Instance()->DisableReactiveMask.has_value())
|
||||
{
|
||||
ID3D11Resource* paramRM = nullptr;
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mRM) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mRM);
|
||||
|
||||
if (paramRM == nullptr)
|
||||
if (!paramReactiveMask)
|
||||
{
|
||||
spdlog::warn("FSR31FeatureDx11with12::Evaluate Bias mask not exist, enabling DisableReactiveMask!!");
|
||||
Config::Instance()->DisableReactiveMask = true;
|
||||
|
||||
@@ -279,20 +279,20 @@ bool FSR31FeatureDx12::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVSDK_
|
||||
spdlog::debug("FSR31FeatureDx12::Evaluate AutoExposure enabled!");
|
||||
}
|
||||
|
||||
ID3D12Resource* paramMask = nullptr;
|
||||
ID3D12Resource* paramReactiveMask = nullptr;
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mReactiveMask) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mReactiveMask);
|
||||
|
||||
if (!Config::Instance()->DisableReactiveMask.value_or(true))
|
||||
{
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mMask) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mMask);
|
||||
|
||||
if (paramMask)
|
||||
if (paramReactiveMask)
|
||||
{
|
||||
spdlog::debug("FSR31FeatureDx12::Evaluate Bias mask exist..");
|
||||
|
||||
if (Config::Instance()->MaskResourceBarrier.has_value())
|
||||
ResourceBarrier(InCommandList, paramMask, (D3D12_RESOURCE_STATES)Config::Instance()->MaskResourceBarrier.value(), D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE);
|
||||
ResourceBarrier(InCommandList, paramReactiveMask, (D3D12_RESOURCE_STATES)Config::Instance()->MaskResourceBarrier.value(), D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE);
|
||||
|
||||
params.reactive = ffxApiGetResourceDX12(paramMask, FFX_API_RESOURCE_STATE_COMPUTE_READ);
|
||||
params.reactive = ffxApiGetResourceDX12(paramReactiveMask, FFX_API_RESOURCE_STATE_COMPUTE_READ);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -301,7 +301,7 @@ bool FSR31FeatureDx12::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVSDK_
|
||||
_hasMV = params.motionVectors.resource != nullptr;
|
||||
_hasExposure = params.exposure.resource != nullptr;
|
||||
_hasTM = params.transparencyAndComposition.resource != nullptr;
|
||||
_hasReactiveMask = params.reactive.resource != nullptr;
|
||||
_hasReactiveMask = paramReactiveMask != nullptr;
|
||||
_hasOutput = params.output.resource != nullptr;
|
||||
|
||||
float MVScaleX = 1.0f;
|
||||
@@ -463,8 +463,8 @@ bool FSR31FeatureDx12::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVSDK_
|
||||
D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE,
|
||||
(D3D12_RESOURCE_STATES)Config::Instance()->ExposureResourceBarrier.value());
|
||||
|
||||
if (paramMask && Config::Instance()->MaskResourceBarrier.has_value())
|
||||
ResourceBarrier(InCommandList, paramMask,
|
||||
if (paramReactiveMask && Config::Instance()->MaskResourceBarrier.has_value())
|
||||
ResourceBarrier(InCommandList, paramReactiveMask,
|
||||
D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE,
|
||||
(D3D12_RESOURCE_STATES)Config::Instance()->MaskResourceBarrier.value());
|
||||
|
||||
|
||||
@@ -351,17 +351,20 @@ bool FSR31FeatureVk::Evaluate(VkCommandBuffer InCmdBuffer, NVSDK_NGX_Parameter*
|
||||
else
|
||||
spdlog::debug("FSR31FeatureVk::Evaluate AutoExposure enabled!");
|
||||
|
||||
void* paramMask = nullptr;
|
||||
void* paramReactiveMask = nullptr;
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mReactiveMask) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mReactiveMask);
|
||||
|
||||
if (!Config::Instance()->DisableReactiveMask.value_or(true))
|
||||
{
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mMask);
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mReactiveMask);
|
||||
|
||||
if (paramMask)
|
||||
if (paramReactiveMask)
|
||||
{
|
||||
spdlog::debug("FSR31FeatureVk::Evaluate Bias mask exist..");
|
||||
|
||||
params.reactive = ffxApiGetResourceVK(((NVSDK_NGX_Resource_VK*)paramMask)->Resource.ImageViewInfo.Image,
|
||||
ffxApiGetImageResourceDescriptionVKLocal((NVSDK_NGX_Resource_VK*)paramMask),
|
||||
params.reactive = ffxApiGetResourceVK(((NVSDK_NGX_Resource_VK*)paramReactiveMask)->Resource.ImageViewInfo.Image,
|
||||
ffxApiGetImageResourceDescriptionVKLocal((NVSDK_NGX_Resource_VK*)paramReactiveMask),
|
||||
FFX_API_RESOURCE_STATE_COMPUTE_READ);
|
||||
}
|
||||
else
|
||||
@@ -378,7 +381,7 @@ bool FSR31FeatureVk::Evaluate(VkCommandBuffer InCmdBuffer, NVSDK_NGX_Parameter*
|
||||
_hasMV = params.motionVectors.resource != nullptr;
|
||||
_hasExposure = params.exposure.resource != nullptr;
|
||||
_hasTM = params.transparencyAndComposition.resource != nullptr;
|
||||
_hasReactiveMask = params.reactive.resource != nullptr;
|
||||
_hasReactiveMask = paramReactiveMask != nullptr;
|
||||
_hasOutput = params.output.resource != nullptr;
|
||||
|
||||
float MVScaleX = 1.0f;
|
||||
|
||||
@@ -81,13 +81,14 @@ bool XeSSFeatureDx11::Evaluate(ID3D11DeviceContext* InDeviceContext, NVSDK_NGX_P
|
||||
}
|
||||
}
|
||||
|
||||
ID3D11Resource* paramReactiveMask = nullptr;
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mReactiveMask) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mReactiveMask);
|
||||
_hasReactiveMask = paramReactiveMask != nullptr;
|
||||
|
||||
if (!Config::Instance()->DisableReactiveMask.has_value())
|
||||
{
|
||||
ID3D11Resource* paramRM = nullptr;
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mRM) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mRM);
|
||||
|
||||
if (paramRM == nullptr)
|
||||
if (!paramReactiveMask)
|
||||
{
|
||||
spdlog::warn("XeSSFeatureDx11::Evaluate Bias mask not exist, enabling DisableReactiveMask!!");
|
||||
Config::Instance()->DisableReactiveMask = true;
|
||||
@@ -263,7 +264,6 @@ bool XeSSFeatureDx11::Evaluate(ID3D11DeviceContext* InDeviceContext, NVSDK_NGX_P
|
||||
params.pExposureScaleTexture = dx11Exp.Dx12Resource;
|
||||
_hasExposure = params.pExposureScaleTexture != nullptr;
|
||||
params.pResponsivePixelMaskTexture = dx11Reactive.Dx12Resource;
|
||||
_hasReactiveMask = params.pResponsivePixelMaskTexture != nullptr;
|
||||
|
||||
spdlog::debug("XeSSFeatureDx11::Evaluate Textures -> params complete!");
|
||||
|
||||
|
||||
@@ -236,12 +236,15 @@ bool XeSSFeatureDx12::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVSDK_N
|
||||
else
|
||||
spdlog::debug("XeSSFeatureDx12::Evaluate AutoExposure enabled!");
|
||||
|
||||
ID3D12Resource* paramReactiveMask = nullptr;
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶mReactiveMask) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶mReactiveMask);
|
||||
|
||||
if (!Config::Instance()->DisableReactiveMask.value_or(true))
|
||||
{
|
||||
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, ¶ms.pResponsivePixelMaskTexture) != NVSDK_NGX_Result_Success)
|
||||
InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**)¶ms.pResponsivePixelMaskTexture);
|
||||
params.pResponsivePixelMaskTexture = paramReactiveMask;
|
||||
|
||||
if (params.pResponsivePixelMaskTexture)
|
||||
if (paramReactiveMask)
|
||||
{
|
||||
spdlog::debug("XeSSFeatureDx12::Evaluate Bias mask exist..");
|
||||
|
||||
@@ -262,7 +265,7 @@ bool XeSSFeatureDx12::Evaluate(ID3D12GraphicsCommandList* InCommandList, NVSDK_N
|
||||
_hasOutput = params.pOutputTexture != nullptr;
|
||||
_hasDepth = params.pDepthTexture != nullptr;
|
||||
_hasExposure = params.pExposureScaleTexture != nullptr;
|
||||
_hasReactiveMask = params.pResponsivePixelMaskTexture != nullptr;
|
||||
_hasReactiveMask = paramReactiveMask != nullptr;
|
||||
|
||||
float MVScaleX = 1.0f;
|
||||
float MVScaleY = 1.0f;
|
||||
|
||||
Reference in New Issue
Block a user