Bookmark and Share


Microsoft Corp. has announced the latest version of its DirectX application programing interface. Just like its predecessors over the last twenty years, the DirectX 12 will bring new capabilities as well as improve performance. But perhaps, more importantly, it will address all platforms that Microsoft serves – PCs, tablets, smartphones and Xbox One – and will eliminate performance bottlenecks by at least a certain degree.

DirectX 12 in General: Features, Support and Release Timeframe

One of the key features of the DX12 is that it provides a lower level of hardware abstraction than ever before (which some developers call close-to-metal, CTM, approach), allowing games to significantly improve multithread scaling and CPU utilization. In addition, games will benefit from reduced GPU overhead via features such as descriptor tables and concise pipeline state objects. Besides, Direct3D 12 also introduces a set of new rendering pipeline features that will dramatically improve the efficiency of algorithms such as order-independent transparency, collision detection, and geometry culling.

Microsoft demonstrated how the 3DMark benchmark recompiled for the new API can improve CPU scaling by up to 50% during the presentation of DirectX 12.

Another key aspect regarding the Direct3D 12 is that it works across all the Microsoft platforms from smartphones and tablets, to laptops and desktops, and, of course, Xbox One. Mobile devices these days end to become more and more powerful, which is why they need desktop-class APIs and increased efficiency to sustain battery life. The DX12 promises that thanks to its improved multithread scaling and CPU utilization as well as CTM approach to graphics functions, it will allow mobile devices to make certain tasks quicker and therefore reduce consumption of energy.

Theoretically, developers of video games will be able to create games that will run on all platforms that Microsoft serves, from sub-mobile to PCs to the Xbox One.

Microsoft also showcased how Forza Motorsport 5 video game, which is only available on Xbox One, can run at 60fps on a PC. Definitely, that was not a hard trick to, since the rig it was run featured Nvidia GeForce GTX Titan Black, one of the highest-performing graphics adapters nowadays.

At first, DirectX 12 will be supported by AMD Radeon graphics processing units powered by the GCN architecture; Intel Core i-series processors “Haswell” and “Broadwell” with Iris graphics cores; Nvidia GeForce GPUs featuring Fermi, Kepler and Maxwell architectures; Qualcomm Snapdragon mobile system-on-chips with the latest Adreno graphics. In a bid to support all graphics functionality the DX12 has to offer, GPU designers will have to develop new GPU architectures.

DirectX 12 preview will be available this year, whereas the official release is scheduled for late 2015. Keep in mind that by late 2015 the software giant will most likely design all-new Windows operating system and the new DX12 could be a tip of the iceberg when it comes to vision for the next Windows.

DirectX 12: Where Does This Performance Come From?

Direct3D 12 represents a significant departure from the Direct3D 11 programming model, allowing apps to go closer to the metal than ever before. We accomplished this by overhauling numerous areas of the API. We will provide an overview of three key areas: pipeline state representation, work submission, and resource access.

Pipeline state objects

Direct3D 11 allows pipeline state manipulation through a large set of orthogonal objects. For example, input assembler state, pixel shader state, rasterizer state, and output merger state are all independently modifiable. This provides a convenient, relatively high-level representation of the graphics pipeline, however it doesn’t map very well to modern hardware. This is primarily because there are often interdependencies between the various states. For example, many GPUs combine pixel shader and output merger state into a single hardware representation, but because the Direct3D 11 API allows these to be set separately, the driver cannot resolve things until it knows the state is finalized, which isn’t until draw time. This delays hardware state setup, which means extra overhead, and fewer maximum draw calls per frame.

Direct3D 12 addresses this issue by unifying much of the pipeline state into immutable pipeline state objects (PSOs), which are finalized on creation. This allows hardware and drivers to immediately convert the PSO into whatever hardware native instructions and state are required to execute GPU work. Which PSO is in use can still be changed dynamically, but to do so the hardware only needs to copy the minimal amount of pre-computed state directly to the hardware registers, rather than computing the hardware state on the fly. This means significantly reduced draw call overhead, and many more draw calls per frame.

Command lists and bundles

In Direct3D 11, all work submission is done via the immediate context, which represents a single stream of commands that go to the GPU. To achieve multithreaded scaling, games also have deferred contexts available to them, but like PSOs, deferred contexts also do not map perfectly to hardware, and so relatively little work can be done in them.

Direct3D 12 introduces a new model for work submission based on command lists that contain the entirety of information needed to execute a particular workload on the GPU. Each new command list contains information such as which PSO to use, what texture and buffer resources are needed, and the arguments to all draw calls. Because each command list is self-contained and inherits no state, the driver can pre-compute all necessary GPU commands up-front and in a free-threaded manner. The only serial process necessary is the final submission of command lists to the GPU via the command queue, which is a highly efficient process.

In addition to command lists, Direct3D 12 also introduces a second level of work pre-computation, bundles. Unlike command lists which are completely self-contained and typically constructed, submitted once, and discarded, bundles provide a form of state inheritance which permits reuse. But another approach is to “record” one bundle that draws a single character model, then “play back” the bundle twice on the command list using different resources. In the latter case, the driver only has to compute the appropriate instructions once, and creating the command list essentially amounts to two low-cost function calls.

