Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Main monitor on different GPU prevents VR applications detecting Vive #394
If you have two GPU's, everything hooked up as in configuration  below, then applications do not detect a Vive via OpenVR. SteamVR works fine (can walk around in the home environment). But most games do not detect the display when launching, and it leaves you in the "waiting for application" environment.
I am running Windows 10, Radeon driver version 17.1.1.
Configuration  (Does not work):
Configuration  (Does not work):
Configuration 3 (Works):
Applications that do not work with  and :
Games that DID work with  and :
This is due too GPU driver limitations and is not directly an openvr issue.
In recent years since the new APIs vulkan and dx12 were made available their multi GPU capabilities have been removed.
At one time benchmarks were published showing how a gt 520 was able to double its in game fps using dx12.
The missing multi vendor multi GPU support of the new APIs is a sore miss.
As discrete cards often come with just one HDMI port with multiple display ports the issues of no multi GPU support has caused a lot of confusion and inconvenience to new vr users. At the time I first tried using steamvr using dvi was not recommended. The wait on passive display port to HDMI adapter arriving was a long one for me.
Make sure both of your HDMI cables are 1.4b spec or newer and use a passive display port to HDMI adapter; if you can, too allow monitor and hmd be connected to same GPU.
For now AFAIK all PC vr hmds need to be connected to same GPU as main monitor
I may be having this same issue with OSVR HDK2. I have multiple graphics cards. I've had success with extended mode (headset as monitor). But when running in direct mode, SteamVR is stuck always waiting to load the application.
I've tried the SteamVR tutorial and games and it's the same.
I have two graphics cards, ASUS NV GTX 1080, and EVGA NV GTX 680.
Might be related...
I was able to get my headset working by connecting to the slower second card. So if there's some enumeration, maybe the settings could make the device selectable so it uses the faster graphics card?
One developer suggests physically swapping the graphics cards to change the order...
I think this is key. I had the same bug, but in my particular setup I was able to reliably workaround it by ensuring that my primary monitor is on a display which is also directly connected to my GPU. In my case, I have a laptop with an eGPU (GTX 1080 Ti) with integrated Intel graphics. If I switch my main display from my laptop's monitor (controlled by the Intel integrated graphics) to the discrete eGPU (e.g. a second attached monitor connected to the eGPU case) then it will work reliably. Another method is to simply disable the display on other GPU's or, if on a laptop, just close the lid.
It took me 3 days of searching and piecing posts together, running useless tests with Microsoft support, but I have finally solved the Headset plugged into wrong video card error! Specifically when playing Skyrim VR on Steam.
I have a Surface Book 2 with the NVIDIA 1060 GTX chip. I am also using the Samsung Odyssey Windows Mixed Reality headset. And the OS is Windows 10.
This is a multi-step process and I will try to explain in great detail, since no one else has taken the time as of yet.
First - Log into the NVIDIA Control Panel. Sounds easy, right? Not so much. Typing NVIDIA in the start menu brings up nothing of use. You may be thinking, I have the NVIDIA GeForce Experience... well that will not help you here. First go to the Windows Control Panel, then select Hardware and Sound, then at the bottom you will see NVIDIA Control Panel. That's where you want to be!
Second - On the taskbar to the left you will see 3 items under the only topic, 3D Settings. Select Manage 3D Settings. That opens the main screen (may take a minute) into the Global Settings tab. So I bet you're thinking, let's just change the global settings to use the NVIDIA chip, all my apps will run with super power and we can get this thing started. Well, that's what I thought to, but not so much. It will allow you to play the game, but forget about ever multi-tasking. This setting uses up all your system resourses and will cripple your pc.
What you want to do is go to the Program Settings tab. From here you can select the program you want to use the high end chip, but be careful. I have the regular Skyrim installed as well so I saw Elder Scrolls V Skyrim, Skyrimlauncher, Skyrim Test, a bunch of stuff. I changed them all, but that didn't do it.
What you will likely have to do is click Add and find the game you are looking for, in my case SkyrimVR. It will load with the entire pathname of the file, not pretty, but go ahead and select the high end chip and then exit. For some reason they felt like the 3 options were too overwhelming so there is no save option that I could find, but when you exit it will ask if you want to save.
Last thing to do is plug in and get started. I have read a lot of posts about use this and don't use that. If you have the SB2, you know there are 3 options to plug things in, USB-A, USB-C, and another USB-A. Which means you need a converter plug or a docking station. I have the Surface Dock, and of course, it does not come with an HDMI plug. 2 Mini Display ports and 2 USB-A ports, but no HDMI or even USB-C. I will list the ways that I have connected and I can tell you after hours of playing in each of them, I have not noticed any of them to be better, less latent, higher quality, or whatever than any of the others.
The Surface dock gives you 2 mini-display ports so you can VR and have another monitor plugged in. It does requires an HDMI to Mini Displayport adapter which is about $40 on top of the $200 for the dock. This is by far the most expensive option. It does use the power slot to plug in leaving all your other ports open, but the power is a slight bit lower than the regular charger.
If you don't know this already, when you are pushing your graphics chip and you hear the fans come on, your SB2 laptop is not charging... well, it's charging, but it's using more power than you can give it. Luckily I tend to feel ill and want to take a break before the charge is out and it does charge back up pretty quick when you disconnect the headset. I don't know why they can't just ship 120 watt chargers, but I'm sure there's a reason. Also the 2 bricks on the Surface Dock are pretty heavy compared to the single charging brick, and you have the power to brick one, then the cord from brick one to brick two, then another cord from brick two to the laptop. What I'm saying is it has lots of cords, yes it is better than those oldschool giant docks that the laptop sits on, but still not as travel friendly as I had hoped it would be.
Moving on, next is the Microsoft Surface USB-C to HDMI adapter. This works well, I can leave it on the HDMI on my headset and forget it's there. The only thing that is a pain is that the USB-C is on the opposite side of the USB-A, so even though it comes with a long cord, every inch I can get out of that thing could allow me to get out of the way of something coming at me, and less chance of me pulling the laptop off of the table.
Last thing I tried (and the one I currently use) is a n Insignia USB Type-C Multiport Adapter. I found this in the Apple section of Best Buy, it plugs in using USB-C, and it has an HDMI, USB-A and another USB-C output. This allows my to keep the USB-A and HDMI cables plugged in so when I want to play all I do is plug in the single USB-C adapter and I'm good to go.
Hopefully this helps and saves someone time, even though I know a lot of people will be upset at the length of the post. I just kept getting close, and then kept failing, so I wanted to put it all out there. Plus I never post anything, so I have a lot stored up. Good luck and enjoy!
Thank you DJ1ce I had an issue with WebVR using Firefox and an HTC Vive.
I have Alienware with an Nvidia card on Windows 10 and your solution fixed an issue I was having that prevented me from accessing anything on aframe.io or other WebVR projects.
I was getting an error that my headset was plugged into the wrong video card even though SteamVR was working fine.
Thank you for your detailed solution.