diff --git a/src/panfrost/bifrost/bifrost_compile.c b/src/panfrost/bifrost/bifrost_compile.c index 6d08bbbcd20..12e7a917401 100644 --- a/src/panfrost/bifrost/bifrost_compile.c +++ b/src/panfrost/bifrost/bifrost_compile.c @@ -1337,6 +1337,11 @@ bi_emit_intrinsic(bi_builder *b, nir_intrinsic_instr *instr) nir_dest_num_components(instr->dest), 0); break; + case nir_intrinsic_load_blend_const_color_rgba: + bi_load_sysval_nir(b, instr, + nir_dest_num_components(instr->dest), 0); + break; + case nir_intrinsic_load_sample_positions_pan: bi_mov_i32_to(b, bi_word(dst, 0), bi_fau(BIR_FAU_SAMPLE_POS_ARRAY, false)); diff --git a/src/panfrost/midgard/midgard_compile.c b/src/panfrost/midgard/midgard_compile.c index 803b16b7bd8..69e60f00ffb 100644 --- a/src/panfrost/midgard/midgard_compile.c +++ b/src/panfrost/midgard/midgard_compile.c @@ -2037,6 +2037,10 @@ emit_intrinsic(compiler_context *ctx, nir_intrinsic_instr *instr) emit_sysval_read(ctx, &instr->instr, 3, 0); break; + case nir_intrinsic_load_blend_const_color_rgba: + emit_sysval_read(ctx, &instr->instr, 4, 0); + break; + case nir_intrinsic_load_workgroup_id: case nir_intrinsic_load_local_invocation_id: case nir_intrinsic_load_global_invocation_id: diff --git a/src/panfrost/util/pan_ir.h b/src/panfrost/util/pan_ir.h index b1f9f83d283..fb714becb7b 100644 --- a/src/panfrost/util/pan_ir.h +++ b/src/panfrost/util/pan_ir.h @@ -58,6 +58,7 @@ enum { PAN_SYSVAL_RT_CONVERSION = 13, PAN_SYSVAL_VERTEX_INSTANCE_OFFSETS = 14, PAN_SYSVAL_DRAWID = 15, + PAN_SYSVAL_BLEND_CONSTANTS = 16, }; #define PAN_TXS_SYSVAL_ID(texidx, dim, is_array) \ diff --git a/src/panfrost/util/pan_sysval.c b/src/panfrost/util/pan_sysval.c index 80a509f5b8b..23470af1ad6 100644 --- a/src/panfrost/util/pan_sysval.c +++ b/src/panfrost/util/pan_sysval.c @@ -91,6 +91,8 @@ panfrost_nir_sysval_for_intrinsic(nir_intrinsic_instr *instr) return panfrost_sysval_for_sampler(instr); case nir_intrinsic_image_size: return panfrost_sysval_for_image_size(instr); + case nir_intrinsic_load_blend_const_color_rgba: + return PAN_SYSVAL_BLEND_CONSTANTS; default: return ~0; }