From 093a8c49f3249ca18e91dcd8ecd386ef4f564e6d Mon Sep 17 00:00:00 2001 From: Hans-Kristian Arntzen Date: Thu, 29 Jul 2021 20:27:59 +0200 Subject: [PATCH] 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 --- libs/vkd3d/device.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index b45c3f4d..08ee9d0d 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -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 {