diff --git a/OptiScaler/NVNGX_DLSS_Vk.cpp b/OptiScaler/NVNGX_DLSS_Vk.cpp index 747df9c7..41ca93ad 100644 --- a/OptiScaler/NVNGX_DLSS_Vk.cpp +++ b/OptiScaler/NVNGX_DLSS_Vk.cpp @@ -382,6 +382,7 @@ NVSDK_NGX_API NVSDK_NGX_Result NVSDK_NGX_VULKAN_CreateFeature1(VkDevice InDevice else { spdlog::info("NVSDK_NGX_VULKAN_CreateFeature1 creating new DLSS feature"); + Config::Instance()->VulkanUpscaler = "dlss"; } } else @@ -391,9 +392,16 @@ NVSDK_NGX_API NVSDK_NGX_Result NVSDK_NGX_VULKAN_CreateFeature1(VkDevice InDevice } if (Config::Instance()->VulkanUpscaler.value_or(defaultUpscaler) == "fsr22") + { + VkContexts[handleId] = std::make_unique(handleId, InParameters); + Config::Instance()->VulkanUpscaler = "fsr22"; + } else if (Config::Instance()->VulkanUpscaler.value_or(defaultUpscaler) == "fsr21") + { VkContexts[handleId] = std::make_unique(handleId, InParameters); + Config::Instance()->VulkanUpscaler = "fsr21"; + } } else { @@ -533,7 +541,7 @@ NVSDK_NGX_API NVSDK_NGX_Result NVSDK_NGX_VULKAN_EvaluateFeature(VkCommandBuffer if (Config::Instance()->changeBackend) { - if (Config::Instance()->newBackend == "" && (!Config::Instance()->DLSSEnabled.value_or(true) && Config::Instance()->newBackend == "dlss")) + if (Config::Instance()->newBackend == "") Config::Instance()->newBackend = Config::Instance()->VulkanUpscaler.value_or("fsr21"); changeBackendCounter++;