cancel
Showing results for 
Search instead for 
Did you mean: 

Oculus runtime 0.8 on 2012 Retina Macbook Pro... with eGPU!!

r00x
Adventurer
Yep. :lol: it works! I have managed to scrape together the functionality I lost when the runtime updated from 0.6 to 0.7, introducing the new Direct Driver mode that broke compatibility with most laptops.

I have my Rift DK2 connected to a GPU on a PCIE expansion platform - the PE4C V3.0 - which goes to an ExpressCard/34 adapter (Sonnet Echo Pro) which in turn is plugged into one of the Thunderbolt ports on the side of the Macbook.

And again... it works. The Rift is recognised and it works exactly as it does on desktops. I don't advocate this as a replacement for a desktop - as you'll see below, there are downsides, and if portability is your desire it's honestly not a lot better than a desktop, lugging around all these cables and bits. Just doing this for fun really!!!

Currently, the only GPU I have spare to test with is an old GTX 560Ti 448 core, and compared to this machine's dGPU (an Nvidia GT650M) it's not drastically faster. I'm still testing but so far performance seems pretty much on par with what I got out of the machine on runtime 0.5/0.6 before Direct Driver mode was implemented. Which is to say, not exactly butter smooth for the most part!

I expect, being realistic, that I won't be able to eke much more out of it even if I pop a GTX 970 or something on it - the PCIE bandwidth is limited to PCIE 2.0 x1, not exactly blisteringly fast. I've heard rumour that the most practical GPU that can be used this way is something like a GTX 660Ti - anything more and you may be seeing diminishing returns - but I guess I could test that at some point and see for myself. :twisted:

Another strange caveat of abusing the 0.7/0.8 direct mode this way is I have to minimise the preview window that appears on the Macbook's screen where possible or it reduces performance and I get judder. I expect this is because it doesn't like passing back the video feed via the Thunderbolt connection, though I can't see the bus utilisation jumping appreciably even when the video feed is not minimised. An alternative is to connect an external monitor to the eGPU alongside the Rift, and set that to the only active monitor, that also seems to fix it which makes sense.

Elite:Dangerous, for those wondering, does not work alas. SteamVR isn't happy with the GT650m-GTX 560Ti combination it seems, and the headset never gets activated (camera comes on but HMD stays in standby). This probably means most/all SteamVR stuff is out of the question on this setup, at least for now...

Project CARS works but performance is about on par with the GT650m, which is to say "a bit naff". The old GTX 560Ti GPU is very heavily utilised even in the simplest of demos like the new Leap Motion Blocks demo, really drives home the point about how much heavier VR is on the system imho.

Long and short of it is, by running the Rift off a normal desktop GPU connected to the laptop, we ostensibly remove the hardware limitation that prevented it from working with the laptop's internal GPU(s). This would be the HDMI port(s) and how they tend to be routed through the processor's integrated GPU which prevents Direct Driver mode from working.

