From: Jason Ekstrand Date: Wed, 15 Oct 2014 21:44:00 +0000 (-0700) Subject: i965/fs_nir: Handle coarse/fine derivatives X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=95fbd6e1eed58f1f87aaa425bb5312a92db29d21;p=mesa.git i965/fs_nir: Handle coarse/fine derivatives Reviewed-by: Connor Abbott --- diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp index aab74298fae..5d78272e82a 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp @@ -613,6 +613,14 @@ fs_visitor::nir_emit_alu(nir_alu_instr *instr) emit_percomp(FS_OPCODE_DDX_COARSE, result, op[0], instr->dest.write_mask, instr->dest.saturate); break; + case nir_op_fddx_fine: + emit_percomp(FS_OPCODE_DDX_FINE, result, op[0], + instr->dest.write_mask, instr->dest.saturate); + break; + case nir_op_fddx_coarse: + emit_percomp(FS_OPCODE_DDX_COARSE, result, op[0], + instr->dest.write_mask, instr->dest.saturate); + break; case nir_op_fddy: if (fs_key->high_quality_derivatives) emit_percomp(FS_OPCODE_DDY_FINE, result, op[0], @@ -623,6 +631,16 @@ fs_visitor::nir_emit_alu(nir_alu_instr *instr) fs_reg(fs_key->render_to_fbo), instr->dest.write_mask, instr->dest.saturate); break; + case nir_op_fddy_fine: + emit_percomp(FS_OPCODE_DDY_FINE, result, op[0], + fs_reg(fs_key->render_to_fbo), + instr->dest.write_mask, instr->dest.saturate); + break; + case nir_op_fddy_coarse: + emit_percomp(FS_OPCODE_DDY_COARSE, result, op[0], + fs_reg(fs_key->render_to_fbo), + instr->dest.write_mask, instr->dest.saturate); + break; case nir_op_fadd: case nir_op_iadd: {