Microsoft reveals DirectX 12, a "thinner" graphics API with 50% better CPU utilization

Today at GDC, Microsoft revealed the newest version of its graphics API, DirectX12. As we've been expecting , it's a “thinner,” lower level API, with less abstraction between software and hardware. That means more involved development, but access to much better performance. Microsoft said that it allows for console-level efficiency on PC, a point they stressed with a ported tech demo of Forza Motorsport 5 running on PC. Forza was running on an Nvidia Titan Black, however, which is a much more powerful GPU than the Xbox One's.

Microsoft said that DirectX12 will work across all its platforms, PC, tablets, phones, and Xbox One. Unfortunately, it did not say whether it will support Windows 7. Historically, Microsoft has used graphics APIs to encourage users into upgrading to the latest operating system. It hasn't said if that will be the case with DirectX12, only that it expects to support 50 percent of all PC gamers when it ships in “holiday 2015.” Windows Graphics developer Anuj Gossalia said it's aware of demand for Windows 7 support.

Microsoft highlighted the API's ability to take greater advantage of multiple CPUs and better distribute work among threads. After porting 3Dmark to DirectX12, Microsoft said it saw 50 percent better CPU utilization. The improved performance comes from advancements it made in pipeline state representation, work submission, and resource access, which you can read more about on its blog .

Microsoft said that it has been working on DirectX12 for more than four years, and that it has talked to developers and GPU manufacturers throughout the process. Intel, Qualcomm, Nvidia and even AMD (which is making the competing Mantle API ) were at the announcement to show their support of DirectX12.

On its blog , Nvidia said that it will match Microsoft's support for DirectX12 and that it will support it on all the DirectX11-class GPUs it has shipped. AMD has yet to reveal which of its GPUs will support DirectX12.