mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 18:18:06 +02:00
broadcom: switch to derivative intrinsics
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30570>
This commit is contained in:
parent
1a579552af
commit
c3d999dec9
3 changed files with 20 additions and 12 deletions
|
|
@ -1716,18 +1716,6 @@ ntq_emit_alu(struct v3d_compile *c, nir_alu_instr *instr)
|
|||
result = vir_MAX(c, src[0], vir_NEG(c, src[0]));
|
||||
break;
|
||||
|
||||
case nir_op_fddx:
|
||||
case nir_op_fddx_coarse:
|
||||
case nir_op_fddx_fine:
|
||||
result = vir_FDX(c, src[0]);
|
||||
break;
|
||||
|
||||
case nir_op_fddy:
|
||||
case nir_op_fddy_coarse:
|
||||
case nir_op_fddy_fine:
|
||||
result = vir_FDY(c, src[0]);
|
||||
break;
|
||||
|
||||
case nir_op_uadd_carry:
|
||||
vir_set_pf(c, vir_ADD_dest(c, vir_nop_reg(), src[0], src[1]),
|
||||
V3D_QPU_PF_PUSHC);
|
||||
|
|
@ -3936,6 +3924,22 @@ ntq_emit_intrinsic(struct v3d_compile *c, nir_intrinsic_instr *instr)
|
|||
ntq_store_def(c, &instr->def, 0, vir_EIDX(c));
|
||||
break;
|
||||
|
||||
case nir_intrinsic_ddx:
|
||||
case nir_intrinsic_ddx_coarse:
|
||||
case nir_intrinsic_ddx_fine: {
|
||||
struct qreg value = ntq_get_src(c, instr->src[0], 0);
|
||||
ntq_store_def(c, &instr->def, 0, vir_FDX(c, value));
|
||||
break;
|
||||
}
|
||||
|
||||
case nir_intrinsic_ddy:
|
||||
case nir_intrinsic_ddy_coarse:
|
||||
case nir_intrinsic_ddy_fine: {
|
||||
struct qreg value = ntq_get_src(c, instr->src[0], 0);
|
||||
ntq_store_def(c, &instr->def, 0, vir_FDY(c, value));
|
||||
break;
|
||||
}
|
||||
|
||||
case nir_intrinsic_elect: {
|
||||
struct qreg first;
|
||||
if (vir_in_nonuniform_control_flow(c)) {
|
||||
|
|
|
|||
|
|
@ -228,6 +228,8 @@ v3dv_pipeline_get_nir_options(const struct v3d_device_info *devinfo)
|
|||
.divergence_analysis_options =
|
||||
nir_divergence_multiple_workgroup_per_compute_subgroup,
|
||||
.discard_is_demote = true,
|
||||
.has_ddx_intrinsics = true,
|
||||
.scalarize_ddx = true,
|
||||
};
|
||||
|
||||
if (!initialized) {
|
||||
|
|
|
|||
|
|
@ -760,6 +760,8 @@ v3d_screen_get_compiler_options(struct pipe_screen *pscreen,
|
|||
*/
|
||||
.max_unroll_iterations = 16,
|
||||
.force_indirect_unrolling_sampler = true,
|
||||
.has_ddx_intrinsics = true,
|
||||
.scalarize_ddx = true,
|
||||
};
|
||||
|
||||
if (!initialized) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue