Standardize NVSDK Init code between APIs

This commit is contained in:
cdozdil
2026-05-20 12:20:36 +03:00
parent dc204882cb
commit d1a89662ff
3 changed files with 56 additions and 19 deletions
+21 -5
View File
@@ -144,6 +144,12 @@ NVSDK_NGX_API NVSDK_NGX_Result NVSDK_NGX_D3D11_Init_Ext(unsigned long long InApp
if (!_skipInit)
UpdateInitPaths(&localFeatureInfo);
State::Instance().NVNGX_ApplicationId = InApplicationId;
State::Instance().NVNGX_ApplicationDataPath = std::wstring(InApplicationDataPath);
State::Instance().NVNGX_Version = InSDKVersion;
State::Instance().NVNGX_FeatureInfo = InFeatureInfo;
State::Instance().NVNGX_Version = InSDKVersion;
if (Config::Instance()->DLSSEnabled.value_or_default() && !_skipInit)
{
if (Config::Instance()->UseGenericAppIdWithDlss.value_or_default())
@@ -164,16 +170,21 @@ NVSDK_NGX_API NVSDK_NGX_Result NVSDK_NGX_D3D11_Init_Ext(unsigned long long InApp
if (result == NVSDK_NGX_Result_Success)
NVNGXProxy::SetDx11Inited(true);
}
else
{
LOG_WARN("NVNGXProxy::NVNGXModule or NVNGXProxy::D3D11_Init_Ext is nullptr!");
}
}
State::Instance().NVNGX_ApplicationId = InApplicationId;
State::Instance().NVNGX_ApplicationDataPath = std::wstring(InApplicationDataPath);
State::Instance().NVNGX_Version = InSDKVersion;
State::Instance().NVNGX_FeatureInfo = InFeatureInfo;
if (InFeatureInfo != nullptr && InSDKVersion > 0x0000013)
State::Instance().NVNGX_Logger = InFeatureInfo->LoggingInfo;
if (State::Instance().NvngxDx11Inited)
{
LOG_WARN("NVNGX already inited");
return NVSDK_NGX_Result_Success;
}
LOG_INFO("AppId: {0}", InApplicationId);
LOG_INFO("SDK: {0:x}", (int) InSDKVersion);
std::wstring string(InApplicationDataPath);
@@ -391,6 +402,9 @@ NVSDK_NGX_API NVSDK_NGX_Result NVSDK_NGX_D3D11_GetParameters(NVSDK_NGX_Parameter
}
*OutParameters = GetNGXParameters("OptiDx11");
LOG_DEBUG("Returning custom Opti parameters");
return NVSDK_NGX_Result_Success;
}
@@ -419,6 +433,8 @@ NVSDK_NGX_API NVSDK_NGX_Result NVSDK_NGX_D3D11_GetCapabilityParameters(NVSDK_NGX
*OutParameters = GetNGXParameters("OptiDx11");
LOG_DEBUG("Returning custom Opti parameters");
return NVSDK_NGX_Result_Success;
}
+12 -6
View File
@@ -151,9 +151,6 @@ NVSDK_NGX_API NVSDK_NGX_Result NVSDK_NGX_D3D12_Init_Ext(unsigned long long InApp
{
LOG_FUNC();
if (Config::Instance()->UseGenericAppIdWithDlss.value_or_default())
InApplicationId = app_id_override;
NVSDK_NGX_FeatureCommonInfo localFeatureInfo = {};
std::memcpy(&localFeatureInfo, InFeatureInfo, sizeof(NVSDK_NGX_FeatureCommonInfo));
@@ -164,18 +161,20 @@ NVSDK_NGX_API NVSDK_NGX_Result NVSDK_NGX_D3D12_Init_Ext(unsigned long long InApp
State::Instance().NVNGX_ApplicationDataPath = std::wstring(InApplicationDataPath);
State::Instance().NVNGX_Version = InSDKVersion;
State::Instance().NVNGX_FeatureInfo = &localFeatureInfo;
if (InFeatureInfo != nullptr && InSDKVersion > 0x0000013)
State::Instance().NVNGX_Logger = InFeatureInfo->LoggingInfo;
State::Instance().NVNGX_Version = InSDKVersion;
if (Config::Instance()->DLSSEnabled.value_or_default() && !_skipInit)
{
if (Config::Instance()->UseGenericAppIdWithDlss.value_or_default())
InApplicationId = app_id_override;
if (NVNGXProxy::NVNGXModule() == nullptr)
NVNGXProxy::InitNVNGX();
if (NVNGXProxy::NVNGXModule() != nullptr && NVNGXProxy::D3D12_Init_Ext() != nullptr)
{
LOG_INFO("calling NVNGXProxy::D3D12_Init_Ext");
auto result = NVNGXProxy::D3D12_Init_Ext()(InApplicationId, InApplicationDataPath, InDevice, InSDKVersion,
&localFeatureInfo);
LOG_INFO("calling NVNGXProxy::D3D12_Init_Ext result: {0:X}", (UINT) result);
@@ -189,6 +188,9 @@ NVSDK_NGX_API NVSDK_NGX_Result NVSDK_NGX_D3D12_Init_Ext(unsigned long long InApp
}
}
if (InFeatureInfo != nullptr && InSDKVersion > 0x0000013)
State::Instance().NVNGX_Logger = InFeatureInfo->LoggingInfo;
if (State::Instance().NvngxDx12Inited)
{
LOG_WARN("NVNGX already inited");
@@ -459,6 +461,8 @@ NVSDK_NGX_API NVSDK_NGX_Result NVSDK_NGX_D3D12_GetParameters(NVSDK_NGX_Parameter
*OutParameters = GetNGXParameters("OptiDx12");
LOG_DEBUG("Returning custom Opti parameters");
return NVSDK_NGX_Result_Success;
}
@@ -486,6 +490,8 @@ NVSDK_NGX_API NVSDK_NGX_Result NVSDK_NGX_D3D12_GetCapabilityParameters(NVSDK_NGX
*OutParameters = GetNGXParameters("OptiDx12");
LOG_DEBUG("Returning custom Opti parameters");
return NVSDK_NGX_Result_Success;
}
+23 -8
View File
@@ -150,6 +150,12 @@ NVSDK_NGX_API NVSDK_NGX_Result NVSDK_NGX_VULKAN_Init_Ext2(
if (!_skipInit)
UpdateInitPaths(&localFeatureInfo);
State::Instance().NVNGX_ApplicationId = InApplicationId;
State::Instance().NVNGX_ApplicationDataPath = std::wstring(InApplicationDataPath);
State::Instance().NVNGX_Version = InSDKVersion;
State::Instance().NVNGX_FeatureInfo = &localFeatureInfo;
State::Instance().NVNGX_Version = InSDKVersion;
if (Config::Instance()->DLSSEnabled.value_or_default() && !_skipInit)
{
if (Config::Instance()->UseGenericAppIdWithDlss.value_or_default())
@@ -170,15 +176,21 @@ NVSDK_NGX_API NVSDK_NGX_Result NVSDK_NGX_VULKAN_Init_Ext2(
}
}
DLSSGMod::InitDLSSGMod_Vulkan();
DLSSGMod::VULKAN_Init_Ext2(InApplicationId, InApplicationDataPath, InInstance, InPD, InDevice, InGIPA, InGDPA,
InSDKVersion, &localFeatureInfo);
if (InFeatureInfo != nullptr && InSDKVersion > 0x0000013)
State::Instance().NVNGX_Logger = InFeatureInfo->LoggingInfo;
State::Instance().NVNGX_ApplicationId = InApplicationId;
State::Instance().NVNGX_ApplicationDataPath = std::wstring(InApplicationDataPath);
State::Instance().NVNGX_Version = InSDKVersion;
State::Instance().NVNGX_FeatureInfo = &localFeatureInfo;
State::Instance().NVNGX_Version = InSDKVersion;
if (State::Instance().NvngxVkInited)
{
LOG_WARN("NVNGX already inited");
return NVSDK_NGX_Result_Success;
}
if (State::Instance().activeFgInput == FGInput::Nukems)
{
DLSSGMod::InitDLSSGMod_Vulkan();
DLSSGMod::VULKAN_Init_Ext2(InApplicationId, InApplicationDataPath, InInstance, InPD, InDevice, InGIPA, InGDPA,
InSDKVersion, &localFeatureInfo);
}
State::Instance().NVNGX_FeatureInfo_Paths.clear();
@@ -458,6 +470,9 @@ NVSDK_NGX_API NVSDK_NGX_Result NVSDK_NGX_VULKAN_GetParameters(NVSDK_NGX_Paramete
}
*OutParameters = GetNGXParameters("OptiVk");
LOG_DEBUG("Returning custom Opti parameters");
return NVSDK_NGX_Result_Success;
}