Probably this will be a very practical way to get VR on laptops with upcoming/just-released 2016 models that support USB-C and Thunderbolt 3, which will be more than fast enough to support eGPUs at full speed (as well as being endorsed by Intel for eGPU purposes, unlike the hacky stuff I'm doing).
11 REPLIES 11

cybereality
Grand Champion
This put a smile on my face.
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

r00x
Adventurer
"cybereality" wrote:
This put a smile on my face.

Would this be a "that's cool" smile, or a "what an idiot" smile? :lol:

OK, so I tried a GTX 970 in this setup. I was wrong - it's miles faster. The card is marginally slower than in a proper desktop, I think, but this laptop actually outperformed my old desktop in benchmarks like 3DMark Fire Strike (3570K and R9 280X, both heavily overclocked).

Just like before, I can't have the Rift's output mirrored to the internal LCD, that causes judder. But if it's minimized where possible, or sent to an external monitor on the eGPU next to the Rift, it works great in stuff like the Oculus demo scene or the Blocks demo from Leap Motion.

SteamVR is still like "...what" unfortunately. Elite:Dangerous, no worky. Shame as although this is a bit of fun it would've made a useful semi-portable E:D demo rig... can't lug a desktop to work and don't want to build a compact one just for this, even if the cables are awkward the laptop and eGPU could pretty much be slung in a bag.

Project CARS looks at first glance to still be juddery in the menus, but in actual gameplay it's smooth. It's pushing the GPU quite hard though, so there's some tweaking to do.

I'm waiting for the latest build of Eve Valkyrie to come down to test!!

cybereality
Grand Champion
It's funny because I would bet money there would be no way that would work. Yet you're saying it works.

Can you take a picture?
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

r00x
Adventurer
It definitely works, I've been using it to demo Rift/Leap Motion stuff this afternoon!! Primarily the new Blocks demo and Eve Valkyrie.

What a mess it makes, though!!! Cables everywhere! Sure, here's some piccies. I've tried to take multiple angles as there's a lot going on. If there's more compelling evidence you want/can think of, let me know!

http://imgur.com/a/qJ5pc

Small thumbnail/preview for the lazy:



So we've got the Dell DA-2 power supply on the left, this powers the GTX 970 which is connected to the PE4C v3.0 Expresscard/34-PCIE adapter in the middle. You can see the Sonnet Echo Pro this connects to, and in turn the Thunderbolt cable to the Mac. You can also see the Macbook power cable which as I type this, I've just noticed has fallen out... blargh, magsafe connectors... blessing and curse.

The USB hub connects the DK2 and its camera (camera out of frame, it's sat on the TV). I only have two USB ports and the other is reserved for the Xbox 360 controller or the Leap Motion (not pictured), neither of which like the hub.

In these pictures, it's just running the Oculus demo scene - smoothly and perfectly might I add!

Also shown is the DVI cable which goes to an external monitor (in this case it's a DVI>HDMI cable and is plugged into a TV). The Macbook display is disabled. This is the easiest way to get as close to full performance and best compatibility as possible - if I try to use the internal LCD as primary monitor things slow down and get juddery (for aforementioned reasons earlier in thread, I believe) and minimising apps fixes it but is not possible for all apps. If I use internal LCD as secondary monitor (apps open on TV/GTX 970) then it's better but some apps at fullscreen can still exhibit judder if the mirror window is too big and spans the monitors - Eve Valkyrie does this for instance. So it's best just to use an external monitor, run everything off the GTX 970 and for want of a better phrase "turn off" the Macbook's own internal GPU.

cybereality
Grand Champion
Great stuff.
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

r00x
Adventurer
Cheers! :lol: Is it so crazy that it works, then? To my understanding the problem was the internal GPU on laptops being "in the way" of the runtime's new Direct Driver method. My assumption was by replicating the arrangement you'd have on a desktop, there would be nothing preventing it working...

As far as the Rift runtime/services/whatever can see, there's a computer with a GTX 970 and a compatible HDMI port hanging off the system's PCIe bus, with a Rift attached. Just like a desktop! (well... this assumption is banking on it not knowing/caring about there being a lot of cables, adaptors and rubbish in between!) 😄

It seems there was every chance this wouldn't work - the Vive/SteamVR implementation is broken for instance. I'm guessing it can't handle there also being a completely different GPU in the system (the onboard GT650m, routed via CPU to laptop LCD). No idea what it does differently that means it won't work - after all I thought it used the Oculus runtime to drive the Rift... and since *that* worked, surely it would too... but apparently not!! SteamVR *did* say the HMD was detected, and the camera/tracking, but the headset never wakes up.

Would be interesting if other eGPU users could chime in on their experiences, I can't be the first to try this...

pjenness
Rising Star
Looks like the Same setup I posted over a year ago 🙂

See my Signature for details.

Be curious if will work with CV1.. tho I believe there is no MAC support, the hardware may work on a Windows laptop?


-P
Drift VFX Visual, Virtual , Vertical Want 970GTX on Macbook for good FPS? https://forums.oculus.com/viewtopic.php?f=26&t=17349

r00x
Adventurer
There you are! I was sure I'd heard someone mention eGPU before on here... might well have been you!! 😄

Yeah for CV1 you'd need it to run on Windows it seems. When my CV1 arrives I'll definitely try it for a laugh! 😄

Have you got any updates since your thread? Have you not tried it on Windows yet then?

Windows on mine was a major headache! The lazy way was to just disable the internal dGPU which freed up the resources for the eGPU to use. The proper way seems to be to override the DSDT tables to expand into 36-bit memory space and (depending on GPU - not necessary for my GTX 970 but was for other cards) use eGPU Setup to run PCI compaction and force one of them into 32-bit space. Then I get both GPUs.

If your Macbook doesn't have a discreet graphics card (like a GT650m or 750m) then you're in luck and it's probably much easier to get the eGPU going. I'm not sure how that will affect the Rift because if your Macbook uses the Intel HDxxxx iGPU in Windows, the Nvidia drivers will probably try and enable Optimus (PCIE compression and pass-back of video - you can play games via your eGPU on the Macbook's internal LCD with less performance hit) - and we know Optimus spells trouble! But maybe it would be okay because again the Rift should be hanging off the eGPU with nothing "in the way" to stop it from being detected...

Honestly now I think about it, I might try disabling the internal dGPU again. Maybe with that one entirely out of the way SteamVR will figure out where the DK2 is... :lol:

pjenness
Rising Star
"r00x" wrote:
There you are! I was sure I'd heard someone mention eGPU before on here... might well have been you!! 😄

Yeah for CV1 you'd need it to run on Windows it seems. When my CV1 arrives I'll definitely try it for a laugh! 😄

Have you got any updates since your thread? Have you not tried it on Windows yet then?



Nah, havent tried on windows, since I have my desktop. But, no reason I cant, I have an oldish windows laptop that could make a good test case I guess.

Yea maybe will wait til CV1 and have a play.

Good to see Im not the only one loopy enough to drop $$$ on this. It worked, but I never used it in the end, as the Mac support was bad and frustrating to use.

-P
Drift VFX Visual, Virtual , Vertical Want 970GTX on Macbook for good FPS? https://forums.oculus.com/viewtopic.php?f=26&t=17349