Question / Help Dual GTX 1060 GPU - only one monitor visible

nikasio14

New Member
Hi there!

My name is Niklas, I am new to this forum but not so new in using OBS :-)
As headlined, my Win10 i7 6K 64GB RAM works with Dual MSI GTX 1060 6G on Nvidia drivers.
GPU 1 - 4K Benq as main streaming monitor
GPU 2 - 2x FHD Benq as Mixing console, OBS, storyboard etc.

When i only had one GPU with FHD monitors, i could switch between all three displays, however since the second GPU takes care of the two FHD's, i don't see them anymore in OBS... I stream webinars but would like to add some tutorials on how i do this.
You have any idea on how to make the two displays working with OBS?

Thanks for your help!

Yours, Niklas

[Edit: it's MSI not Zotac GTX's, corrected]
 

Narcogen

Active Member
There's basically no advantage in running a dual GPU setup with OBS, and several disadvantages. You can't split rendering and encoding tasks without creating a bottleneck that's worse than the problem you're solving, NVENC is basically free if you're not using lookahead or psycho visual tuning, you can't game capture on the 2nd GPU, and just having a 2nd GPU installed can reduce available PCI bandwidth for both cards on certain motherboards. In addition, OBS doesn't play nice with SLI.

The best use case for a 2nd strong GPU for use with OBS is in a second PC.
 

nikasio14

New Member
Okay i thought that this would be the only possible solution.
Speed of my pc drops significantly if i plug all monitors in the same GPU. 1060s do not support SLI

So that means OBS does not support multiple GPUs at all?
 

koala

Active Member
It's not that OBS doesn't work with multiple GPUs, it's the PC architecture that's not designed to work efficiently the way OBS needs.

If you have 2 GPUs, not with SLI but just 2 GPUs, and one monitor connected to each, everything displayed on a monitor is rendered by its corresponding GPU. This is a good setup for load balancing and distribute GPU rendering load to both GPUs. If you don't use OBS.

Now you add OBS. OBS works this way: It has a hidden invisible frame buffer on one GPU, where it composites all sources and renders the outgoing video. All filters also run on the GPU, because they are implemented as shaders. This is a very efficient setup, because on a single GPU machine, OBS captures the game's or app's frame buffer and directly use it on the same GPU and memory for compositing. Just pointers to memory are handled, and very little memory is moved around, so it's very efficient.

If you have 2 GPUs, OBS has to decide and choose one GPU where it keeps its hidden frame buffer. If you want to capture stuff from the other monitor, OBS has to copy the frame buffer data from the other GPU through the pci-express bus to the GPU OBS is running on to include it in the composited video. This copying is a very resource intensive procedure and creates a resource bottleneck, because the presence of 2 GPUs limit the pci-express bandwidth to x8 speed instead of x16 speed, if only a single GPU card is physically present.

Personally, I don't have 2 GPUs, so I'm unable to check, but if OBS doesn't offer to display capture a monitor for you that is connected to "the other" GPU, it seems to me that OBS is considering this capturing so resource intensive that it is impossible to accomplish, so it doesn't even offer it.

To avoid this but keep both GPUs, you can limit all OBS captures to only one monitor. Capture stuff only from one monitor and make sure OBS is running on that GPU. If OBS is starting on the wrong GPU, try to use Windows settings to assign OBS to one specific GPU. Which GPU OBS is using can be seen in the OBS logfile, and you assign the GPU with Windows Settings->System->Display->Graphics Settings.

As I said, I don't have multple GPUs, so I'm unable to verify, but I assume you can run OBS on one GPU (have its frame buffer on one GPU) but have the OBS window on a monitor connected to the other GPU. So you can still benefit from your second monitor for pure display purposes. Just move OBS to the monitor you want it on - after assigning the correct GPU to OBS and restarting OBS. It's only an idea that might work or not.
On which GPU OBS is running and which GPU's resources are used by OBS can be seen with Windows task manager. There is a column where the GPU number is displayed.
 

FerretBomb

Active Member
Plugging all of your monitors into one GPU should not affect the speed of the system at all. If it does, you have an underlying problem that needs to be fixed.
 

nikasio14

New Member
Okay i will replug my monitors and check system specs and performance once again.

Koala your explanationis very great and i am thankful for that and your time to write it!! :-) (Y)
 
Top