What's New in DX 10.1
So what's new in DX 10.1 that should lead you to rethink your purchasing decisions?
There's a new Shader Model (SM). Direct3D 10.1 introduced SM 4.1 to replace SM 4.0. Seeing that DX 10 hardware unified the shader core in terms of what operations can be handled, the changes can be can be divided into their three components: tighter specifications, shading and texturing capabilities, and anti-aliasing improvements. The debate over which cards to buy would have been simplified if some of these changes had been implemented in DX 10.0 instead of delaying them until DX 10.1. But, that didn't happen.
Additionally, Shader performance has been improved. Shaders will be able to output to any MRT (multiple render target) or buffer with their own blending mode per target. Vertex shaders now can have 32 128-bit values instead of 16. Level of detail (LOD) instructions were added which allow custom filtering techniques to be used. Gather4 enables a block of 2x2 unfiltered texture values instead of a single bilinear filtered lookup. The last of the major improvements to shader model 4.1 is the use of cube map arrays. In the world of gamers, this is one of the most significant changes, as it allows the use of efficient global illumination techniques which can deliver ray trace quality effects including indirect lighting, color bleeding, soft shadows, refraction, and high quality glossy reflections to a scene. Below is a screenshot of new demo that AMD has been working on that shows the use of cube maps for global illumination. On the right it has been turned on and on the left it is off. Notice the shadows and color blending per sphere with the technique enabled.
DX 10.1 takes some of the optional precision and formatting items from Direct3D 10 and forces their compliance in DX 10.1. Two data formats which are required are floating point 32 (FP32) and integer 16 (Int16). 0.5 ULP (Unit in the Last Place) is also enforced in 10.1. Both FP32 for 128-bit texture format filtering and Int16 64-bit integer pixel blending ensures all 10.1 compliant hardware vendors will support these high precision data formats in their products. A tighter ULP makes rounding floating point numbers even more precise. This means that if a developer wants to use these specific formats or requires tighter rounding precision, they don't have to code around the hardware. The same is true for the blending, 10.1 will support all unorm and snorm formats and 10.1 hardware will support all of it regardless of manufacturer.
Antialiasing (AA) will get cleaned up a lot as well. Multisampling antialiasing (MSAA) under D3D 10.1 now requires a minimum of four samples per pixel for 32-bit and 64-bit (MSAA 4x). AMD/ATI and Nvidia have kept their AA sampling patterns under wraps for competitive reasons. 10.1 will force many improvements regarding AA sample patterns as well. The first being a standardized sample pattern for AA for 2x, 4x, 8x and 16x sampling. 10.1 will also enable pixel coverage masking and multi-sample read and writes to the buffer. Now color and depth can be accessed directly by the shader and then can be manipulated via a predetermined pixel shader AA program. Long gone will be the days of HDR without AA. Developers can determine what will work best with their applications, performing custom AA, edge detecting AA, and even programming their own custom AA filter for adaptive and temporal AA.
Click for a larger image of the global illumination demo.
Nvidia was first with SM 3.0. DX 10.1 is the way of the future and AMD/ATI is there first. You can be assured that tighter standards and cube maps with global illumination is a feature that will be the norm regardless of what marketing and PR you get from either graphic camp. D3D 10.1 is around the corner and AMD will be the first to launch hardware that is compliant with this new specification. When Vista service pack 1 rolls out will you be ready for the games that support DX 10.1 or not?