Microsoft today introduced DirectX 12 at the annual Game Developers Conference (GDC) in San Francisco. DX12 is Microsoft’s latest version of the graphics API that is the dominant standard in the growing, $25 billion PC gaming industry.
Developers have been asking for a thinner, more efficient API that allows them to control hardware resources more directly. Despite significant efficiency improvements delivered by continuous advancement of existing API implementations, next-generation applications want to extract all possible performance from multi-core systems. Developers also want to take direct advantage of advanced GPU hardware features, from which developers are currently insulated to provide fool-proof usage. DirectX 12 was designed from scratch to provide the infrastructure for these advanced applications.
Speaking to a crowd of about 300 developers and press, Anuj Gosalia, development manager of DirectX at Microsoft, described DX12 as the joint effort of hardware vendors, game developers and his team. Our work with Microsoft on DirectX 12 began more than four years ago with discussions about reducing resource overhead. For the past year, NVIDIA has been working closely with the DirectX team to deliver a working design and implementation of DX12 at GDC.
Gosalia demonstrated the new API with a tech demo of the Xbox One racing game Forza running on a PC powered by an NVIDIA GeForce Titan Black. In addition, our software team has provided a driver to game studios to facilitate further design feedback as well as actual game development.
A critical factor in the adoption of any new API is the size of the available market. In the past, feature adoption has been muted by lack of support in the substantial console market, as well as absence of feature deployment on popular versions of the Windows OS. With DX12, there is an unprecedented convergence of APIs and breadth of support. DX12 will span PCs, XBox One, tablets and even phones.
In addition, NVIDIA will match Microsoft OS support for DX12. Over 70% of gaming PCs are now DX11 based. NVIDIA will support the DX12 API on all the DX11-class GPUs it has shipped; these belong to the Fermi, Kepler and Maxwell architectural families. With more than 50% market share (65% for discrete graphics) among DX11-based gaming systems, NVIDIA alone will provide game developers the majority of the potential installed base.
The genesis of DX12 can be found in technology trends. GPUs have continued to rapidly increase in performance, while single-core CPU performance has been gated by power limits. Multi-core CPUs have provided some advancement but still trail GPUs in peak performance. In parallel, applications have embraced task-parallelism, adopting sophisticated scheduling systems to scale performance with the number of CPU cores.
This has in turn driven the need for an API that scales similarly with core count. GPU performance can be exploited three ways: drawing better pixels, more pixels and more objects. We have reaped much of what can be gained from pixels. DX12’s focus is on enabling a dramatic increase in visual richness through a significant decrease in API-related CPU overhead. Historically, drivers and OS software have managed memory, state, and synchronization on behalf of developers. However, inefficiencies result from the imperfect understanding of an application’s needs. DX12 gives the application the ability to directly manage resources and state, and perform necessary synchronization. As a result, developers of advanced applications can efficiently control the GPU, taking advantage of their intimate knowledge of the game’s behavior.
Today’s debut focused on the form of the graphics API, the model. Future Direct3D releases will include new rendering features, in addition to the new driver/application model outlined today. The work presented at GDC is just part of the story for upcoming releases. NVIDIA and Microsoft will continue to invest heavily in the future of gaming on the PC. — Yury Uralsky contributed to this post.