diff --git a/src/freedreno/registers/adreno/a6xx.xml b/src/freedreno/registers/adreno/a6xx.xml
index 78524aaab9d..0a2fecca4d1 100644
--- a/src/freedreno/registers/adreno/a6xx.xml
+++ b/src/freedreno/registers/adreno/a6xx.xml
@@ -3306,6 +3306,15 @@ to upconvert to 32b float internally?
+
+
+
+
+
diff --git a/src/freedreno/vulkan/tu_cmd_buffer.cc b/src/freedreno/vulkan/tu_cmd_buffer.cc
index a32ac8166ac..f754be3c009 100644
--- a/src/freedreno/vulkan/tu_cmd_buffer.cc
+++ b/src/freedreno/vulkan/tu_cmd_buffer.cc
@@ -1373,6 +1373,16 @@ tu6_init_hw(struct tu_cmd_buffer *cmd, struct tu_cs *cs)
tu_cs_emit_ib(cs, dev->cmdbuf_start_a725_quirk_entry);
}
+ if (CHIP >= A7XX) {
+ /* Blob sets these two per draw. */
+ tu_cs_emit_regs(cs, A7XX_PC_TESS_PARAM_SIZE(TU_TESS_PARAM_SIZE));
+ /* Blob adds a bit more space ({0x10, 0x20, 0x30, 0x40} bytes)
+ * but the meaning of this additional space is not known,
+ * so we play safe and don't add it.
+ */
+ tu_cs_emit_regs(cs, A7XX_PC_TESS_FACTOR_SIZE(TU_TESS_FACTOR_SIZE));
+ }
+
tu_cs_sanity_check(cs);
}