nir: Add some new panfrost fragment shader intrinsics

Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39244>
This commit is contained in:
Faith Ekstrand 2026-01-08 17:41:22 -05:00 committed by Marge Bot
parent feadf303b9
commit 6fc1030e4f
2 changed files with 23 additions and 0 deletions

View file

@ -279,6 +279,7 @@ visit_intrinsic(nir_intrinsic_instr *instr, struct divergence_state *state)
case nir_intrinsic_load_provoking_vtx_amd:
case nir_intrinsic_load_sample_positions_pan:
case nir_intrinsic_load_shader_output_pan:
case nir_intrinsic_load_blend_descriptor_pan:
case nir_intrinsic_load_workgroup_num_input_vertices_amd:
case nir_intrinsic_load_workgroup_num_input_primitives_amd:
case nir_intrinsic_load_pipeline_stat_query_enabled_amd:
@ -1019,6 +1020,10 @@ visit_intrinsic(nir_intrinsic_instr *instr, struct divergence_state *state)
case nir_intrinsic_bvh_stack_rtn_amd:
case nir_intrinsic_cmat_load_shared_nv:
case nir_intrinsic_cmat_mov_transpose_nv:
case nir_intrinsic_load_cumulative_coverage_pan:
case nir_intrinsic_load_blend_input_pan:
case nir_intrinsic_atest_pan:
case nir_intrinsic_zs_emit_pan:
is_divergent = true;
break;

View file

@ -1728,6 +1728,24 @@ system_value("multisampled_pan", 1, bit_sizes=[32])
# noperspective, this is 32 bits and starts from VARYING_SLOT_VAR0.
system_value("noperspective_varyings_pan", 1, bit_sizes=[32])
# Cumulative coverage mask, the start of the atest/zt/blend chain
system_value("cumulative_coverage_pan", 1, bit_sizes=[32])
system_value("blend_descriptor_pan", 1, bit_sizes=[64], indices=[BASE])
load("blend_input_pan", [], [IO_SEMANTICS, DEST_TYPE],
[CAN_ELIMINATE, CAN_REORDER])
# src[] = { coverage, alpha }
intrinsic("atest_pan", [1, 1], dest_comp=1, bit_sizes=[32])
# src[] = { coverage, depth, stencil }
intrinsic("zs_emit_pan", [1, 1, 1], dest_comp=1,
indices=[FLAGS], bit_sizes=[32])
# src[] = { coverage, desc, color }
intrinsic("blend_pan", [1, 1, 4], indices=[IO_SEMANTICS, SRC_TYPE])
# src[] = { coverage, desc, color1, color2 }
intrinsic("blend2_pan", [1, 1, 4, 4],
indices=[IO_SEMANTICS, SRC_TYPE, DEST_TYPE])
barrier("blend_return_pan")
# System values for SPV_ARM_core_builtins
system_value("core_count_arm", 1, bit_sizes=[32])
system_value("core_max_id_arm", 1, bit_sizes=[32])