diff --git a/src/compiler/nir/nir_divergence_analysis.c b/src/compiler/nir/nir_divergence_analysis.c index 2b56c86370f..d28894122e6 100644 --- a/src/compiler/nir/nir_divergence_analysis.c +++ b/src/compiler/nir/nir_divergence_analysis.c @@ -921,6 +921,7 @@ visit_intrinsic(nir_intrinsic_instr *instr, struct divergence_state *state) case nir_intrinsic_cmat_extract: case nir_intrinsic_cmat_muladd_amd: case nir_intrinsic_dpas_intel: + case nir_intrinsic_convert_cmat_intel: case nir_intrinsic_isberd_nv: case nir_intrinsic_vild_nv: case nir_intrinsic_al2p_nv: diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py index e34a4fe7bc1..72a672296e0 100644 --- a/src/compiler/nir/nir_intrinsics.py +++ b/src/compiler/nir/nir_intrinsics.py @@ -335,6 +335,10 @@ index("unsigned", "neg_hi_amd") index("unsigned", "systolic_depth") index("unsigned", "repeat_count") +# For Intel convert_cmat_intel intrinsic. +index("struct glsl_cmat_description", "dst_cmat_desc") +index("struct glsl_cmat_description", "src_cmat_desc") + # For an AGX tilebuffer intrinsics, whether the coordinates are implicit or # explicit. Implicit coordinates are used in fragment shaders, explicit # coordinates in compute. @@ -2469,6 +2473,10 @@ intrinsic("dpas_intel", dest_comp=0, src_comp=[0, -1, -1], indices=[DEST_BASE_TYPE, SRC_BASE_TYPE, SATURATE, SYSTOLIC_DEPTH, REPEAT_COUNT], flags=[CAN_ELIMINATE]) +intrinsic("convert_cmat_intel", dest_comp=0, src_comp=[-1], + indices=[DST_CMAT_DESC, SRC_CMAT_DESC], + flags=[CAN_ELIMINATE]) + # NVIDIA-specific intrinsics # src[] = { index, offset }. intrinsic("ldc_nv", dest_comp=0, src_comp=[1, 1],