vkd3d: Expose shader model 6.5.

WaveMatch and WaveMultiPrefix are implemented and pass test.
Other features are gated behind feature bits.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
Hans-Kristian Arntzen 2021-07-29 20:27:59 +02:00
parent 3c350ec0f5
commit 093a8c49f3
1 changed files with 9 additions and 7 deletions

View File

@ -4941,18 +4941,20 @@ static void d3d12_device_caps_init_shader_model(struct d3d12_device *device)
* Variable rate shading
* Library subobjects
*/
if (device->d3d12_caps.max_shader_model == D3D_SHADER_MODEL_6_3)
{
/* Nothing in SM 6.4 requires special support (except for VRS which is optional).
* The rest is just shader arithmetic intrinsics and reflection. */
device->d3d12_caps.max_shader_model = D3D_SHADER_MODEL_6_4;
TRACE("Enabling support for SM 6.4.\n");
}
/* SM 6.5 adds:
* https://github.com/microsoft/DirectXShaderCompiler/wiki/Shader-Model-6.5
* DXR 1.1, Sampler feedback, Mesh shaders, Amplification shaders, more wave ops.
*/
if (device->d3d12_caps.max_shader_model == D3D_SHADER_MODEL_6_3)
{
/* Nothing in SM 6.4 requires special support (except for VRS which is optional).
* The rest is just shader arithmetic intrinsics and reflection. */
/* The only required features in SM 6.5 are WaveMulti and WaveMultiPrefix wave ops
* which map directly to normal wave operations. */
device->d3d12_caps.max_shader_model = D3D_SHADER_MODEL_6_5;
TRACE("Enabling support for SM 6.5.\n");
}
}
else
{