--- src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp index 5da8423..41f9ae2 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp @@ -1234,7 +1234,13 @@ fs_visitor::nir_emit_alu(nir_alu_instr *instr) break; case nir_op_ffma: - inst = emit(MAD(result, op[2], op[1], op[0])); + if (brw->gen >= 6) { + inst = emit(MAD(result, op[2], op[1], op[0])); + } else { + fs_reg temp = vgrf(glsl_type::float_type); + emit(MUL(temp, op[0], op[1])); + inst = emit(ADD(result, temp, op[2])); + } inst->saturate = instr->dest.saturate; break; -- 2.3.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev