Why is d3dcompiler_43.dll required to compile a 5_0 shader?

Hi all,

I’m on windows 10, with VS 2015. I have a shader that’s a d3d11 pixel shader:

pass Pass1
{
    PixelShader = compile ps_5_0 PixelShaderFunction();
}

When I try to compile this shader, the monogame pipeline tool gives me the error “Unable to load dll: ‘d3dcompiler_43.dll’”.

That DLL is part of the 2010 DX SDK. This shouldn’t be needed to compile a ps 5_0 shader, which is for D3D11, right?

I’d really like to not have to install the old, legacy, 2010 DX SDK. Is there a way to compile shaders on Windows 10 without that? Windows 10 comes bundled with DX now, it shouldn’t need that old legacy DLL to compile a modern shader.

Thanks!

You don’t need to install any SDK. Just install the DX web runtime:

https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=35

That will solve it and doesn’t install anything but runtime bits.

That worked, thank you.

Same here d3dcompiler in content pipeline effect these little nuggets really ought to be in the docs.