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!