In an early slide at his GDC presentation today, Microsoft Graphics Development Manager Anuj Gosalia presented a timeline for DirectX development dating back to 1995. On the 2014 line, the timeline asked the audience a rhetorical question: "This is where we're supposed to die?"

DirectX is far from dead, though. As Microsoft teased earlier this month and described in more detail today, DirectX 12 will be rolling out to developers with a preview release later this year, in time to target development of DirectX 12-powered games for the 2015 holiday season. Developers who simply can't wait can talk to Microsoft about getting early access even sooner.

In his presentation, Gosalia highlighted the divergence in power increases between CPUs and GPUs in recent years. While GPU performance has shot up aggressively, CPUs have had to rely on multi-threading to achieve more modest performance gains. Developers and engine and driver makers have made use of this glut of relative GPU power by cranking up the resolution and increasing the quality of in-game models, but it has been more challenging to achieve gains in how much the GPU can render in a single frame, Gosalia said.

That last part is the focus of DirectX 12. The new version of DirectX, and the key Direct3D drivers underlying it, wants to give developers the ability to "fully exploit the CPU," Gosalia said. DirectX 12 will be the first version of the API to "go much lower level" allowing console-style direct access to GPU system calls through APIs mapped specifically to a wide range of hardware. "With DirectX 12, we want the fastest way to exploit the GPU," he said.

DirectX 11 introduced the ability to put together sequences of instructions for the GPU on multiple threads. However, actual dispatch to the GPU was still performed on a single thread, and the design of DirectX 11 means that some of the work must be done on that single thread. Moreover, not all GPU drivers support this capability. DirectX 12 will increase the amount of work that's performed on the different cores, and similarly reduce the burden on the main thread.

Under DirectX 12, apps will have the ability to track the GPU's pipeline status directly, without relying on the API or driver as a middleman. Developers will be able to directly control when a resource changes from a texture to a render target and back, for instance, and control where resources are placed in the system heap. Developers will also be able to bundle resources into groups for easier tracking.

Gosalia said these kinds of low-level features are "targeted towards the smartest game developers," but will give unprecedented performance for those willing to get into the weeds. "For developers that want to get down deep, do their own resources management... this is going to be an API that will be super exciting to them," Nvidia Executive VP Tony Tomasi said in support of that goal. "It's all up to us, and that's the way we like it," added Turn 10's Chris Tector, who demonstrated a version of Forza Motorsport 5 ported from Xbox One DirectX 11 to PC DirectX 12 in about four man-months, with a large increase in performance.

Microsoft also discussed new CPU indexing algorithms in DirectX 12 that choose which core to use for specific tasks with no overhead. This lets those cores work completely asynchronously, Gosalia said, and maximizes the power of today's multi-core processors. In a demonstration running on an Intel i7 processor, he showed a scene that leaned heavily on the primary core under DirectX 11, with the other three cores only helping out a little bit. After porting to DirectX 12, the system load was balanced almost perfectly evenly over all four cores, leading to an almost five-times reduction in total CPU times and much more overall overhead.

There are other optimizations to reduce system loads in DirectX 12 as well, Gosalia said. Since "most apps and games have a lot of similarity in what they draw from one frame to another," DirectX 12 has algorithms to reduce the overhead from recalculating minor state changes in a scene. A new heap implementation will amortize the creation and destruction of resources, limiting system costs. DirectX 12 will introduce a new, faster resource binding model and allow for faster reuse of memory freed up by used resources that are no longer needed. Developers will also be able to decompress ASTC and JPEG images in hardware.

Compatibility

While previous versions of DirectX have often required new graphics hardware built specifically with the new APIs in mind, Microsoft suggested that a large portion of existing hardware would be able to support DirectX 12 and see immediate benefits from its roll out. That includes 80 percent of the new gamer PCs selling today, according to Gosalia's estimates, and 50 percent of all PCs that will be "out there" by the time DirectX 12 ships. Every Xbox One will be capable of running DirectX 12 games as well, he said, alongside many Windows Phones.

Specifically, AMD "Graphics Core Next" GPUs, broadly HD 7000 and up, and NVIDIA Fermi, Kepler, and Maxwell GPUs (which is to say, all of the company's DirectX 11 parts) will all support DirectX 12.

"People who have our current CPUs, they get the benefit of this API on day one," AMD's Raja Khodury said on stage. "And it's not a small benefit. It's... like getting four generations of hardware ahead with this API."

Nvidia's Tomasi echoed a similar sentiment, saying that all of its cards that currently support DirectX 11 will have DirectX 12 support from day one. Those high-end Nvidia cards alone represent what Tomasi estimated was about 40 percent of the current universe of gaming GPUs, based on Steam statistics. Those existing cards will see orders of magnitude improvements from DirectX 12's release, he said, "going from 100s of thousands to millions and maybe tens of millions of system draws a second."

On the mobile side, Qualcomm Engineering VP Eric Demers said that features like reduced CPU overhead and the resultant lower energy draw in DirectX 12 are "music to my ears from a power standpoint." DirectX 12 could also make it easier to see Xbox and PC titles transition to mobile forms, but he warned that "we'll see how that experience goes."

During a Q&A, Gosalia pointedly dodged a question about whether Microsoft would be offering DirectX 12 support on Windows 7. "We understand your desire to get DirectX 12 on the broadest set of hardware," he said. "We won't be announcing anything today, but stay tuned."