After some reading in Microsoft website (links below), I came to conclusion that
PCD3D_SM5 means “directx 11 class graphics” (shader model 5)
PCD3D_SM6 means “directx 12 class graphics” (shader model 6)
Is not true,
DirectX 11 only has shader model 5.0 but DirectX 12 has shader model 5.1, 6.0 and 6.4. I didn’t find any document for Shader models 5.2, 6.1 …
This means even though you are running windows 10 and Dx12 is supported on your system, it is not enough. Your Dx12 should support Shader Model 6 and above too,
Hence the following 3 configuration lines in project settings (Note the D3D12
and D3D11
at the start and SM5
and SM6
at the end)
-D3D12TargetedShaderFormats=PCD3D_SM5
+D3D12TargetedShaderFormats=PCD3D_SM6
-D3D11TargetedShaderFormats=PCD3D_SM5
I’m running Windows 10 on a I9-11xxx system with RX 2070 Super and 32GB ram which is above minimum requirement specified for Shadow valley project. My system does support Dx12 (DxDiags), but because I’m running LTSC Enterprise version, it doesn’t have SM6 (Shader model 6), project gave me error with +D3D12TargetedShaderFormats=PCD3D_SM6
. When I disabled -D3D12TargetedShaderFormats=PCD3D_SM6
and enabled +D3D11TargetedShaderFormats=PCD3D_SM5
by toggling those +
and -
(seems you can only have one of them with +), I could load the project but got a warning and project didn’t render properly.
The other issue that I don’t see anyone else mention here is even though minimum ram requirement is 32GB (in multiple places), It is not enough, you can open editor, you might be able to compile it too and run it when editor is closed but I definitely couldn’t run it in editor. Tried to run it 3 times and every time it hanged in some stage and after long minutes show me out of memory error.
Now according to this project, Nanite and Virtual Shadows, require Shader model 6.0 which brings me to conclusion that even if I make a game using these neat features, only people with systems that support SM6 can run it correctly and I won’t be able to sell as many copies of my game as if I use Dx12 with SM5, at least explaining it to users will be easier that why their system cannot run it.
I’m sure situation will change very soon and systems with ability to run SM6 will be more accessible, but at the moment, in my opinion, if your game will be published in next few months to a year better don’t rely on nanites and just go with old methods of baking shadows and textures, but if your game will be in long term development (2~3 years) start using nanites right away.
Links to Microsoft articles about Shader Models and DirectX versions