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),