Descriptor heaps and tables

Resource binding in Direct3D 11 is highly abstracted and convenient, but leaves many modern hardware capabilities underutilized. In Direct3D 11, games create “view” objects of resources, then bind those views to several “slots” at various shader stages in the pipeline. Shaders in turn read data from those explicit bind slots which are fixed at draw time. This model means that whenever a game wants to draw using different resources, it must re-bind different views to different slots, and call draw again. This is yet another case of overhead that can be eliminated by fully utilizing modern hardware capabilities.

Direct3D 12 changes the binding model to match modern hardware and significantly improve performance. Instead of requiring standalone resource views and explicit mapping to slots, Direct3D 12 provides a descriptor heap into which games create their various resource views. This provides a mechanism for the GPU to directly write the hardware-native resource description (descriptor) to memory up-front. To declare which resources are to be used by the pipeline for a particular draw call, games specify one or more descriptor tables which represent sub-ranges of the full descriptor heap. As the descriptor heap has already been populated with the appropriate hardware-specific descriptor data, changing descriptor tables is an extremely low-cost operation.

In addition to the improved performance offered by descriptor heaps and tables, Direct3D 12 also allows resources to be dynamically indexed in shaders, providing unprecedented flexibility and unlocking new rendering techniques. As an example, modern deferred rendering engines typically encode a material or object identifier of some kind to the intermediate g-buffer. In Direct3D 11, these engines must be careful to avoid using too many materials, as including too many in one g-buffer can significantly slow down the final render pass. With dynamically indexable resources, a scene with a thousand materials can be finalized just as quickly as one with only ten.

Tags: Microsoft, DirectX, Windows, DirectX 12, Windows 8, Windows 9, OpenGL, OpenCL, Direct Compute, Direct3D, DX12, AMD, Radeon, GCN, Nvidia, Kepler, Fermi, Pascal, Maxwell


Comments currently: 17
Discussion started: 03/27/14 02:37:44 AM
Latest comment: 04/02/14 01:40:04 PM
Expand all threads | Collapse all threads


As usual M/S have reverse engineered some-one elses ideas in this case AMD's Mantel.
6 2 [Posted by: tedstoy  | Date: 03/27/14 02:37:44 AM]
- collapse thread

