Skip to main content
Participant
February 24, 2014

Supporting multiple Rifts on same machine

Does the current SDK support connecting to multiple Oculus Rift HMDs on the same machine?

I currently have two Rift DKs connected, but when I enumerate the HMDs using the SDK, it only reports that 1 HMD is detected. Here is the code I'm using to detect HMDs:
OVR::System::Init();

// Create device manager
OVR::Ptr<OVR::DeviceManager> deviceManager = *OVR::DeviceManager::Create();

// Enumerate and save HMD devices
int count = 0;
OVR::DeviceEnumerator<OVR::HMDDevice> itr = deviceManager->EnumerateDevices<OVR::HMDDevice>();
while(itr) {
OVR::Ptr<OVR::HMDDevice> pHMD = *itr.CreateDevice();
if(pHMD) {
++count;
}
itr.Next();
}


Is my code incorrect or is this just not currently supported?

I'm running this code on a Windows 7 64-bit machine. Both HMDs are detected in the "Screen Resolution" control panel.

    11 replies

    Inspiring
    February 26, 2014
    Sorry. Using multiple Rifts on the same machine is not supported (even though the API looks like it should).
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
    flashkAuthor
    Participant
    February 26, 2014
    Thanks. Any plans to support this in a future SDK release?
    Inspiring
    February 28, 2014
    I don't know of any specific plans, sorry.
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
    New Participant
    March 3, 2014
    This would be a really helpful tool for my clients in the industrial world who want to experience it all in a large group w/multiple HUD. If anyone else has ideas please dive in. Thanks! :P
    Inspiring
    March 3, 2014
    Well even if it was supported, most PCs could not handle having multiple games running in stereo 3D at 60fps+. So the best option is to network the computers together on a LAN and have one machine per user.
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
    New Participant
    March 4, 2014
    We have been able to get this to work with 2 HMDs using the Unity plugin but it will only support up to two. If a third one is connected the call to get orientation for that particular HMD returns false and the OVRDevice script will only show 2 devices are found.

    Are there any plans on releasing the source code used to build the Unity plugin dll?

    Thanks!
    flashkAuthor
    Participant
    August 12, 2014
    I tried getting multiple Rifts working on the same machine using the new SDK (0.4.1). I am successfully able to get a DK1 and DK2 working simultaneously. However, two DK2s simultaneously does not work. In this case "ovrHmd_Detect()" returns 1. Just wondering if this is still an unsupported feature or a bug with the new SDK?
    New Participant
    August 31, 2014
    I do have the exact same problem (ovrHmd_Detect() returns 1 altough two DK2 are connected to the computer).
    I guess it's a bug in the SDK...
    kojack
    Honored Contributor
    August 31, 2014
    Not detecting two DK2s could be because handling 2 cameras is troublesome (how to tell who is in view of which camera, what happens when two headsets are in the same camera view, etc), whereas DK1 is easier.
    Author: Oculus Monitor , Auto Oculus Touch , Forum Dark Mode , Phantom Touch Remover , X-Plane Fixer Hardware: Threadripper 1950x, MSI Gaming Trio 2080TI, Asrock X399 Taich Headsets: Wrap 1200VR, DK1, DK2, CV1, Rift-S, GearVR, Go, Quest, Quest 2, Reverb G2, Quest 3
    New Participant
    August 31, 2014
    Switching to Direct HMD mode does change the behaviour. In this mode, a call to ovrHmd_Detect() returns 2 as expected in my dual-DK2 configuration.