pan/bi: Add +ZS_EMIT instruction to IR
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7446>
diff --git a/src/panfrost/bifrost/bi_pack.c b/src/panfrost/bifrost/bi_pack.c
index 3b2ffd7..860534a 100644
--- a/src/panfrost/bifrost/bi_pack.c
+++ b/src/panfrost/bifrost/bi_pack.c
@@ -912,6 +912,8 @@
return pan_pack_add_texs_2d_f32(clause, bundle.add, regs);
case BI_ROUND:
unreachable("Packing todo");
+ case BI_ZS_EMIT:
+ return pan_pack_add_zs_emit(clause, bundle.add, regs);
default:
unreachable("Cannot encode class as ADD");
}
diff --git a/src/panfrost/bifrost/bi_print.c b/src/panfrost/bifrost/bi_print.c
index 9779ba8..224dbc2 100644
--- a/src/panfrost/bifrost/bi_print.c
+++ b/src/panfrost/bifrost/bi_print.c
@@ -76,6 +76,7 @@
case BI_TEXC_DUAL: return "texc_dual";
case BI_ROUND: return "round";
case BI_IMUL: return "imul";
+ case BI_ZS_EMIT: return "zs_emit";
default: return "unknown_class";
}
}
diff --git a/src/panfrost/bifrost/bi_schedule.c b/src/panfrost/bifrost/bi_schedule.c
index fccaf69..e6b8711 100644
--- a/src/panfrost/bifrost/bi_schedule.c
+++ b/src/panfrost/bifrost/bi_schedule.c
@@ -83,6 +83,9 @@
case BI_ATEST:
return BIFROST_MESSAGE_ATEST;
+ case BI_ZS_EMIT:
+ return BIFROST_MESSAGE_Z_STENCIL;
+
default:
unreachable("Invalid high-latency class");
}
diff --git a/src/panfrost/bifrost/bi_tables.c b/src/panfrost/bifrost/bi_tables.c
index 2617861..222f076 100644
--- a/src/panfrost/bifrost/bi_tables.c
+++ b/src/panfrost/bifrost/bi_tables.c
@@ -61,4 +61,5 @@
[BI_TEXC_DUAL] = BI_SCHED_HI_LATENCY | BI_SCHED_ADD | BI_VECTOR | BI_DATA_REG_DEST,
[BI_ROUND] = BI_ROUNDMODE | BI_SCHED_ALL,
[BI_IMUL] = BI_SCHED_FMA,
+ [BI_ZS_EMIT] = BI_SCHED_HI_LATENCY | BI_SCHED_ADD | BI_DATA_REG_DEST,
};
diff --git a/src/panfrost/bifrost/compiler.h b/src/panfrost/bifrost/compiler.h
index 57ca531..11689c4 100644
--- a/src/panfrost/bifrost/compiler.h
+++ b/src/panfrost/bifrost/compiler.h
@@ -81,6 +81,7 @@
BI_TEXC_DUAL,
BI_ROUND,
BI_IMUL,
+ BI_ZS_EMIT,
BI_NUM_CLASSES
};