diff --git a/include/vkd3d_shader.h b/include/vkd3d_shader.h index 449b3684..a8cc3a33 100644 --- a/include/vkd3d_shader.h +++ b/include/vkd3d_shader.h @@ -200,6 +200,7 @@ enum vkd3d_shader_compile_option_fragment_coordinate_origin enum vkd3d_shader_compile_option_feature_flags { VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64 = 0x00000001, + VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64 = 0x00000002, VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLAGS), }; diff --git a/libs/vkd3d/state.c b/libs/vkd3d/state.c index 82782e7d..12a8cd54 100644 --- a/libs/vkd3d/state.c +++ b/libs/vkd3d/state.c @@ -2154,6 +2154,8 @@ static unsigned int feature_flags_compile_option(const struct d3d12_device *devi if (device->feature_options1.Int64ShaderOps) flags |= VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64; + if (device->feature_options.DoublePrecisionFloatShaderOps) + flags |= VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64; return flags; }