Disabled reactive mask for preventing WWZ crash

This commit is contained in:
cdozdil
2026-01-18 21:31:01 +03:00
parent 9255937dc9
commit 172e35ec72
2 changed files with 46 additions and 48 deletions
+2 -5
View File
@@ -427,11 +427,8 @@ inline static VkResult hkvkCreateDevice(VkPhysicalDevice physicalDevice, VkDevic
if (vkDeviceExtensions.contains(std::string(VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME)))
newExtensionList.push_back(VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME);
if (!isPascalOrOlder)
{
if (vkDeviceExtensions.contains(std::string(VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME)))
newExtensionList.push_back(VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME);
}
if (vkDeviceExtensions.contains(std::string(VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME)))
newExtensionList.push_back(VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME);
}
pCreateInfo->enabledExtensionCount = static_cast<uint32_t>(newExtensionList.size());
+44 -43
View File
@@ -514,53 +514,54 @@ bool XeSSFeature_Vk::Evaluate(VkCommandBuffer InCmdBuffer, NVSDK_NGX_Parameter*
else
LOG_DEBUG("AutoExposure enabled!");
bool supportsFloatResponsivePixelMask = Version() >= feature_version { 2, 0, 1 };
NVSDK_NGX_Resource_VK* paramReactiveMask = nullptr;
// Disabled reactive mask for preventing WWZ crash
// bool supportsFloatResponsivePixelMask = Version() >= feature_version { 2, 0, 1 };
// NVSDK_NGX_Resource_VK* paramReactiveMask = nullptr;
if (InParameters->Get("FSR.reactive", (void**) &paramReactiveMask) == NVSDK_NGX_Result_Success)
{
if (!Config::Instance()->DisableReactiveMask.value_or(!supportsFloatResponsivePixelMask))
{
if ((_xessInitFlags & XESS_INIT_FLAG_RESPONSIVE_PIXEL_MASK) == 0)
{
Config::Instance()->DisableReactiveMask = false;
LOG_WARN("Reactive mask exist but not enabled, enabling it!");
State::Instance().changeBackend[_handle->Id] = true;
return true;
}
// if (InParameters->Get("FSR.reactive", (void**) &paramReactiveMask) == NVSDK_NGX_Result_Success)
//{
// if (!Config::Instance()->DisableReactiveMask.value_or(!supportsFloatResponsivePixelMask))
// {
// if ((_xessInitFlags & XESS_INIT_FLAG_RESPONSIVE_PIXEL_MASK) == 0)
// {
// Config::Instance()->DisableReactiveMask = false;
// LOG_WARN("Reactive mask exist but not enabled, enabling it!");
// State::Instance().changeBackend[_handle->Id] = true;
// return true;
// }
params.responsivePixelMaskTexture = NV_to_XeSS(paramReactiveMask);
}
}
else
{
if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**) &paramReactiveMask) ==
NVSDK_NGX_Result_Success &&
paramReactiveMask != nullptr)
{
LOG_DEBUG("Input Bias mask exist..");
// params.responsivePixelMaskTexture = NV_to_XeSS(paramReactiveMask);
// }
//}
// else
//{
// if (InParameters->Get(NVSDK_NGX_Parameter_DLSS_Input_Bias_Current_Color_Mask, (void**) &paramReactiveMask) ==
// NVSDK_NGX_Result_Success &&
// paramReactiveMask != nullptr)
// {
// LOG_DEBUG("Input Bias mask exist..");
if (!Config::Instance()->DisableReactiveMask.value_or(true))
{
if ((_xessInitFlags & XESS_INIT_FLAG_RESPONSIVE_PIXEL_MASK) == 0)
{
Config::Instance()->DisableReactiveMask = false;
LOG_WARN("Reactive mask exist but not enabled, enabling it!");
State::Instance().changeBackend[_handle->Id] = true;
return true;
}
// if (!Config::Instance()->DisableReactiveMask.value_or(true))
// {
// if ((_xessInitFlags & XESS_INIT_FLAG_RESPONSIVE_PIXEL_MASK) == 0)
// {
// Config::Instance()->DisableReactiveMask = false;
// LOG_WARN("Reactive mask exist but not enabled, enabling it!");
// State::Instance().changeBackend[_handle->Id] = true;
// return true;
// }
params.responsivePixelMaskTexture = NV_to_XeSS(paramReactiveMask);
}
}
else if ((_xessInitFlags & XESS_INIT_FLAG_RESPONSIVE_PIXEL_MASK) > 0)
{
LOG_WARN("Bias mask not exist and its enabled in config, it may cause problems!!");
Config::Instance()->DisableReactiveMask = true;
State::Instance().changeBackend[_handle->Id] = true;
return true;
}
}
// params.responsivePixelMaskTexture = NV_to_XeSS(paramReactiveMask);
// }
// }
// else if ((_xessInitFlags & XESS_INIT_FLAG_RESPONSIVE_PIXEL_MASK) > 0)
// {
// LOG_WARN("Bias mask not exist and its enabled in config, it may cause problems!!");
// Config::Instance()->DisableReactiveMask = true;
// State::Instance().changeBackend[_handle->Id] = true;
// return true;
// }
//}
_hasColor = params.colorTexture.image != VK_NULL_HANDLE;
_hasMV = params.velocityTexture.image != VK_NULL_HANDLE;