From a80e254fd4581a2782375622c71a6d3708d0901a Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Fri, 24 Apr 2026 01:05:12 +0200 Subject: [PATCH] ac: use nir_op_ffma_weak Reviewed-by: Georg Lehmann Part-of: --- src/amd/common/nir/ac_nir_cull.c | 10 +++++----- src/amd/common/nir/ac_nir_lower_intrinsics_to_args.c | 4 ++-- src/amd/common/nir/ac_nir_lower_ps_early.c | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/amd/common/nir/ac_nir_cull.c b/src/amd/common/nir/ac_nir_cull.c index ce15b552784..2c6ae60e74a 100644 --- a/src/amd/common/nir/ac_nir_cull.c +++ b/src/amd/common/nir/ac_nir_cull.c @@ -170,8 +170,8 @@ cull_small_primitive_triangle(nir_builder *b, bool use_point_tri_intersection, vp_translate[chan] = nir_channel(b, vp, 2 + chan); /* Convert the position to screen-space coordinates. */ - nir_def *min = nir_ffma_old(b, bbox_min[chan], vp_scale[chan], vp_translate[chan]); - nir_def *max = nir_ffma_old(b, bbox_max[chan], vp_scale[chan], vp_translate[chan]); + nir_def *min = nir_ffma_weak(b, bbox_min[chan], vp_scale[chan], vp_translate[chan]); + nir_def *max = nir_ffma_weak(b, bbox_max[chan], vp_scale[chan], vp_translate[chan]); /* Scale the bounding box according to precision. */ min = nir_fsub(b, min, small_prim_precision); @@ -251,7 +251,7 @@ cull_small_primitive_triangle(nir_builder *b, bool use_point_tri_intersection, /* Transform the coordinates to screen space. */ for (unsigned vtx = 0; vtx < 3; ++vtx) { for (unsigned chan = 0; chan < 2; ++chan) - screen_pos[vtx][chan] = nir_ffma_old(b, pos[vtx][chan], vp_scale[chan], vp_translate[chan]); + screen_pos[vtx][chan] = nir_ffma_weak(b, pos[vtx][chan], vp_scale[chan], vp_translate[chan]); } /* small_prim_precision is the rasterization precision in X an Y axes, meaning it's the size of @@ -436,8 +436,8 @@ cull_small_primitive_line(nir_builder *b, nir_def *pos[3][4], nir_def *vp_scale = nir_channel(b, vp, chan); nir_def *vp_translate = nir_channel(b, vp, 2 + chan); - v0[chan] = nir_ffma_old(b, pos[0][chan], vp_scale, vp_translate); - v1[chan] = nir_ffma_old(b, pos[1][chan], vp_scale, vp_translate); + v0[chan] = nir_ffma_weak(b, pos[0][chan], vp_scale, vp_translate); + v1[chan] = nir_ffma_weak(b, pos[1][chan], vp_scale, vp_translate); } /* Rotate the viewport by 45 degrees, so that diamonds become squares. */ diff --git a/src/amd/common/nir/ac_nir_lower_intrinsics_to_args.c b/src/amd/common/nir/ac_nir_lower_intrinsics_to_args.c index db54aafa241..75b7177358f 100644 --- a/src/amd/common/nir/ac_nir_lower_intrinsics_to_args.c +++ b/src/amd/common/nir/ac_nir_lower_intrinsics_to_args.c @@ -409,8 +409,8 @@ lower_intrinsic_to_arg(nir_builder *b, nir_intrinsic_instr *intrin, void *state) nir_def *ddy_j = nir_ddy(b, j); /* Interpolate standard barycentrics by offset. */ - nir_def *offset_i = nir_ffma_old(b, ddy_i, offset_y, nir_ffma_old(b, ddx_i, offset_x, i)); - nir_def *offset_j = nir_ffma_old(b, ddy_j, offset_y, nir_ffma_old(b, ddx_j, offset_x, j)); + nir_def *offset_i = nir_ffma_weak(b, ddy_i, offset_y, nir_ffma_weak(b, ddx_i, offset_x, i)); + nir_def *offset_j = nir_ffma_weak(b, ddy_j, offset_y, nir_ffma_weak(b, ddx_j, offset_x, j)); replacement = nir_vec2(b, offset_i, offset_j); break; } diff --git a/src/amd/common/nir/ac_nir_lower_ps_early.c b/src/amd/common/nir/ac_nir_lower_ps_early.c index 768d3804f30..c1ddf163ad5 100644 --- a/src/amd/common/nir/ac_nir_lower_ps_early.c +++ b/src/amd/common/nir/ac_nir_lower_ps_early.c @@ -300,8 +300,8 @@ lower_load_barycentric_at_offset(nir_builder *b, nir_def *offset, enum glsl_inte nir_def *offset_y = nir_channel(b, offset, 1); /* Interpolate standard barycentrics by offset. */ - nir_def *offset_i = nir_ffma_old(b, ddy_i, offset_y, nir_ffma_old(b, ddx_i, offset_x, i)); - nir_def *offset_j = nir_ffma_old(b, ddy_j, offset_y, nir_ffma_old(b, ddx_j, offset_x, j)); + nir_def *offset_i = nir_ffma_weak(b, ddy_i, offset_y, nir_ffma_weak(b, ddx_i, offset_x, i)); + nir_def *offset_j = nir_ffma_weak(b, ddy_j, offset_y, nir_ffma_weak(b, ddx_j, offset_x, j)); return nir_vec2(b, offset_i, offset_j); }