I’m running Windows 11 and using two GPUs: an RTX 3080 and an RTX 4060. I have more than 4 monitors connected for work, so I split the load across both cards.
My issue is with hardware-accelerated video decoding (NVDEC):
Windows always seems to assign NVDEC to the primary GPU, which in my case is the RTX 3080. Unfortunately, that’s also the GPU I use for running games and other high-performance tasks, so there’s very little headroom left for video decoding.
This becomes a problem when I’m watching videos while running high-performance applications.
What I want:
I want to offload all video decode (NVDEC), video encode (NVENC), DWM composition, and possibly audio processing to my RTX 4060, which drives most of my non-primary displays and typically uses less than 30% of the system’s resources.
But I don’t want to switch the primary display to the 4060, because that would:
- Require reassigning the GPU preference for all my high-performance apps
- Cause the Start Menu, taskbar, and Windows key behavior to move to the wrong monitor
What I’ve tried:
-
Manually assigning programs (like browsers) to the 4060 in Windows Graphics Settings
-
Disabling hardware acceleration in browsers (which helps, but uses CPU instead of leveraging the 4060)
-
Checking NVIDIA Control Panel and NVENC SDK for any settings (nothing available)
-
Researching registry hacks and driver overrides (found nothing that affects NVDEC binding)
Question:
Is there any known way, via Windows settings, driver configuration, registry hack, or 3rd-party tool, to make NVDEC/NVENC run on a specific GPU, such as my 4060, without changing the primary display device?
Any insight, workaround, or even a hacky solution would be greatly appreciated!