The DirectX Tool Kit for DX11 supports D3D_FEATURE_LEVEL_9_1 devices for most implementations, using 2_4_0_level_9_1 when building shaders. This generates both a Shader Model 2 and Shader Model 4 version of the shader blob.
Newer features like NormalMapEffect, PBREffect, and PostProcess requires D3D_FEATURE_LEVEL_10_0 or higher because they make use of Shader Model 4 features.
The motivation for supporting Direct3D 9.x feature levels dates back to the Surface RT ARM32 devices and is the lowest supported feature level for all Windows Vista+ systems using WDDM drivers. At this point, however, there are no Windows devices in use that require 9.x support, and by dropping it we can minimize some code branching and reduce the overall size of the shader blobs included in the library (545k -> 278k).
Note we want to stick with D3D_FEATURE_LEVEL_10_0 rather than use D3D_FEATURE_LEVEL_11 to support 'app mode' for UWP on Xbox One. I could use D3D_FEATURE_LEVEL_10_1, but there's really no case where that difference matters much for the toolkit.
The DirectX Tool Kit for DX11 supports
D3D_FEATURE_LEVEL_9_1devices for most implementations, using2_4_0_level_9_1when building shaders. This generates both a Shader Model 2 and Shader Model 4 version of the shader blob.Newer features like NormalMapEffect, PBREffect, and PostProcess requires
D3D_FEATURE_LEVEL_10_0or higher because they make use of Shader Model 4 features.The motivation for supporting Direct3D 9.x feature levels dates back to the Surface RT ARM32 devices and is the lowest supported feature level for all Windows Vista+ systems using WDDM drivers. At this point, however, there are no Windows devices in use that require 9.x support, and by dropping it we can minimize some code branching and reduce the overall size of the shader blobs included in the library (545k -> 278k).