Along with Windows 10, Microsoft released support for DirectX 12 which brings enhanced stability and offered more versatility for graphics and games. These games ran faster, have better looks and with lower crash rates while expanded its compatibility with a wider range of graphics rendering hardware. DirectX 12 has the power to render games in Native 4K not only on PCs but also on Xbox. The latest Xbox offering, the Xbox One X also uses the DirectX 12 APIs to render games in Native 4K.
With Fall Creators Update, Microsoft is working to improve the API with the help of the customer feedback. Some of the new features that DirectX 12 now supports are:
The CPU GPU Divide:
This feature works on the principle of Parallel processing. Here the CPU and GPU work together to render 2D and 3D objects on the screen. This makes the processing faster as doing work consecutively is less convenient than doing that same task parallel-y.
“For example, an application that uses 3D graphics will tell the GPU the positions of every object that needs to be drawn. The GPU will then move each object to its correct position in the 3D world, taking into account things like lighting conditions and the position of the camera, and then does the math to work out what all of this should look like from the perspective of the user. The GPU then sends back the image that should be displayed on system’s monitor.”
To the left, we see a camera, three objects and a light source in Unity, a game development engine. To the right, we see how the GPU renders these 3-dimensional objects onto a 2-dimensional screen, given the camera position and light source.
Device Removed Errors:
There can be two scenarios of a graphics rendering process being crashed. First, either the GPU was temporarily removed says like during a driver update or second, the GPU was logically removed. In both the scenarios, the GPU data is lost because of the connection between the CPU and GPU being terminated. Hence, the transmission of data between the CPU and GPU with hardware drivers becomes all impossible during the rendering but now with DirectX 12 API, developers can check what command made the process to crash.
Improved debugging: Data
Take a case of a racing game. Here, the GPU reads and writes from data structures called resources. These resources define an algorithm or a set of commands that help in the working of actions in the game. Well, earlier, every time you pressed the arrow key, the GPU read or write data from and to these resources but now with this update, Developers with access to the contents of resource memory now have substantially more useful information to help them determine exactly where an error occurred. Developers can now optimize time spent trying to determine the causes of errors, offering them more time to fix them across systems.
Improved Debugging: Commands
The team built a tool to create markers that record which commands sent from CPU have been executed and which ones are in the process of execution. Hence, when a crash takes place, developers could rectify which command caused it and then simply implement a fix without the whole long diagnosing process.
As we just saw above, these improvements are there for both gamers and game developers to fix issues. The gamers can send the diagnostics to the developers who can now check the log to find the issues and fix them faster and improve the whole stability of the game with new interaction algorithms between the CPU and GPU.
Source: Windows Blog