News: DXGI Capture Performance

As many of you are aware, LG usually requires some kind of frame limiter on the guest such as vsync to ensure there is enough GPU time left for capture and processing.

Over the past few days, I have been experimenting with a very poorly documented Microsoft API call D3DKMTSetProcessSchedulingPriorityClass. The results of which are night and day, not only can the LG host now obtain a higher GPU thread priority than the foreground application, it seems to have yielded a lower drop in overall performance for the foreground application.

This is in the current master tree for LG, to get this boost, you must run the LG host with system privs via PsExec -s -i -d looking-glass-host.exe. It will warn in the log of it was unsuccessful.

I suspect D3DKMT stands for Direct3D Kernel Mode Thread, this is not boosting the application priority, but the kernel mode GPU thread.

Several other minor fixes have gone in also, but this one change has made a huge difference. I am running a stress test right now which is being livestreamed if anyone want’s to see :slight_smile:.

100% GPU load and the LG host is not missing any frames.

Finished, video here

9 Likes

Oh, this is awesome!

1 Like

Does this have anything to do with the new GPU prioritization features? And of course signing the executable to get higher privileges is out of the question.