Main features of DirectX 12: details.
A post was published on the AMD blog yesterday in which Robert Hallock, the company’s director of technical marketing, has shared some details about two of the most important features of DirectX 12. These features are “asynchronous shaders” and “multi- threaded command buffer recording”, and they are going to make a big difference in gaming.
This feature allows graphics engines to perform calculations or other activities with the GPU during gaps in the graphics processing load required by a game.
This feature allows a game engine to execute GPU compute or memory activities during “gaps” in the graphics workload presented by a game.
Although it seems very logical to allow the GPU’s graphics, compute, and memory functions to operate simultaneously, in previous versions of DirectX it was not possible, as they were limited to a single serial processing queue for all types of tasks.
In this way, all graphics, calculation and memory tasks had to wait for other operations to finish before doing their thing. This results in times when the hardware is idle, which means performance drops.
On the other hand, DirectX 12 asynchronous shaders manage to distribute these tasks among several execution threads to reduce the total time required. These asynchronous shaders are an important component of the game experience because less rendering time means less delay in drawing and therefore better performance (more fps, better responsiveness in VR environments, etc).
AMD’s GCN architecture is specifically designed to achieve very fine “granularity” on the subject of async shaders with hardware dedicated to this task, known as the Async Shaders Compute Engine (ACE).
Multi-threaded command buffer recording
The command buffer is a game’s to-do list, a series of things that the CPU must organize and present to the graphics card for it to process. Elements of this type can be lighting, placing characters, loading textures, creating reflections, etc.
Today’s PCs are typically equipped with multi-core CPUs, and in DirectX 11 many of the cores were unloaded while one core did all the work, due to DirectX 11’s inability to partition a game’s command buffer. in small tasks that can be processed in parallel. Then there’s the fact that a lot of time is spent interpreting API directives or overheads, which leaves less time to run the game code, which is what we’re interested in.
This is what DirectX 12 comes to solve.
The benefits of using DirectX 12 correctly are already starting to show, with Oxide Games and Stardock collaborating with AMD to create Ashes of the Singularity, a strategy game that will be released in time and will use all cores. available from a processor to offer performance, image quality and resolutions that, in the words of Brad Wardell (CEO of the developers), “are not even a possibility with DirectX 11”.
The AMD products that will be compatible with DirectX 12 (once we have Windows 10 Technical Preview Build 10041 or later and the latest drivers) will be the following:
- AMD Radeon R9 Series graphics
- AMD Radeon R7 Series graphics
- AMD Radeon R5 240 graphics
- AMD Radeon HD 8000 Series graphics for OEM systems (HD 8570 and up)
- AMD Radeon HD 8000M Series graphics for notebooks
- AMD Radeon HD 7000 Series graphics (HD 7730 and up)
- AMD Radeon HD 7000M Series graphics for notebooks (HD 7730M and up)
- AMD A4/A6/A8/A10-7000 Series APUs (codenamed “Kaveri”)
- AMD A6/A8/A10 PRO-7000 Series APUs (codenamed “Kaveri”)
- AMD E1/A4/A10 Micro-6000 Series APUs (codenamed “Mullins”)
- AMD E1/E2/A4/A6/A8-6000 Series APUs (codenamed “Beema”)
More details about this info in Robert Hallock’s post.