The developers of No Man’s Sky released an experimental update today which noticeably improves performance on the HTC Vive and Valve Index.
The changelog reads ‘Introduced a number of PC-specific VR optimisations (not yet available for Oculus)‘.
No Man’s Sky VR encountered a mixed reception with its VR release. In our review-in-progress we agreed with Sean Murray in calling it the “perfect kind of sci-fi dream”, but many players have been experiencing significant performance issues on PC.
Hello Games uses the experimental release channel to allow experienced players to get an early preview of enhancements and fixes for the game. You can access this channel by typing the access code 3xperimental into the Betas tab in the game’s properties on Steam (or GoG). When a build in this channel is confirmed to be free of any game killing bugs, it is rolled out to the regular stable channel so everyone can access it. This usually takes one or two days.
The Results
We tested the update on a Valve Index in 80 Hz mode powered by a GeForce RTX 2070. Before this update, the framerate stayed around 60 FPS. But with this patch, the framerate increased to around 77 FPS. This represents a 28% improvement.
Lowering the game’s resolution to 70% in the SteamVR settings, we were able to maintain a solid 90FPS in 90Hz mode. This, however, comes with a noticeable decrease in visual quality.
All tests were done with all game graphics settings on the lowest available option.
The word “yet” in the changelog suggests similar changes might be on the horizon for Facebook’s Oculus Rift headsets.
The Explanation
So how did Hello Games achieve this performance improvement? The answer, partially at least, seems to lie in the desktop view of the game and a Twitter thread commented on by two former Valve employees.
On the stable build of No Man’s Sky it can be noted that the desktop mirror is a filled square for each eye. This is unexpected because VR lenses are not square. To save performance, SteamVR supports games using a Hidden Area Mesh. SteamVR will supply the game with a mesh that represents the shape of the lenses so that only what the user can see is rendered.
Ok so I agree with you and it’s awesome we’re getting Vr support at all in a big game like this ….. but also the game is obviously poorly optimized for VR. Look at this, they straight up forgot the hidden area mask pic.twitter.com/8QMOo6P9uh
— Zach Tsiakalis-Brown (@MrZulubo) August 15, 2019
We first saw someone point out No Man’s Sky was missing this last Thursday when VR developer Zach Tsiakalis-Brown talked about it on Twitter. Former Valve Engineer Nat Brown replied “Wait what? That’s ~15% just sitting there on the floor. Maybe just missing on Index?“. Valve’s former Principal Software Architect Alex Vlachos replied, saying that for Index the improvements would be even greater:
More like 20% savings since I shipped improvements to the tech last year. Replicating the nose cutout in the hidden area mesh saved an additional 5% perf in addition to the peripheral 15% savings on Vive. Index is slightly better due to lens/panel alignment and canted eye tubes.
— Alex Vlachos (@AlexVlachos) August 15, 2019
Vlachos announced his departure from Valve on Monday after 13 years with the company. He led development of the SteamVR runtime, compositor, and chaperone system while at the company.
On this experiemental update to No Man’s Sky, a hidden area mesh can be seen to be in use. This likely accounts for most, if not all, of the performance improvements we experienced:
Strangely the unrendered area shows the last frame of the loading screen, but this is seemingly just a harmless bug.