Microsoft recently announced at the //build/ conference that the latest update to their API, DirectX, will receive an upgrade boost to version 11.2. The company detailed some of the changes it’ll bring and how it’s important for games and graphics applications.
They’ve also confirmed that DirectX 11.2 will be exclusive to Windows 8.1 and the Xbox One console, leaving gamers on older XP, Vista and Windows 7 systems out in the cold. Windows 8.1 is essentially a service pack upgrade to Windows 8 and is scheduled for a release later this year. Anyone running Windows 8 will receive the service pack for free. So what exactly does the update to DirectX 11.2 entail?
- HLSL shader linking
- Inbox HLSL compiler
- GPU overlay support
- DirectX tiled resources
- Direct3D low-latency presentation API
- DXGI Trim API and map default buffer
- Frame buffer scaling
- Multithreading with SurfaceImageSource
- Interactive Microsoft DirectX composition of XAML visual elements
- Direct2D batching with SurfaceImageSource
While this is all a bit technical, what we’re seeing here is effectively a major re-write of how DirectX 11.2 functions when it comes to working with graphics cards. There are some optimisations specifically for multi-core systems and updates for the 2D desktop as well. The most interesting changes are what Microsoft calls “tiled resources.”
Tiled resources is a HSA technology, simply put. DirectX 11.2 can now use system memory in place of graphics memory to create more detailed visuals on graphics cards that may not have a lot of memory to begin with. So for instance instead of using the page file on your hard drive or SSD, the tiled resources makes a pageable address space in your system RAM that the graphics card can use to store higher-resolution textures.
If you run over your frame buffer on your 1GB graphics card, for instance, you can have the extra textures put into system memory instead. The difference here in comparison to the HSA technology AMD’s been working on is that this works with Intel integrated and Nvidia discrete graphics. It is a software solution and would require a driver re-write to take advantage of the feature. One drawback to this is that it’s not addressable by the CPU, so it’s not like AMD’s hUMA technology in this regard.
This is a big improvement for two reasons:
- If developers are targeting Windows 8.1 for their release, they’ll know that most people running games on it will have more than 4GB of memory, which is free memory they can use to create better textures. This means that they won’t have to spend as much time making textures that may be smaller in size for different resolutions to improve performance, but rather use the time to create better-looking textures
- The driver teams for Intel, AMD and Nvidia will no longer have to replace some textures in games with smaller ones for better performance and lower memory usage. That lightens their burden considerably, will drop the size of graphics driver updates in future and frees them to focus on fixing performance issues elsewhere.
Another important update is frame buffer scaling. Graphics cards hold the rendered frames in their on-board memory (also called a frame buffer) and flush the memory once the frame has been sent to your display device. However, sometimes you may want to render frames in advance and call them up later if your graphics card’s performance has been metered and on most cards there’s not a lot of memory space to do that.
The scaling will use system memory once again, but this time only to hold pre-rendered frames that need to be delivered to your display while your GPU runs off to do something else. This is very similar to something that AMD’s hUMA does, which holds pre-rendered frames and game objects in virtual memory, only this time it’s an option that any graphics card can use.
The final ingredient is something that Microsoft didn’t talk much about – latency. With the world fixating on benchmarking graphics card performance based on how timeously they complete a frame and send it to the monitor, it’s vital that the API they’re using makes the process of rendering the game into your frame buffer and to your monitor as quick as possible, with little overheads to account for.
Microsoft claims they’ve re-worked the latency in Direct X 11.2 and have dropped the total latency from 3 frames for every 60 to less than one frame for every 60. They’ve dropped latency by a factor of three, which is a big improvement.
Looking at the picture as a whole, Microsoft is porting their enhancements to DirectX 11.2 from the Xbox One to their Windows operating system. This is actually big news for the console war – the Xbox 360 won it last time round because its more advanced graphics hardware meant it was far easier to accommodate porting from the 360 to PC rather than from the PS3 to PC.
This means that even though the PC has superior hardware and a more friendly ecosystem for developers, all your PC ports are still going to come from the Xbox One because it uses the same API and carries the same improvements to the desktop PC.