The Effects 11 library has three major dependencies:
- The Direct3D 11.0 API
- The HLSL shader compiler's fx_5_0 shader profile
- The D3DReflect API for obtaining shader metadata at runtime
The Direct3D 11.0 API is supported in Windows Vista Service Pack 2 with KB 971644 or later. This API works for Win32 desktop applications, Windows Store apps, and Windows phone. Due to interface inheritance, you can mix the use of Direct3D 11.0 interfaces with
the Direct3D 11.1 (Windows 8 / Windows 7 SP1 with
) and Direct3D 11.2 (Windows 8.1) so Effects 11 continues to function even with newer runtimes.
Effects 11 does not make use of any specific newer features exposed by Direct3D 11.1 or Direct3D 11.2, but you can mix use of all 11.x interfaces so this doesn't pose a particular challenge to the future of this library.,
HLSL shader compiler and the fx_5_0 shader profile
The Effects 11 runtime requires shaders and shader metadata generated by the HLSL compiler. This is accomplishing using FXC.EXE or the D3DComplie_*.DLL via the
. This profile is supported in D3DCompile_43.DLL shipped in the legacy DirectX SDK (June 2010) release. It is supported by the D3DCompile_46.DLL that shipped in the Windows 8.0 SDK and is included in Visual Studio 2012, but does not implement
newer features for the fx_5_0 profile such as minimum precision types.
The D3DComplie_47.DLL included in the Windows SDK for Windows 8.1 Preview
Visual Studio 2013 Preview
continues to support the fx_5_0 shader profile but generates a warning:
warning X4717: Effects deprecated for D3DComplier_47
This means Effects 11 is usable now with the current and recent generation HLSL compilers, but in a future update when support is removed Effects 11 will no longer be usable with the latest generation of the compiler. It can be used with older version of the
compiler on an "as is" basis.
The required reflection APIs are located in D3DCompile*.DLL and must match the HLSL complier version used to compile the shaders. Since D3DCompile and D3DReflect APIs are not available for Windows Store apps on Windows 8 or Windows RT for deployment, Effects
11 is not usable for these applications. The latest version of these APIs are now available for use in Windows Store apps on Windows 8.1, so it is technically possible to use Effects 11 in such applications but such use is not recommended.