diff --git a/src/gallium/drivers/panfrost/midgard/nir_lower_blend.c b/src/gallium/drivers/panfrost/midgard/nir_lower_blend.c index 7a7f0ebabd7..af0a7ac31cf 100644 --- a/src/gallium/drivers/panfrost/midgard/nir_lower_blend.c +++ b/src/gallium/drivers/panfrost/midgard/nir_lower_blend.c @@ -82,7 +82,7 @@ nir_alpha_saturate( { nir_ssa_def *Asrc = nir_channel(b, src, 3); nir_ssa_def *Adst = nir_channel(b, dst, 3); - nir_ssa_def *one = nir_imm_float(b, 1.0); + nir_ssa_def *one = nir_imm_float16(b, 1.0); nir_ssa_def *Adsti = nir_fsub(b, one, Adst); return (chan < 3) ? nir_fmin(b, Asrc, Adsti) : one; @@ -99,7 +99,7 @@ nir_blend_factor_value( { switch (factor) { case BLEND_FACTOR_ZERO: - return nir_imm_float(b, 0.0); + return nir_imm_float16(b, 0.0); case BLEND_FACTOR_SRC_COLOR: return nir_channel(b, src, chan); case BLEND_FACTOR_DST_COLOR: @@ -132,7 +132,7 @@ nir_blend_factor( nir_blend_factor_value(b, src, dst, bconst, chan, factor); if (inverted) - f = nir_fsub(b, nir_imm_float(b, 1.0), f); + f = nir_fsub(b, nir_imm_float16(b, 1.0), f); return nir_fmul(b, raw_scalar, f); } @@ -167,7 +167,7 @@ nir_blend( nir_ssa_def *src, nir_ssa_def *dst) { /* Grab the blend constant ahead of time */ - nir_ssa_def *bconst = nir_load_blend_const_color_rgba(b); + nir_ssa_def *bconst = nir_f2f16(b, nir_load_blend_const_color_rgba(b)); /* We blend per channel and recombine later */ nir_ssa_def *channels[4]; @@ -226,13 +226,13 @@ nir_lower_blend(nir_shader *shader, nir_lower_blend_options options) b.cursor = nir_before_instr(instr); /* Grab the input color */ - nir_ssa_def *src = nir_ssa_for_src(&b, intr->src[1], 4); + nir_ssa_def *src = nir_f2f16(&b, nir_ssa_for_src(&b, intr->src[1], 4)); /* Grab the tilebuffer color - io lowered to load_output */ - nir_ssa_def *dst = nir_load_var(&b, var); + nir_ssa_def *dst = nir_f2f16(&b, nir_load_var(&b, var)); /* Blend the two colors per the passed options */ - nir_ssa_def *blended = nir_blend(&b, options, src, dst); + nir_ssa_def *blended = nir_f2f32(&b, nir_blend(&b, options, src, dst)); /* Write out the final color instead of the input */ nir_instr_rewrite_src(instr, &intr->src[1], diff --git a/src/gallium/drivers/panfrost/midgard/nir_lower_framebuffer.c b/src/gallium/drivers/panfrost/midgard/nir_lower_framebuffer.c index 9a08a4c43bf..2986c3c3393 100644 --- a/src/gallium/drivers/panfrost/midgard/nir_lower_framebuffer.c +++ b/src/gallium/drivers/panfrost/midgard/nir_lower_framebuffer.c @@ -60,8 +60,8 @@ nir_float_to_native(nir_builder *b, nir_ssa_def *c_float) static nir_ssa_def * nir_native_to_float(nir_builder *b, nir_ssa_def *c_native) { - /* First, we convert up from u8 to f32 */ - nir_ssa_def *converted = nir_u2f32(b, nir_u2u32(b, c_native)); + /* First, we convert up from u8 to f16 */ + nir_ssa_def *converted = nir_u2f16(b, nir_u2u16(b, c_native)); /* Next, we scale down from [0, 255.0] to [0, 1] */ nir_ssa_def *scaled = nir_fsat(b, nir_fmul_imm(b, converted, 1.0/255.0));