This is for the client, right? Does the host benefit from the new GPU prioritization features in the new Windows builds? (since this change reminded me of that new feature in Windows)
All it does is give the GPU capture thread higher priority then the foreground application, the result is the foreground application can run at 100% GPU usage without DXGI capture rates being affected. It also helps enormously with microstuttering, and the hit to GPU overall performance loss due to LG has been improved as a result.
Just to be clear, this is not the application CPU priority, or the capture thread priority, this is the Direct3D thread inside the kernel that has been spawned on behalf of LG for DXGI DD, which is why it needs to run as SYSTEM via PsExec for it to be able to set this priority.
The Windows GPU prioritization thing is supposed to help scenarios like OBS capturing at the same time, and isn’t related to CPU. Have you looked into if that helps Looking Glass further?
Hardware accelerated scheduling has nothing to do with capture, it will help with scheduling of everything overall. We are setting the GPU thread priority, it’s up to the schedular (hardware or software) to decide if it will obey it or not.
Also OBS uses the same method to boost it’s priority but it will fail unless it can run as the SYSTEM account also, if you are capturing under Windows with OBS I suggest you run OBS using PsExec also.
I have not looked in depth, all I know is that running OBS as Administrator is not enough on Windows 10 to allow setting the d3d kernel thread priority. A higher level of access is required which can be obtained via PsExec.
I have a service launcher for LG in the works that will remove the need for PsExec which is planned (at the latest) for Beta 3
Then you wonder why the OBS devs don’t create an additional shortcut that uses PsExec for the traditional installer, or a “restart in psexec mode” option.
Because PsExec can’t be distributed as it’s a microsoft SysInternals product. Also running as SYSTEM is far more dangerous then running as Administrator, especially for something like OBS that allows loadable plugins (do you want a browser plugin running as SYSTEM?). Right now the most secure way to get a capture like this is to use LG to capture and the LG module for OBS which will give you the best of both worlds.
Maybe sandbox the capture component, then it communicates with user mode OBS? IDK, that’s what I think, but it might not be compatible with zero copy NVENC.
Yes to the Looking Glass to OBS on Linux host solution, but we still need zero copy on Linux for NVENC for full effectiveness. That’s not really possible with their current OpenGL implementation.
Since that’s OpenGL 4.5, might have been hampered by single core performance.
The next critical step is zero copy where the OBS canvas framebuffers stay on the GPU and go straight to the NVENC encoder on the Linux host. (what EposVox calls “New NVENC”)
Zero frame drops due to rendering or encoder lag, 3% cpu usage, NvENC best quality… how is that hampered?
What you are asking for requires GPU->GPU transfers, which is not possible at current without support from the GPU vendors for this feature. Zero copy for LG is never going to be a reality without such support.