diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c index 31155af2a0a..f4b987a6c41 100644 --- a/src/compiler/spirv/spirv_to_nir.c +++ b/src/compiler/spirv/spirv_to_nir.c @@ -80,6 +80,7 @@ static const struct spirv_capabilities implemented_capabilities = { .Float16Buffer = true, .Float64 = true, .FloatControls2 = true, + .FMAKHR = true, .FragmentBarycentricKHR = true, .FragmentDensityEXT = true, .FragmentFullyCoveredEXT = true, @@ -6983,6 +6984,7 @@ vtn_handle_body_instruction(struct vtn_builder *b, SpvOp opcode, case SpvOpFSub: case SpvOpIMul: case SpvOpFMul: + case SpvOpFmaKHR: case SpvOpUDiv: case SpvOpSDiv: case SpvOpFDiv: diff --git a/src/compiler/spirv/vtn_alu.c b/src/compiler/spirv/vtn_alu.c index db23c274fb2..c6f1b18d7ec 100644 --- a/src/compiler/spirv/vtn_alu.c +++ b/src/compiler/spirv/vtn_alu.c @@ -281,6 +281,7 @@ vtn_nir_alu_op_for_spirv_opcode(struct vtn_builder *b, case SpvOpFSub: return nir_op_fsub; case SpvOpIMul: return nir_op_imul; case SpvOpFMul: return nir_op_fmul; + case SpvOpFmaKHR: return nir_op_ffma; case SpvOpUDiv: return nir_op_udiv; case SpvOpSDiv: return nir_op_idiv; case SpvOpFDiv: return nir_op_fdiv;