- vkd3d_spirv_enable_capability(&compiler->spirv_builder, SpvCapabilityFloat64); + if (compiler->features & VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64) + { + vkd3d_spirv_enable_capability(&compiler->spirv_builder, SpvCapabilityFloat64); + } + else + { + WARN("Unsupported 64-bit float ops.\n"); + spirv_compiler_error(compiler, VKD3D_SHADER_ERROR_SPV_UNSUPPORTED_FEATURE, + "The target environment does not support 64-bit floating point."); + }
That'll break older users of the API though. We should probably set FEATURE_FLOAT64 for API_VERSION_1_10 and older in spirv_compiler_create().