A stable 🤞 configuration for the Oculus Rift with Touch on a Razer Blade Stealth with Razer Core
tl;dr
The Oculus Sensors seem to work fine hanging off a single USB 3.0 port on the Razer Blade Stealth through a USB 2.0 or 3.0 hub, along with the Xbox Wireless Adapter and an SSD, rather than through the USB ports on the Razer Core.
Using the Razer Blade Stealth exclusively through an external monitor plugged into the video card in the Core, and disabling the laptop LCD, makes the Steam VR desktop view and Virtual Desktop work.
Disabling Intel Turbo Boost seems to prevent overheating and a whea_uncorrectable_error blue screen during long play sessions.
Ongoing VR issues
In May 2016, I wrote about my initial setup of the Razer Blade Stealth (early 2016 [Skylake 6500U], QHD), Razer Core, GTX 1080, and Oculus Rift, noting some intermittent USB problems both during setup and afterward:
Eventually I resolved this by only having the Sensor and the Xbox Wireless Adapter for Windows plugged into the USB 3.0 ports on the Core, and plugging the headset into the USB 3.0 port on the left side of the Stealth. (This is the only port that will reach, as the headset HDMI has to be plugged into the GTX 1080 directly.)
In ongoing use of the Oculus Rift, I kept having intermittent Sensor failures when it was plugged into the Core. Eventually, I moved my external SSD to the Core, and the Sensor to the right USB 3.0 port. My USB configuration then looked like this:
- Stealth (Left)
- Razer Core
- Xbox Wireless Adapter
- SSD
- Rift HMD
- Razer Core
- Stealth (Right)
- Oculus Sensor
This mostly worked fine, and if the Sensor flaked out, unplugging it and replugging it seemed to correct it.
However, I would also occasionally experience a blue screen crash (in any game, not just VR), and I'm not entirely sure some of the Sensor failures weren't also symptoms of overheating. In addition, some software, like Steam VR's desktop view, and Virtual Desktop, wouldn't work at all.
USB hub for Oculus Touch
The Oculus Touch controllers included an extra Sensor, and plugging the second Sensor into the Core triggered the same failure from the original setup:
As the failure was intermittent, sometimes I could get two green OKs and get through to setting up the Touch controllers, only to fail there:
Or through that, but fail trying to run any VR game:
USB hubs aren't a supported solution from Oculus (although, to be fair, neither is a laptop with an external GPU), so it seemed like the only answer might be to replace the Razer Blade Stealth with a machine with more onboard USB 3.0 ports.
But, enough people seemed to have success with powered USB hubs that it was worth a shot:
And, since standalone third Sensors come with a USB 2.0 extension cable, it seemed worth trying the powered USB 2.0 hubs I had handy:
- Hawking Technology UH214 4-port USB 2.0 hub
- Gear Head UH7200BLK 7-port USB 2.0 hub
With both Sensors plugged into a hub, I was able to make it through Oculus configuration and the Touch test experiences. Both powered USB 2.0 hubs worked fine. The Sensors reported themselves as being USB 2.0, instead of USB 3.0, but I didn't experience any differences in tracking quality.
Based on other reports of success, I ordered an Anker USB 3.0 7-port hub (which was also well-reviewed in general) to replace the 2.0 hubs with, and my USB configuration seems stable:
- Stealth (Left)
- Razer Core
- Rift HMD
- Stealth (Right)
- Anker USB Hub
- Oculus Sensor
- Oculus Sensor
- SSD
- Xbox Wireless Adapter
- Anker USB Hub
As to the Reddit post saying the Rift HMD only really needs power from USB, if so I'm not sure why plugging it into the Core makes the HMD completely fail to be detected:
Are the USB ports on the Core underpowered? Is the USB chipset inside not compatible, as some USB chipsets reportedly are? (I don't think I'm experiencing the intermittent USB disconnects that some Core users have seen, as the SSD seemed to work consistently while it was plugged into the Core.) It'd be nice to have some additional latitude in where the HMD is plugged into, but I haven't tried plugging the HMD into the hub yet. Plugging the SSD into the Stealth directly might see a minor performance improvement if the HMD works off the hub.
External monitor for Virtual Desktop
When the Razer Blade Stealth's LCD is in use, it's driven by both the internal Intel HD 520 graphics and the external GTX 1080 GPU in the Razer Core. Applications and games running on the GPU are rendered by the GPU and then shuttled back over the Thunderbolt bus and drawn on the screen in the appropriate spot. Applications like Virtual Desktop are able to render the desktop in VR because it's assumed the GPU is the only video card in the system, and it's responsible for drawing everything.
As that is not the case here, Steam VR and Virtual Desktop would both render nothing, as the Windows desktop by default is drawn by the onboard Intel HD 520.
The only way for the GTX 1080 to render everything, always, would be to have an external monitor, and disable the onboard LCD, something I was originally trying to avoid. In theory, this would fix Steam VR and Virtual Desktop, and also mean I wouldn't have to manually select the GPU as my renderer when launching applications.
The Stealth's 2560×1440 (1440p) resolution is a little unusual, but I wanted an external monitor with the same resolution so I wouldn't have my desktop windows reorganizing themselves when the laptop was disconnected.
Based on reviews, I picked up a BenQ GW2765HT 27" during a Black Friday sale (G-SYNC 1440p displays seem really expensive). It's the same resolution as the Stealth, has speakers, and a DisplayPort input, which means the Rift HMD can stay on the GTX 1080's sole HDMI.
With the larger physical size (literally over 2x the Stealth), I could probably use it at its native resolution, but I've left the custom scaling factor the same, again, to make sure using it is 1:1 with using the Stealth's LCD.
This has resolved the issues with Steam VR and Virtual Desktop. The laptop LCD is on briefly during boot, and Windows switches to the BenQ a few moments after reaching the login screen, and the laptop LCD turns off.
Initially, there were some problems waking the laptop up from sleep in this configuration, but updated video drivers (now that GeForce Experience correctly detects when new drivers are available) seems to have resolved that.
Curbing overheating by disabling Intel Turbo Boost
During long gaming sessions (VR or otherwise), I would occasionally experience a blue screen crash reporting whea_uncorrectable_error.
It would sit at 0% and never restart.
The internet suggested it was an overheating issue, perhaps due to Intel Turbo Boost.
Intel Turbo Boost allows the CPU in the Razer Blade Stealth to jump up to 3.1GHz, but perhaps the extended sessions means it stays up there for too long, and overheats?
The default power management settings on the Stealth are set to "High performance," with both the "Minimum processor state" and "Maximum processor state" set to 100%.
Changing the power plan to "Balanced," and then setting the "Maximum processor state" to 99% seems to prevent Turbo Boost from kicking in.
That's ⊞ → Settings → Power & sleep → Additional power settings → Balanced → Change plan settings → Change advanced power settings → Processor power management → Minimum processor state (make sure both are set to 5%) → Maximum processor state (make sure both are set to 99%).
Followups
None planned, but if there's something straightforward I can check, tweet me, maybe I will.
I'm Vitorio, it's December 27, 2016, thanks for your time.
Benchmarks with/without Turbo Boost
Updated December 29, 2016.
Looks like a 13-19% peak CPU/physics performance hit to keep Turbo Boost off.
I ran the new 3DMark Time Spy and VRMark Orange Room benchmarks with and without Turbo Boost, as well as re-running Fire Strike without. You can see the CPU reports its "Maximum turbo core clock" differently in each one. In each, "High Performance" is on the left, and "Balanced" (without Turbo Boost) is on the right.
It might be interesting to try the Time Spy stress test and see if there's a consistent number of runs it takes before the laptop crashes.
With Turbo Boost, the Stealth + Core is just shy of the "VR-ready PC" score of 5000, and well above the "Oculus Rift minimum spec PC" score of 3716, mostly thanks to the GTX 1080.
When running Time Spy and Orange Room in "High Performance," the Stealth's fans cranked all the way up. They didn't run at all in "Balanced" for any of the benchmarks. I wonder if there is a laptop cooler that would keep the machine cool enough to allow Turbo Boost to stay on?
(All were run with an external display.)
A note on Oculus/Steam install locations
Updated January 1, 2017.
Recent versions of the Oculus installation software will allow you to install games to a drive location that isn't C:\Program Files\Oculus
, although the Oculus system software still has to be located there. The catch is that the other drive location has to be NTFS formatted. As far as I can tell, this is not officially documented anywhere.
The Wirecutter's top recommended external SSD, the 500GB Samsung T3, comes formatted as ExFAT by default. Steam has no problem with this, but Oculus refuses to let you utilize it. I had to reformat it to NTFS before it would.
Longer active Thunderbolt 3 cables exist now
Updated January 1, 2017.
Longer, active (40Gbps) Thunderbolt 3 cables weren't available when my Core arrived in May, but they seem to be available now. Here's a Cable Matters brand active Thunderbolt 3 (40Gbps) cable, available in lengths of 3.3', 4.9' and 6'6. (The Core ships with a 1.5' [0.5m] cable, and passive cables are only 20Gbps.)
Turbo Boost, Core, and Core v2
Updated November 27, 2017.
The Oculus desktop software seemed to get pretty aggressive with regards to switching power management away from Balanced, enough so that I had to set a local group policy to prevent it from happening. All applications are now prevented from changing the laptop's power management setting.
I was eventually able to answer the open questions I originally posed regarding the Core's strange USB performance. In this Razer Insider forum thread, I work through a few different ideas.
- As seemingly confirmed by the release of the Core v2, it was a bus management issue: having the Rift sensors in the Core (v1) without a GPU allowed them to perform fine.
- It was not a power issue. Adding a USB 3.0 power injector y-cable, with power coming from a USB charger, did not help anything.
- It was not a USB chipset issue. The Rift and sensors worked fine when plugged into a Startech USB 3.0 hub with ethernet, which has the same USB and ethernet chipsets as the Core (v1).
- High-speed transfers over the Core's ethernet adapter will introduce latency and judder in the GPU's performance.
It appears from at least one report, however, that even the Core v2 cannot handle the GPU + USB bandwidth requirements of the Rift sensors. For my part, I am no longer using any of the USB ports on the Core, and try not to download anything over its ethernet if I'm in VR.
BIOS boot loop, factory reset
Updated April 30, 2018.
I've been experiencing the known BIOS boot loop problem on occasion, where the power button gets stuck, caught under the lip of the laptop body. Instead of booting into Windows (or recovering from sleep), it goes into the BIOS. Exiting the BIOS boots right back into it. I have to wiggle the power button just a bit to unstick it, and Windows boots fine again.
At one point, I upgraded to Windows 10 Pro from the pre-installed Home, and turned on Bitlocker. Later, when I wanted to perform a factory reset, I found the recovery partition wouldn't do anything (it didn't report any errors, but no restore happened). It seems it doesn't recognize a Bitlocker-encrypted partition. I had to remove Bitlocker, decrypting the drive, before it would. The recovery partition was able to perform a factory reset after that.