Microsoft further detailed DirectX 12 at yesterday’s Windows 10 address, and promised that not only could it increase performance in CPU-bound games by up to a staggering 50%, but also announced that DirectX 12 would be heading to Unity 5.
Phil Spencer, head of Microsoft’s Xbox division, says that with DirectX 12 they’ve “given developers much more fine control of CPU and GPU,” and with the official support coming to Unity, a game engine that is entirely free to download, it effectively lowers the barrier of entry on both game consumption and development. Many VR applications today are built with Unity.
A post on Unity’s official blog shares some details:
The architecture of Direct3D 12 differs greatly from that of Direct3D 11 both in the way memory is accessed and GPU commands are issued. Rather than having a single context on which to set states and issue draw calls, we can now build command lists on multiple threads and retain them over multiple frames if necessary, saving precious CPU cycles and eliminating the dreaded my-render-thread-does-most-of-the-work problem. This has the potential to both reduce total frame time and increase battery life.
As for a release, Unity’s Tomas Jakubauskas says that their DirectX 12 support will come in time for Windows 10.
“Currently our plan is to release DirectX 12 support early in the Unity 5 cycle (well in time for the release of Windows 10), and to target standalone builds and Windows Store Apps first. Then we’ll follow up with Windows Phone and Xbox One support, aligning with the plans Microsoft has for their platforms,” he writes.
In a brief demonstration of the optimizations at yesterday’s Windows 10 event, Spencer showed just how DirectX 11 and the new DirectX 12 played on two identical machines, with the old version choking and eventually freezing as the machine running the new version continues to keep a high frame rate. The demonstration used a 3rd party benchmark application currently under development at Future Mark.
Matt Sandy, the Program Manager of Direct3D, says in an official blog post that DirectX 12 gives “a lower level of hardware abstraction than ever before, allowing games to significantly improve multithread scaling and CPU utilization,” and “enables richer scenes, more objects, and full utilization of modern GPU hardware.”
Increases in rendering performance are always significant in the world of virtual reality because VR apps need to run at much higher performance than their desktop counterparts, for comfort and immersion; there’s the need to render two cameras instead of one for a stereoscopic view, not to mention at a very high resolution (2560×1400 in the case of Gear VR), finally compounded by the necessity of a very high framerate (Oculus is currently targeting 75FPS and expected to move to 90FPS with their consumer model).
And with VR getting more social everyday, the thought of traditionally CPU-bound games like MMOs getting a bump in performance could also mean larger, more graphically intense multi-user spaces opening up to make quick use of the API’s planned optimization. Of course, every game is configured to either rely more heavily on either CPU or GPU, but loosening up bottlenecks wherever possible could easily transform a game from juddery mess, to a playable experience in VR.
Road to VR will have boots on the ground at this year’s Game Developers Conference (GDC) in March, where more information will likely be released about DirectX 12.