Streamline takes long to initialize
Hi,
I've noticed that Streamline can easily take up to 2.5 seconds to initialize. This seems quite excessive considering this can contribute to over half of the time spent loading some of our content. Looking at it in Superluminal doesn't provide much insight as it's all inside NvAPI.
Below is a snapshot of slInit() which takes ~1.5 seconds on a quite powerful CPU. slSetD3DDevice() takes about the same amount of time. So that adds up quite a bit.
It would be great to see if there's any room for improvement here.
Thanks in advance, Simon
Are you using a driver r575 (or newer)? nvbug: 5447170
The capture above was taken on 580.63. I've updated to latest (580.97) and it makes no difference. Here is the full picture of what I see of both slInit and slSetD3DDevice.
@jake-nv is there anything we can provide to help move this issue along? It's quite sad that about 40% of our startup time is being dominated by this
For older driver indeed its even slower at 573 it takes more like 5 seconds. So yes it was worse, now it still bad.
I tried making it a blocker for 2.10, but management didn’t agree on the seriousness of the issue. If you have a point of contact in NV devrel reach out to them to stress the priority and ensure it gets into 2.11.
I tried making it a blocker for 2.10, but management didn’t agree on the seriousness of the issue. If you have a point of contact in NV devrel reach out to them to stress the priority and ensure it gets into 2.11.
Thanks. I will follow up
In case anybody else would like mitigations for development purposes only:
- Explicitly disable eAllowOTA when calling
slInit(). This prevents Streamline itself from launching a number of synchronous external update processes. - Use the registry key workaround for "NVIDIA vGPU software graphics driver for Windows sends a remote call ...". This prevents the driver (NGX) from launching a number of synchronous external update processes.
This will prevent over-the-air updates from working on all games. That includes overrides provided by the NVIDIA App.
OTA Enabled: slInit (759ms) + slSetD3DDevice (957ms) = 1716ms. OTA Disabled: slInit (410ms) + slSetD3DDevice (636ms) = 1046ms.
As measured on my machine, Streamline startup time is nearly twice as fast. There's another 150ms being left on the table because of WinVerifyTrust performance - I haven't bothered thoroughly checking.