diff --git a/OptiScaler/inputs/NVNGX_DLSS_Vk.cpp b/OptiScaler/inputs/NVNGX_DLSS_Vk.cpp index d4ffaac0..ac3b28ed 100644 --- a/OptiScaler/inputs/NVNGX_DLSS_Vk.cpp +++ b/OptiScaler/inputs/NVNGX_DLSS_Vk.cpp @@ -723,7 +723,11 @@ NVSDK_NGX_API NVSDK_NGX_Result NVSDK_NGX_VULKAN_CreateFeature1(VkDevice InDevice State::Instance().api = Vulkan; auto deviceContext = VkContexts[handleId].feature.get(); - *OutHandle = deviceContext->Handle(); + + if (*OutHandle == nullptr) + *OutHandle = new NVSDK_NGX_Handle { handleId }; + else + (*OutHandle)->Id = handleId; State::Instance().AutoExposure.reset(); diff --git a/OptiScaler/upscalers/dlss/DLSSFeature_Vk.cpp b/OptiScaler/upscalers/dlss/DLSSFeature_Vk.cpp index a56002a2..bb9a2555 100644 --- a/OptiScaler/upscalers/dlss/DLSSFeature_Vk.cpp +++ b/OptiScaler/upscalers/dlss/DLSSFeature_Vk.cpp @@ -201,6 +201,12 @@ bool DLSSFeatureVk::Evaluate(VkCommandBuffer InCmdBuffer, NVSDK_NGX_Parameter* I nvResult = NVNGXProxy::VULKAN_EvaluateFeature()(InCmdBuffer, _p_dlssHandle, InParameters, NULL); + if (nvResult != NVSDK_NGX_Result_Success) + { + LOG_ERROR("_EvaluateFeature result: {0:X}", (unsigned int) nvResult); + return false; + } + if (useSS) { VkImageSubresourceRange range {}; @@ -221,12 +227,6 @@ bool DLSSFeatureVk::Evaluate(VkCommandBuffer InCmdBuffer, NVSDK_NGX_Parameter* I OS->Dispatch(Device, InCmdBuffer, OS->GetImageView(), RCAS->GetImageView(), outExtent); } - if (nvResult != NVSDK_NGX_Result_Success) - { - LOG_ERROR("_EvaluateFeature result: {0:X}", (unsigned int) nvResult); - return false; - } - if (rcasEnabled) { NVSDK_NGX_Resource_VK* paramVelocity = nullptr;