I’m writing up this page because I’ve had three problems playing Elite Dangerous on an RX580 graphics card with the Oculus Rift VR headset, which I’ve resolved, but for which the forums still appear to be missing answers. I’m putting this on my blog so that I can share the link.
The three problems:
- Serious stutter in VR only. (Looks like the two separate eye feeds are out of phase)
- Gamma / Brightness level flashes. (About every two seconds, space becomes grey instead of black)
- Unhandled exception: Object reference not set. (Not directly an Oculus or RX580 issue, but easily fixed)
The stutter in VR
I’m going to cover the stuttering issue first because it’s the most tricky to fix, and depending on your available hardware, may simply not be resolvable at all. Sorry, but you may be SOL.
I purchased an MSI branded RX580 to play elite several years ago – It was not the recommended nVidia card at the time, but was a good “bang for buck” purchase and played Elite just fine on VR. Later I acquired several reference models of the RX580 for some machine learning experiments that required the ‘half-precision’ floating point type that AMD cards sometimes support, but nVidia don’t. I swap out the hardware in my computers frequently, and so when I first started to encounter stuttering in VR when playing Elite, it wasn’t obvious to me that it coincided with installing one of the reference RX580’s into my rig.
The really confusing part of the fault was that when I reinstalled my software from scratch (OS up), which I also do quite frequently, the problem would go away, only to resurface later. What I’ve since discovered, as I’m still using these RX580 cards, is that the MSI branded card will run Elite just fine, but the reference card has the stutter! At that time, I was not really trying to debug the problem, so I didn’t keep notes of what worked and what didn’t, but from memory I suspect that as soon as I attached a driver to the reference RX580, the problem would emerge, regardless of running on the MSI branded card.
There are some variables here which I have not quite ironed out, but if you’re having this stuttering issue on a reference card, you *might* be SOL. If you have a second graphics card installed however, try removing it! Even with the MSI branded card, I believe I was getting this issue when the reference cards were installed – that’s either down to the reference card messing things up, or down to the software configuration not supporting multiple cards.
(* Update: I’ve also heard of this issue happening with non AMD cards when multiple graphics cards are installed – It seems Oculus Rift VR Elite Dangerous simply does not like dual graphics card setups! *)
What I can confirm is that, with a solo MSI RX580 installed, the stutter is gone.
The Gamma / Brightness issue.
If you read the previous part on the stuttering issue, you’ll know that I’ve been swapping between an MSI branded RX580, and a reference model. When I switched from the reference card to the MSI branded card, the dvi-d output was not working at all. I discovered that this was due to the use of a dvi-d to hdmi adaptor that works with the reference card, but not the MSI card!
So I swapped out the cable for a straight dvi-d to dvi-d and got back the monitor that was failing, but I noticed that the monitor was much brighter than the others. I have four monitors + the rift, and all four of them are identical, with identical brightness and color settings, so why was that one screen much brighter? It must have been the dvi-d, as the other monitors are all on HDMI or display port.
So when Elite started showing these gamma / brightness issues, I suspected they may be related to the output screen.
Sure enough, I had Elite dangerous configured to run in desktop mode on that brighter monitor. The solution then was this…
Open Elite in Desktop mode from the Oculus launcher (right click the icon and select desktop mode). While there, configure the graphics output to be on the primary display (which on my system is not the dvi-d). Close out of Elite dangerous, load it up in VR and the gamma issue is gone!
So, if you’re running a multi-headed system it seems the answer might be to have the desktop mode configured for the primary display, or if that’s already the case, try switching it to another display.
I suspect this is down to the way that the Oculus Rift has games render into an ‘off-screen’ texture, which is then copied to the headset – If the graphics device context which is used to get that texture is on a different display, it’s gamma defaults to the gamma of that output, which may differ from the primary. Some timing event then causes that different setting to surface every second or two.
Unhandled Exception issue.
This one is actually pretty easy to resolve.
The problem is that the Elite Dangerous launcher is loading it’s config from a file named “EDLaunch.exe.config” which is in the same directory as the launcher it’s self. Within the config there are two lines telling the executable which version of the .NET runtime it should bind to….
<supportedRuntime version="v2.0.50727"/> <supportedRuntime version="v4.0"/>
It appears the problem is that the launcher will load the first version of the runtime it finds in this config file, and ignore the second – but the config file has them the wrong way around by default.
Open “EDLaunch.exe.config” in a vanilla text editor, and swap them like this..
<supportedRuntime version="v4.0"/> <supportedRuntime version="v2.0.50727"/>
Now the EDLauncher will bind to runtime version 4 instead of 2.0, and the unhandled exception error will no longer be presented.
I am now able to play Elite Dangerous in VR with “VR High” settings on an RX580 (MSI branded) without stuttering, without gamma flashes, and without the launcher issue. I hope that the information I’ve written up here can help you get back into stable Elite game play!
See you out there Commander – o7