nir: add and use nir_fdiv_imm

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23461>
This commit is contained in:
Erik Faye-Lund 2023-06-05 15:15:21 +02:00 committed by Marge Bot
parent 590e191e77
commit e1f4c79288
6 changed files with 12 additions and 6 deletions

View file

@ -663,7 +663,7 @@ radv_meta_build_resolve_shader_core(struct radv_device *device, nir_builder *b,
accum = nir_fadd(b, accum, sample);
}
accum = nir_fdiv(b, accum, nir_imm_float(b, samples));
accum = nir_fdiv_imm(b, accum, samples);
nir_store_var(b, color, accum, 0xf);
if (device->physical_device->use_fmask) {

View file

@ -449,8 +449,8 @@ build_shader(struct radv_device *dev)
nir_pop_if(&b, NULL);
nir_ssa_def *col[4];
for (unsigned i = 0; i < 3; ++i)
col[i] = nir_fdiv(&b, nir_i2f32(&b, nir_channel(&b, nir_load_var(&b, rgb_result), i)),
nir_imm_float(&b, 255.0));
col[i] = nir_fdiv_imm(&b, nir_i2f32(&b, nir_channel(&b, nir_load_var(&b, rgb_result), i)),
255.0);
col[3] = nir_load_var(&b, alpha_result);
nir_store_var(&b, color, nir_vec(&b, col, 4), 0xf);
}

View file

@ -177,7 +177,7 @@ build_depth_stencil_resolve_compute_shader(struct radv_device *dev, int samples,
}
if (resolve_mode == VK_RESOLVE_MODE_AVERAGE_BIT)
outval = nir_fdiv(&b, outval, nir_imm_float(&b, samples));
outval = nir_fdiv_imm(&b, outval, samples);
}
nir_ssa_def *coord = nir_vec4(&b, nir_channel(&b, img_coord, 0), nir_channel(&b, img_coord, 1),

View file

@ -305,7 +305,7 @@ build_depth_stencil_resolve_fragment_shader(struct radv_device *dev, int samples
}
if (resolve_mode == VK_RESOLVE_MODE_AVERAGE_BIT)
outval = nir_fdiv(&b, outval, nir_imm_float(&b, samples));
outval = nir_fdiv_imm(&b, outval, samples);
}
nir_store_var(&b, fs_out, outval, 0x1);

View file

@ -819,6 +819,12 @@ nir_fmul_imm(nir_builder *build, nir_ssa_def *x, double y)
return nir_fmul(build, x, nir_imm_floatN_t(build, y, x->bit_size));
}
static inline nir_ssa_def *
nir_fdiv_imm(nir_builder *build, nir_ssa_def *x, double y)
{
return nir_fdiv(build, x, nir_imm_floatN_t(build, y, x->bit_size));
}
static inline nir_ssa_def *
nir_iand_imm(nir_builder *build, nir_ssa_def *x, uint64_t y)
{

View file

@ -314,7 +314,7 @@ nir_format_linear_to_srgb(nir_builder *b, nir_ssa_def *c)
static inline nir_ssa_def *
nir_format_srgb_to_linear(nir_builder *b, nir_ssa_def *c)
{
nir_ssa_def *linear = nir_fdiv(b, c, nir_imm_float(b, 12.92f));
nir_ssa_def *linear = nir_fdiv_imm(b, c, 12.92f);
nir_ssa_def *curved =
nir_fpow(b, nir_fmul_imm(b, nir_fadd_imm(b, c, 0.055f),
1.0 / 1.055f),