Tuesday, March 22nd 2016
Microsoft Details Shader Model 6.0
Microsoft is giving final touches to Shader Model 6.0, an update to a key component of its Direct3D API. This succeeds Shader Model 5.0, which remained largely unchanged since the introduction of DirectX 11.0 in 2009. Shader Model 6.0 provides a more optimized pathway for shader code to make its way to the metal (GPU, hardware). The outgoing Shader Model 5.0, which is featured on DirectX 11 and DirectX 12, relies on FXC, an offline shader compiler, to both compile and optimize HLSL shader code, supporting HLSL v1.4 to v5.1 code.
Shader Model 6.0, on the other hand, dedicates compiling to Clang HLSL compiler, and optimization to multiple LLVM passes. Since Shader Model 6.0 supports HLSL code from v5.0 upwards, it should also benefit existing DirectX 11 and DirectX 12 apps, while relegating older apps to the then legacy Shader Model 5.0 pathway. In addition, Shader Model 6.0 claims to provide the right performance to cope with API level features such as tiled resources (mega-textures). It remains to be seen how Microsoft deploys Shader Model 6.0.
Source:
PCGH
Shader Model 6.0, on the other hand, dedicates compiling to Clang HLSL compiler, and optimization to multiple LLVM passes. Since Shader Model 6.0 supports HLSL code from v5.0 upwards, it should also benefit existing DirectX 11 and DirectX 12 apps, while relegating older apps to the then legacy Shader Model 5.0 pathway. In addition, Shader Model 6.0 claims to provide the right performance to cope with API level features such as tiled resources (mega-textures). It remains to be seen how Microsoft deploys Shader Model 6.0.
45 Comments on Microsoft Details Shader Model 6.0
LOL
"Cannot launch game, your graphics card does not support the latest Shader Model 5.0"
"<Insert Application> has encountered a problem and needs to close."
Seems if you buy this years GFX cards and they don't support this... lol you will just be throwing away your money.
*Edit*
I would love to see a response from nVidia and AMD about this... I wonder.
The point being; Why buy a graphics card when it's life span will all in likelihood only be 1 year when games WILL start supporting it. It has happened before.
I can see the new TITAN / Ti users being extremely happy about their cards new lifespan, it's just $1000 after all, no problems. /sarcasm
Go buy it, please. /queue harmonic and peaceful sounds that sheep enjoy.
I remember, as I was one of those that got screwed in the whole 3.0 and 5.0 Shader model debacle. "It's fine they said, see the digital world they said..." 6 months later... Cannot launch this, cannot launch that, program not responding, program closed unexpectedly with critical errors, Please upgrade your hardware, your graphics card does not seem to support Shader Model 5.0 etc.
That said, it appears that any graphics card that supports DirectX 12_1 will support SM6, which means that Maxwell 2 and Intel Gen9 (Skylake) IGPs should support it as soon as it's added to DirectX and implemented in drivers. Fury, however, is only 12_0 compliant and hence will not support SM6.
Note that "Wavefront" refers AMD's side and "Warp" refers to NVIDIA's side.
The description of the changes of the compiler architecture seems similar to SPIR-V which is the foundation of newer OpenCL and Vulkan, even though Direct3D has supported offline compilation for years.
Still, every graphics programmer knows that the future lies in moving more of the current API features into the GPU shader code. We can't continue to scale with API calls on Pascal, Volta, (whatever comes next in 2020) ... Hopefully SM 6 will bring more changes than just on the compilation side. I'd like to see some "master shader" to actually control the pipeline, at least partly through invoking compute shaders, vertex shaders, controlling threads, allocation and so on. Perhaps in SM 8?