I've got to agree M$ have been dragging their arse in this area for so long. Whereas Mantle makes it easier for people who work in the games or graphics industry's to write code. And at 30% of the size of Direct X its not as resource hogging.
1 1 [Posted by: albert89  | Date: 03/27/14 08:07:55 AM]
ms had gamers migrating to newer platforms due to newer dx versions.
Mantle does not do that thing, you need only the gpu, SO ms had to pull some strings to keep people and companies interested in dx, now that mantle is a possible threat with all that console+desktop game development that target mostly amd h/w.
I want to see a cross-platform dx, but that is impossible because dx being also a part of the windows marketing thing.
At least there is a lot more competition now that mantle is on the table, a lot more than what openGL offered to the industry of games.
1 1 [Posted by: Yorgos  | Date: 03/27/14 11:55:30 AM]
Mantle never was going to any console ever.. steam maybe, but only after amd decides to do it and it will again forces extra costs on the developers to code to code two engines, debug two engines, patch two engines.
0 2 [Posted by: amdzorz  | Date: 03/27/14 04:12:58 PM]
so you think that the only thing that makes the industry move is cost?
with the adoption of mantle, as claimed always, someone with a low cost build, would consider to buy the game, so there is a cost to make the game engine render graphics using mantle, but the market share is going to be huge. Also, when you have a possible supported h/w on both xb1 ps4 and for sure on the pc, then the development cost for the game makers is going to shrink because they have the same api for 3 different platforms(also it is possible to use it in windows/linux/*bsd/MacOS/e.t.c.)
there are more benefits from mantle to consider the cost of development a factor.
1 1 [Posted by: Yorgos  | Date: 03/28/14 09:08:32 AM]
ms won't go with mantle with the xbox one, it will use directx 12, sony will end up prob using mantle for the ps4.
1 2 [Posted by: SteelCity1981  | Date: 04/01/14 01:39:55 AM]
Cost is the #1 deciding factor of any studio build. So yes.

and no mantle will *NEVER* be used on xbox, that is what dx12 is for. As for sony they use thier own *proprietary* copy of opengl.. so no mantle their either especially n ow that the ogl group has released "0 overhead opengl code" as well.

so in the end you have the open standard opengl 0-overhead render. dx12 across all windowz platforms... and third place amd that only works for amd hardware on all of 2 currently released games.
0 1 [Posted by: amdzorz  | Date: 04/01/14 01:20:09 PM]
God you wish.. this has been in dev before mantle.
1 3 [Posted by: amdzorz  | Date: 03/27/14 04:10:53 PM]
show the post
0 3 [Posted by: sanity  | Date: 03/27/14 09:56:19 PM]
And the S|A crowd once again fail to see the point behind my previous comment. Of course, I'll readily admit that the part of "AMD reverse-engineering the NVidia ABR extensions" probably was exaggerated in the sense of AMD writing their own implementation of said ARB extensions, but the specs do indicate that NVidia beat both AMD and MS to the punch wrt low-level graphics optimizations. AMD just happened to have come up with a catchy name for their graphics API and beat their marketing drums a good deal louder.
0 1 [Posted by: sanity  | Date: 03/28/14 06:53:50 PM]

wonder if amd will support DirectX 12 now that it has mantle out. I mean if they do it would compete directly with its own mantle and it may make developers favor directx 12 over mantle if that happens.
0 2 [Posted by: SteelCity1981  | Date: 03/27/14 08:39:16 AM]
- collapse thread

sure they will, there is no reason to drop support to dx12. I guess they could easily, via their driver, do wrap similar features of dx12 to mantle's implementation+optimizations.
1 1 [Posted by: Yorgos  | Date: 03/27/14 11:50:57 AM]
You didn't read the article, did you?
0 1 [Posted by: DivideOverflow  | Date: 03/27/14 02:18:46 PM]
sure did but the main focus on dx 12 is low level hardware performance since amd has that with mantle it will be competing directly with mantle.
0 2 [Posted by: SteelCity1981  | Date: 03/27/14 03:30:16 PM]

Took four years to develope directx 12 according to nvidia. Games won't come until the end of 2015. Its safe to say that Mantle is a stop gap measure. Nvidia also said that new hardware will be needed to implement all features of directx 12. All the speakers at GDC are praising the new api. I know its Microsoft, but everyone who's in the industry is very very happy. If you look at Amp C++ as well and how it works with directx 12 Microsoft might have done something right this time.
1 2 [Posted by: Srenia Ia  | Date: 03/28/14 01:50:55 AM]

Once again M$ is late to the Party, and will only use DirectX to push its newest OS. The gaming Industry will have to develop for the OSs that has the largest representation, Such as Windows 7, and for other reasons Linux/Linux based Android platforms(OpenGL for Mobile). The Steam OS ecosystem will give gamers all of the flexability of using a standard PC platform(User Updateable hardware), with the Steam client offering a gaming console style gaming ecosystem. If M$ trys to use DX12 to push the hated 8 lockin, then there will be Mantle, and other options available. The khronos group, having met better adoption for OpenGL in mobile, will need to get its act togather and make OpenGL closer to the metal also, if anything, mobile has forced many improvments on the OpenGL software stack, via the adoption of Android, and the use of of OpenGL as the main graphics API for the Mobile market. Expect Google, Apple, and others to invest in OpenGL on the programming resources support side, as the closer to the metal graphics APIs are also going to save on the power usage, a bigger deal in mobile! The economy of the gaming industry will always support the version of directX that is on the most units, and that has never been the Newest version, and DX 12 is not even out of the starting gate yet, and even after, it will take years for the user hardware base to catch up. Mantle being in the here and now, is sure getting the led out of the competition, and as more of AMD's version of HSA becomes supported on the software side, expect there to be one or two generations of improvment with Mantle, before there is a DX 12 to contend with, competition is a good thing. Apple for sure, with the recent new information released about the A7, will be doing its upmost to streamline its graphics driver stack, in mobile and on the laptop/desktop, who knows what Improvments AMD and Apple have in store for the OpenGL API.
1 0 [Posted by: BigChiefRunAmok  | Date: 04/01/14 10:23:03 PM]
- collapse thread

Since windows 9 will have a new start menu, and dx12+ .. I will happily buy win-9-pro for 30$ from my oem channel source.
0 1 [Posted by: amdzorz  | Date: 04/02/14 01:40:04 PM]


Add your Comment

Related news

Latest News

Thursday, August 28, 2014

12:22 pm | AMD Has No Plans to Reconsider Recommended Prices of Radeon R9 Graphics Cards. AMD Will Not Lower Recommended Prices of Radeon R9 Graphics Solutions

Wednesday, August 27, 2014

9:09 pm | Samsung Begins to Produce 2.13GHz 64GB DDR4 Memory Modules. Samsung Uses TSV DRAMs for 64GB DDR4 RDIMMs

Tuesday, August 26, 2014

6:41 pm | AMD Quietly Reveals Third Iteration of GCN Architecture with Tonga GPU. AMD Unleashes Radeon R9 285 Graphics Cards, Tonga GPU, GCN 1.2 Architecture

Monday, August 25, 2014

6:05 pm | Chinese Inspur to Sell Mission-Critical Servers with AMD Software, Power 8 Processors. IBM to Enter Chinese Big Data Market with the Help from Inspur

Sunday, August 24, 2014

6:12 pm | Former X-Bit Labs Editor Aims to Wed Tabletop Games with Mobile Platforms. Game Master Wants to Become a New World of Warcraft