[Editorial] So something did happen at GAME24 that we had not foreseen. Or leaked. Or heard about. I am talking about the DirectX 11.3 update that Microsoft has revealed alongside DirectX 12. This seemingly redundant iteration of the API will provide most of the feature set of DX12 minus the processor overhead reduction that is the hallmark of DX12 API.
Direct3D 11.3 is a Partial DX12 with Most of the Feature Set and No Overhead Reduction
The burning question in everyone's mind would be 'Why'? Well, as to that I have no answer. DX12 API already works with older cards so there really is no point to introduce an even newer standard (technically older) to the Market that gives you only half of the stuff. A probable reason that comes to my mind, is that Microsoft wants to make DX 11.3 readily available and DX 12 limited to Windows 9 and above. 50% of the user base has been clinging to Windows 7 and I wont be surprised if Microsoft uses tricks like these to force migration to the new and upcoming OS. The DirectX 11.3 API will contain features that form a subset of D3D 12. So any feature you see here is automatically included in the succeeding API. The following list shows the new "Rendering Features":
- Ordered rasterizer View
- Typed UAV Load
- Volume Tiled Resources
- Conservative grid
As most of you know, DirectX12 is a low level API which aims to lower CPU Overhead and increase GPU performance in situations which are CPU Bound. However the DirectX 11.3 API will comply with "feature levels" meaning that you can code for D3D12 and have compatibility carry over to 11.3. This was seen in DirectX 11 as well, where you code for D3D11 and have compatibility with 10 and 9 adapting automatically by code alone. Lets take look at the features one by one.
Ordered Rasterizer View or Rasterizer Ordered Views
This feature of DX 11.3 basically gives the developer control on the 'order' in which elements on screen are rasterized. For the tech averse, this means that objects on screen will be drawn in the correct order. This comes as an alternative to UAV which is Unordered Access Views which as you can tell from the name means there is no order. While UAV is fine in some cases, there are times when you would like to control the draw order and this is where the ROV would come in. This feature is included in DirectX 11.3. It is worth mentioning that this actually takes some of the load off the CPU, though exactly how much is not certain at this point.
Typed UAV Load
You remember the UAV I mentioned in the para above? Well one of the downsides of UAV is that there are specific restrictions in place due to its unordered nature. This feature will address those restrictions in a scenario where the UAV is data typed and will enable better handling of the same. Basically unpacking was handled on the software side, which means the job was put on the CPU to do it. Now the GPU will be able to accomplish the same thing without CPU intervention.
Volume Tiled Resources
This is my favorite feature that will be present in Direct3D 11.3. This feature deals with voxels and mega textures and sparse allocation; the bad boys of the rendering world. Volume Tiled Resources in essence are the 'current-rendering-technique's extension into the 3rd Dimension. They will be used in conjunction with Voxels (volumetric pixels) which for the tech averse are basically these cute little cubes used to enhance lightning. This feature will allow immense textures to be implemented while retaining the memory footprint OR drastically reduce the foot print while retaining the texture size.
At the end of the list we have a conservative rasterization feature. This will allow better and exponentially more accurate detection of polygons on screen. Now Microsoft isn't very good with making reader-friendly slides so I will attempt to take a jab and explain this rather complex feature. Take a look at the diagram above. Notice the 4th box from the left in the top most row. Now notice that the polygon (the weird rune thingy) line is passing through a very very small part of the pixel. Under conventional rasterization this pixel will not detect the polygon. That will mean the polygon is inaccurately detected resulting in clumsy collison detection, occlusion culling and the tons of stuff mentioned in the slide above. But perhaps most importantly, and once again something that Microsoft fails to properly explain, is that this technique can be used to build voxels. Did I mention I love voxels? I am pretty sure I did. This feature will ofcourse be a more power intensive approach, but this is not really surprising since increased accuracy usually comes at a price.
Interestingly, neither Nvidia nor AMD has pledged allegiance to DirectX 11.3. Thanks to the feature leveling of this API, developers will not have to worry about providing support for it manually, it will be all-automatic. Still, I will be interested to see the response this API receives from the world. Both APIs will be released sometime in late 2015.
— Usman Pirzada (@usmanpirzada) September 20, 2014