Author Topic: How can I set which GPU to usefor openGL viewport in a multi GPU system?  (Read 2409 times)

I have a multi GPU system with a couple GTX 1080's and a Titan X.  I see that only 1 GPU is actually being used in the openGL viewport display while working.  it currently is defaulting to one of  the GTX1080 for memory and not the Titan x which has more.  I would like to set the Titan X as the default GPU because of the higher  amount of available memory. Is there a way to do this?  I have my monitors plugged into the Titan X so I would assume that should be the one being used by substance painter, but that is not the case.


Substance Painter doesn't allow you to choose which GPU to use and is not optimized for multiple GPU configurations, we recommend turning off your secondary GPU when using Substance Painter for better stability.

Hi Jeremie,
thanks for the quick response.

It would be nice if substance painter used the memory from the graphics cards that my monitors are plugged into.  when working with many UDIMS at 4k, my titan x runs very smooth as the GPU ram sits around 9-10 gigs used working at 4k and instancing across UDIMS and such.  The titan x has 12 gigs ram so this works perfect. However, I have to manually disable all of my other GTX 1080's for Painter to use my Titanx and then they aren't available when I want to render iray. When Painter defaults to using one of the gtx 1080's it is very slow and sluggish bc it is utilizing all 8gigs of the gtx 1080 while working in 4k.  Maybe in the future you guys could somehow make substance painter use the GPU which the monitors are using? Or to be able to set it in preferences when people have multi GPU systems. I don't see why it wouldn't default to the GPU which is displaying the program. Anyways, I hope this could be fixed somehow in future releases.   


Would swapping around your cards pcie connections make a difference?

Hi Jdouglas,

thanks for your reply.
I would try and swap but all of my cards are on a  water cooled setup and I dont want to have to start taking things apart. I just figured that since my titan x is in slot 1 and both of my monitors are connected to it, that it would use that card.  It defaults to using slot 2 gpu which is a gtx1080.   and if I disable slot 2 gpu, then it defaults to the slot 3 gpu when I run SP.
I do a lot of GPU rendering and testing in maya, so it's just a pain to constantly disable and enable GPU's in windows device manager, especially while trying to work between both programs. Maybe eventually SP could have a  default GPU selector in the saved preferences?

ok problem solved.  I found the answer after digging into the feature requests forum.  It was answered by Cyrille Damez
......all you have to do is go into NVIDIA control panel: manage 3d settings: global settings: OpenGL rendering GPU   and select which card you want to use.

You can force which GPU to use on a per application basis using Nvidia's control panel.