diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c
index 2b7ce4b6c64..222a7640d64 100644
--- a/src/gallium/drivers/panfrost/pan_context.c
+++ b/src/gallium/drivers/panfrost/pan_context.c
@@ -349,10 +349,12 @@ panfrost_draw_emit_tiler(struct panfrost_batch *batch,
pan_section_ptr(job, MIDGARD_TILER_JOB, PRIMITIVE);
pan_pack(section, PRIMITIVE, cfg) {
cfg.draw_mode = pan_draw_mode(info->mode);
- cfg.point_size_array = panfrost_writes_point_size(ctx);
+ if (panfrost_writes_point_size(ctx))
+ cfg.point_size_array_format = MALI_POINT_SIZE_ARRAY_FORMAT_FP16;
cfg.first_provoking_vertex = rast->flatshade_first;
- cfg.primitive_restart = info->primitive_restart;
- cfg.unknown_3 = 6;
+ if (info->primitive_restart)
+ cfg.primitive_restart = MALI_PRIMITIVE_RESTART_IMPLICIT;
+ cfg.job_task_split = 6;
if (info->index_size) {
cfg.index_type = panfrost_translate_index_size(info->index_size);
diff --git a/src/panfrost/lib/decode.c b/src/panfrost/lib/decode.c
index a556fd7e0dc..d73651141c2 100644
--- a/src/panfrost/lib/decode.c
+++ b/src/panfrost/lib/decode.c
@@ -1393,7 +1393,7 @@ pandecode_tiler_job_mdg(const struct MALI_JOB_HEADER *h,
pan_section_unpack(p, MIDGARD_TILER_JOB, PRIMITIVE, primitive);
pandecode_primitive_size(pan_section_ptr(p, MIDGARD_TILER_JOB, PRIMITIVE_SIZE),
- primitive.point_size_array == 0);
+ primitive.point_size_array_format == MALI_POINT_SIZE_ARRAY_FORMAT_NONE);
pandecode_indent--;
pandecode_log("\n");
}
diff --git a/src/panfrost/lib/midgard.xml b/src/panfrost/lib/midgard.xml
index 74dcc38b785..48e55e8336c 100644
--- a/src/panfrost/lib/midgard.xml
+++ b/src/panfrost/lib/midgard.xml
@@ -324,24 +324,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
+
diff --git a/src/panfrost/lib/pan_blit.c b/src/panfrost/lib/pan_blit.c
index eac50619781..dd776980a22 100644
--- a/src/panfrost/lib/pan_blit.c
+++ b/src/panfrost/lib/pan_blit.c
@@ -362,7 +362,7 @@ panfrost_load_midg(
pan_section_pack(t.cpu, MIDGARD_TILER_JOB, PRIMITIVE, cfg) {
cfg.draw_mode = MALI_DRAW_MODE_TRIANGLES;
cfg.index_count = vertex_count;
- cfg.unknown_3 = 6;
+ cfg.job_task_split = 6;
}
panfrost_pack_work_groups_compute(pan_section_ptr(t.cpu, MIDGARD_TILER_JOB, INVOCATION),