mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
brw: switch to derivative intrinsics
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30566>
This commit is contained in:
parent
19ff16387a
commit
eec02246f8
2 changed files with 21 additions and 15 deletions
|
|
@ -79,6 +79,8 @@ const struct nir_shader_compiler_options brw_scalar_nir_options = {
|
|||
.vectorize_io = true,
|
||||
.vectorize_tess_levels = true,
|
||||
.vertex_id_zero_based = true,
|
||||
.has_ddx_intrinsics = true,
|
||||
.scalarize_ddx = true,
|
||||
};
|
||||
|
||||
struct brw_compiler *
|
||||
|
|
|
|||
|
|
@ -1131,21 +1131,6 @@ fs_nir_emit_alu(nir_to_brw_state &ntb, nir_alu_instr *instr,
|
|||
bld.COS(result, op[0]);
|
||||
break;
|
||||
|
||||
case nir_op_fddx_fine:
|
||||
bld.emit(FS_OPCODE_DDX_FINE, result, op[0]);
|
||||
break;
|
||||
case nir_op_fddx:
|
||||
case nir_op_fddx_coarse:
|
||||
bld.emit(FS_OPCODE_DDX_COARSE, result, op[0]);
|
||||
break;
|
||||
case nir_op_fddy_fine:
|
||||
bld.emit(FS_OPCODE_DDY_FINE, result, op[0]);
|
||||
break;
|
||||
case nir_op_fddy:
|
||||
case nir_op_fddy_coarse:
|
||||
bld.emit(FS_OPCODE_DDY_COARSE, result, op[0]);
|
||||
break;
|
||||
|
||||
case nir_op_fadd:
|
||||
if (nir_has_any_rounding_mode_enabled(execution_mode)) {
|
||||
brw_rnd_mode rnd =
|
||||
|
|
@ -7324,6 +7309,25 @@ fs_nir_emit_intrinsic(nir_to_brw_state &ntb,
|
|||
case nir_intrinsic_load_subgroup_lt_mask:
|
||||
unreachable("not reached");
|
||||
|
||||
case nir_intrinsic_ddx_fine:
|
||||
bld.emit(FS_OPCODE_DDX_FINE, retype(dest, BRW_TYPE_F),
|
||||
retype(get_nir_src(ntb, instr->src[0]), BRW_TYPE_F));
|
||||
break;
|
||||
case nir_intrinsic_ddx:
|
||||
case nir_intrinsic_ddx_coarse:
|
||||
bld.emit(FS_OPCODE_DDX_COARSE, retype(dest, BRW_TYPE_F),
|
||||
retype(get_nir_src(ntb, instr->src[0]), BRW_TYPE_F));
|
||||
break;
|
||||
case nir_intrinsic_ddy_fine:
|
||||
bld.emit(FS_OPCODE_DDY_FINE, retype(dest, BRW_TYPE_F),
|
||||
retype(get_nir_src(ntb, instr->src[0]), BRW_TYPE_F));
|
||||
break;
|
||||
case nir_intrinsic_ddy:
|
||||
case nir_intrinsic_ddy_coarse:
|
||||
bld.emit(FS_OPCODE_DDY_COARSE, retype(dest, BRW_TYPE_F),
|
||||
retype(get_nir_src(ntb, instr->src[0]), BRW_TYPE_F));
|
||||
break;
|
||||
|
||||
case nir_intrinsic_quad_vote_any:
|
||||
case nir_intrinsic_quad_vote_all: {
|
||||
struct brw_reg flag = brw_flag_reg(0, 0);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue