Hello everyone,
I’m integrating NVIDIA Streamline using manual hooks, when calling slEvaluateFeature, I receive the following error:
[20-05-42][streamline][error][tid:31300][74s:656ms:907us]commonEntry.cpp:530[evaluateNGXFeature] NVSDK_NGX_D3D11_EvaluateFeature((ID3D11DeviceContext*)cmdList, handle, ctx.ngxContext.params, nullptr) failed 0xbad00005
[20-05-44][streamline][info][tid:31300][76s:396ms:548us]commonEntry.cpp:947[ngxLog] [NGXDLAA::EvaluateFeature:937] Error: Render subrect base and size exceed the dimensions of the input Color image
[20-05-44][streamline][info][tid:31300][76s:397ms:073us]commonEntry.cpp:948[ngxLog] [NGXDLAA::EvaluateFeature:938] NVSDK_NGX_Result_FAIL_InvalidParameter
Setup Details:
- GPU: RTX 4090 Laptop
- API: DirectX 11
- Streamline SDK: Latest version
eUseManualHookingflag set
Issues:
slIsFeatureSupported(sl::kFeatureDLSS, adapterInfo)returnseFailslDLSSGetOptimalSettingsreturns corrupt values (e.g., min/max render dimensions are invalid).EvaluateFeaturefails with0xbad00005, indicating an invalid parameter or incorrect render target size.
Full Log: https://pastebin.com/urWpmkku
Initialization Code:
bool Streamline::Initialize(ID3D11Device* device, ID3D11DeviceContext* context, IDXGISwapChain* swapChain,
IDXGISwapChain** upgradedSwapChain, uint32_t appID, bool showConsole, bool verboseLogging) {
sl::Preferences prefs = {};
prefs.applicationId = appID;
prefs.renderAPI = sl::RenderAPI::eD3D11;
prefs.allocateCallback = allocateResourceCallback;
prefs.releaseCallback = releaseResourceCallback;
prefs.showConsole = showConsole;
prefs.logLevel = verboseLogging ? sl::LogLevel::eVerbose : sl::LogLevel::eDefault;
prefs.flags |= sl::PreferenceFlags::eUseManualHooking;
if (!successCheck(slInit(prefs, sl::kSDKVersion), "slInit")) {
LogError("Failed to initialize Streamline SDK.");
return false;
}
if (sl::Result result = slSetD3DDevice(m_device); result != sl::Result::eOk) {
LogError("Failed to set DX11 device for SL: " + std::to_string(static_cast<int>(result)));
return false;
}
m_featureSupport[sl::kFeatureDLSS] = true; // slIsFeatureSupported(sl::kFeatureDLSS, adapterInfo) reports false, why?
}
Questions:
What could be causing NVSDK_NGX_Result_FAIL_InvalidParameter in EvaluateFeature?
Could my manual hooking setup be missing a necessary initialization step?
Any insights, debugging tips, or pointers would be greatly appreciated. Thanks!