Oculus Rift Launch Day News: New AMD & NVIDIA Drivers; Async Timewarp & Platform Restrictions Added To SDK
by Ryan Smith on March 28, 2016 11:30 PM ESTAfter just over three and a half years and a Facebook acquisition in between, Oculus’s first-generation Rift headset is launching today. We took a hands-on preview of the headset at GDC 2016 earlier this month and will have a formal review later, but in the meantime for those lucky backers or early pre-order customers who will be receiving their units this week, let’s talk drivers and software.
As you’d expect for such a high-profile device launch, both AMD and NVIDIA have new drivers being released in part to update their support for the Rift, along with blog posts lauding the release of the device. For both companies, the launch of VR headsets represents the opening of what could potentially be a large and profitable market for high-end GPUs. The rendering requirements of VR – both in resolution and framerates – greatly surpass the common 1080p60 monitor, and the novelty of VR could further spur on additional hardware sales. So both GPU vendors are taking the launches of VR headsets over the next two weeks very seriously.
Launch Day Drivers
Starting with AMD then, the company has released their Radeon Software 16.3.2. The big news here is of course official launch support for the Rift, including Oculus’s new 1.3 SDK (more on this in a bit). This driver is also adding support for the HTC Vive ahead of its launch next week, and AMD’s Radeon Pro Duo video card. The latter still does not have an official release date, but given the added driver support and Q2 release date, it’s clearly going to be soon.
Along with the driver release, AMD’s graphics technology group has also released a blog post on their website dubbed “Asynchronous Shaders Evolved”. In it the company offers a recap of their asynchronous shader technology implementation, and further reveals that they have assigned a formal name to their async shader prioritization capability: Quick Response Queue. AMD first talked about this ability last year when they first began discussing async shading with the public, and now in their recent drivers they have enabled the feature. Quick Response Queue goes hand-in-hand with asynchronous timewarp, which ideally is executed as late as possible and as quickly as possible to produce best results, in this case allowing AMD to send the job through at high priority without resource sharing unnecessarily slowing down the job. Do note however that Quick Response Queue is a GCN 1.1+ feature, though for the purposes of VR in particular, all of AMD’s GCN 1.0 products fall below Oculus’s recommended minimum of a Radeon R9 290.
Meanwhile over at NVIDIA, they too have a new driver release with 364.72, the third release from the R364 branch. 364.72 brings launch support for both the Oculus Rift and next week’s HTC Vive, along with the various launch titles for those headsets, and all of the features present in the latest iteration of NVIDIA’s VRWorks technology. As for non-VR gamers, this is also the game ready launch driver for Dark Souls III, Killer Instinct, and Quantum Break.
The company has also published a separate blog post celebrating the launch of the Rift. In the post NVIDIA announces that GeForce Experience’s game settings optimization service now supports VR settings as well, allowing the software to dial in NVIDIA’s optimal settings for playing various games in VR. Only a limited number of games have VR settings available at this time, but NVIDIA seems to have hit a decent chunk of the graphically strenuous titles – EVE: Valkyrie, Lucky’s Tale, and Chronos – while promising to add further VR games in the future.
News From Oculus: Async Timewarp Now In Production, Non-Oculus Store Applications To Be Flagged As “Unknown”
Tying all of this launch day activity together, Oculus has released a new blog on their developers site outlining the current state of asynchronous timewarp support for the Rift. After initially announcing their implementation of the technology just a bit over a year ago, Oculus has promoted the technology to production status for the Rift on Windows. In the post they outline a bit of the work they had to do to implement async timewarp on Windows – since it’s not a real time OS, they can’t necessarily count on getting resources allocated or jobs completed as quickly as they’d like – which in turn has involved working with AMD, NVIDIA, and Microsoft to get both OS GPU scheduling and each vendor’s GPU drivers up to snuff to handle GPU prioritization and pre-emption as they expected to use it. The blog post also confirms that Oculus is using AMD’s LiquidVR and NVIDIA’s VRWorks technologies respectively to expedite the process and access functionality not normally available via DirectX 11, which has no real concept of asynchronous shading.
The blog post also confirms the technical requirements for the async timewarp. The feature works as far back as Windows 7, but owing to the significant GPU scheduling updates made with Windows 10 and its underlying WDDM 2.0 driver stack, the feature works best on Windows 10, specifically the most recent update (10586.164). In the long run here I expect that Windows 10 will be the primary platform for VR – teething issues and all – due to the combination of WDDM 2.0 and ultimately the greater flexibility offered with DirectX 12.
Meanwhile, now that async timewarp has been promoted to a production feature, Oculus is announcing that they are enabling it by default in the Oculus VR SDK 1.3. Games using this SDK will not need to do anything special to make use of the feature, which means this should allow for a fairly rapid rollout of the feature. However the post also implies that only games that are compiled against the 1.3 SDK get this feature, which is notable since the SDK was only released today. As a result it’s not clear whether any or all launch titles have async timewarp enabled at this time, or whether it’ll need to be patched in with a future game update.
On a final note about async timewarp, in their blog post Oculus also spends a bit of time discussing how async timewarp works and what it’s used best for. There’s an especially good passage outlining how async timewarp’s re-warping capability to cover for missing frames (as opposed to updating head-tracking of a frame at the last second with an initial warp) is meant to be used as a failsafe option, and that developers shouldn’t use it to try to get away with games that run below 90fps. I especially like this passage – it’s the greatest summary of why you can’t cheat your way to VR that I’ve ever read – so I’ve gone ahead and reprinted it below.
However, ATW is not a silver bullet. Failing to maintain a consistent, full frame rate may produce visible artifacts including noticeable positional judder, particularly in the near field of view. An application that falls below 90fps rendering will get re-warped in time to avoid rotational judder, but while orientation latency is kept low and smooth, animation and player movement may judder in lock-step with missed frames. For these reasons we continue to recommend that developers do not rely on ATW to save them from low frame rate.
Finally, on a not-quite-hardware bit of news, Epic Games’ engine guru Tim Sweeney has pointed out that with the release of the Rift and the 1.3 SDK, Oculus has implemented new security and content policies on the platform. Applications compiled with the Oculus SDK but not distributed through the Oculus Store will be flagged as coming from an unknown source, and by default will be blocked. At the same time it will still be possible to run these applications, but end-users will first need to enable applications from Unknown Sources to have them unblocked.
At first glance this appears to be an attempt by Oculus to encourage developers to adhere to their development guidelines while also building up their platform. Ala the mobile app stores, Oculus will be reviewing applications and approving/rejecting submissions based on content restrictions and adherence to best developmet guidelines. Ideally this should result in a more consistent experience for users due to applications not being allowed that don't follow Oculus's development guidelines, although the content aspect of the review process is also going to be particularly important for anything that fails their content rules (and as such can never get approved), as it means those applications will have to go the Unknown Sources path. Meanwhile, the default blocking of applications compiled via the SDK but not sold on the store will also serve to encourage developers to use the Oculus platform and distribute their applications through the Oculus Store, rather than leaving Oculus out and using another store entirely.
To fray some of the concerns about the Oculus Store, Oculus is allowing developers to request keys for free, which can then be sold to users via other stores. The end result is very similar to Steam, allowing Oculus platform applications to be sold at third party stores while retaining their use of the Oculus platform. However I can’t recall a parallel of a Windows peripheral developer blocking third party applications by default, as this is typically the domain of OS vendors running closed platforms.
9 Comments
View All Comments
Mugur - Tuesday, March 29, 2016 - link
At first, I read "for those lucky basterds" instead of "for those lucky backers"... :-)xunknownx - Tuesday, March 29, 2016 - link
i read the same thing. lolB3an - Tuesday, March 29, 2016 - link
Still no asynchronous compute on NV hardware? Can NV GPU's even support the new asynchronous timewarp? NV say that asynchronous compute isn't enabled in their drivers yet, but it seems that their hardware isn't fully capable of it and can not run graphics and compute workloads concurrently, including the 900 series.AMD have a massive advantage here if all GCN GPU's support this feature.
Would be good if you did an in depth article on this. VR stuff is coming out, plus Ashes of the Singularity is out within days, and still no sign of asyn compute from NV...
bug77 - Tuesday, March 29, 2016 - link
Why, were you expecting the Oculus VR launch to add the missing hardware to Nvidia's cards?Also, async compute is not a graphics feature. It's a more efficient way of feeding the GPU. It will not create extra FPS unless the GPU is underused to begin with.
B3an - Tuesday, March 29, 2016 - link
Async compute can increase FPS for basically any game engine because all GPU's that support async compute will have hardware that is not being used, and they literally cannot be fully used without asyn compute.CiccioB - Wednesday, March 30, 2016 - link
No. It doesn't work this way. It all depends on the type of engine used that is able o not to use all the GPU resources.The Async compute feature is able to only increase the efficiency in use of the shaders. The rest of the resources do not take any advantage of it. If, for example, you are TMU or ROP limited, async compute is not going to help you at all.
More over, this over hyped feature on AMD HW, that it seems to be highly supported, in a game that uses this feature at its extreme, just shows increments of 10% in performances (differences with async on and off on the same HW). Nothing real ground breaking.
There are many other things that can be saturated before the shaders, depending on the engine. It is clear that if you create a shader intensive game which does not exploit other resources (TMUs, ROPs, memory bandwidth, tessellation, but also the new HW features like transparency and global illumination), you'll get a little improvement in performances with them.
But is it won't be different than having a poor engine that exploits tessellation at its (useless) maximum to compensate other deficiencies.
We are witnessing the same case when DX11 with tessellation were launched. All new games engine just over-used tessellation as a innovative feature, abusing it most of the times.
We have seen that at the end the engine came to use it much less, increasing the quality of the image with other techniques that required the use of other resources.
It will happen with DX12 as well. Once this async compute waterfall will end, we'll get much more balanced engines where its impact will be lower and other resources will contribute to create better image at the end.
Trefugl - Tuesday, March 29, 2016 - link
Will I be able to take advantage of this with my DK2 (both changes to AMD drivers and SDK1.3)? I haven't used it much since I feel like it's still had a lot of teething issues (and I haven't had a ton of free time to sort them out). Also, any news on when crossfire will render per-eye for VR? I feel like my 2x290s are not being put to use...