NVIDIA Talks High Performance Graphics APIs: DirectX12, DirectX11 Improvements, and New OpenGL Extensions
We recently had the chance to sit down with some folks at NVIDIA to discuss high performance graphics APIs (Application Programming Interfaces). With all of the noise recently surrounding AMD’s Mantle, DirectX 12, DirectX 11 and even OpenGL, NVIDIA wanted to clear the air somewhat, and explain the company’s position and plans to optimize and support current-gen and future APIs.
As you’ve probably surmised in the myriad of discussions regarding Mantle and DirectX 12 recently, API efficiency is extremely important to ensure high performance in a given application. In our talk, NVIDIA explained that it is committed to improving the efficiency of current-gen, industry-standard APIs—including DX11 and OpenGL, even though the company will be supporting the inherently more efficient DirectX 12 with all of their Fermi, Kepler, Maxwell and next-gen, future GPUs.
Some of the efficiency improvements will come from “closer to the metal” access to the hardware in DirectX 12, though NVIDIA will also be improving performance in DX11 and OpenGL with future driver and software updates.
NVIDIA said that a future DX11 driver will drastically improve efficiency and offer “Mantle-like” performance improvements in existing applications. It plans to achieve this goal by reducing general API overhead and improving multi-core scaling. Other areas of investment in the NVIDIA’s DirectX 11 driver include an updated memory model with tiled-resources that offer more explicit control over resource management.
The upcoming driver is simply labeled “new” in the graphs pictured here (supplied by NVIDIA). And according to the data provided, the new driver will boost performance significantly, almost across the board. The biggest improvements come to Draw calls and setting index and vertex buffers, but there are gains in other tests as well, though the deltas are much smaller.
Using the Star Swarm and Thief benchmarks (with Mantle and DirectX 11), NVIDIA claims that the future driver will boost the GeForce GTX 780 Ti’s performance well beyond the Radeon R9 290X, even when the latter is using Mantle. The gains offered through three branches of NVIDIA’s drivers are also shown. As you can see, there has been steady progress, and the as-yet-released driver is markedly faster than the R331 and R334 branches, assuming NVIDIA’s numbers are realistic (which they probably are).
NVIDIA also talked briefly about OpenGL, to dispel the myth that the API is “old and bulky”. Using apitest, NVIDIA showed the speedups offered to OpenGL through the use of high-efficiency extensions the company has developed along with a handful of IHVs. As the chart shows, some of the gains are massive, though what they mean to real-world application performance isn’t clear just yet.
Of course, NVIDIA also talked about DirectX 12 as well. We’ve covered DirectX 12 in a couple of articles already—you can read them here and here. To give you a quick overview, DirectX 12 will offer significant reductions in submission overhead, and leverage the architectural improvements in modern GPUs. DirectX 12 will also scale better across multiple cores and provide a more “console-like” execution environment.
NVIDIA said it had been working on DirectX 12 from its inception, and that it helped design the API in collaboration with Microsoft.
Microsoft actually demoed DirectX 12 using NVIDIA hardware (a GeForce GTX Titan Black, running Forza 5 to be exact) at GDC. Though we’re a long ways off from DirectX 12 titles, NVIDIA wanted to drive the point home that the company already has a working DX12 driver, as evidenced by the demo. Even at this early stage of development, DirectX 12 is apparently offering 3.4x to 4.3x improvements in APU overhead, when scaled across four cores.