diff --git a/src/gallium/drivers/panfrost/pan_jm.c b/src/gallium/drivers/panfrost/pan_jm.c index 0503dc15082..062c5180452 100644 --- a/src/gallium/drivers/panfrost/pan_jm.c +++ b/src/gallium/drivers/panfrost/pan_jm.c @@ -249,7 +249,13 @@ GENX(jm_emit_fragment_job)(struct panfrost_batch *batch, struct panfrost_ptr transfer = pan_pool_alloc_desc(&batch->pool.base, FRAGMENT_JOB); - GENX(pan_emit_fragment_job)(pfb, batch->framebuffer.gpu, transfer.cpu); + GENX(pan_emit_fragment_job_payload) + (pfb, batch->framebuffer.gpu, transfer.cpu); + + pan_section_pack(transfer.cpu, FRAGMENT_JOB, HEADER, header) { + header.type = MALI_JOB_TYPE_FRAGMENT; + header.index = 1; + } batch->jm.jobs.frag = transfer.gpu; } diff --git a/src/panfrost/lib/pan_desc.c b/src/panfrost/lib/pan_desc.c index 527d979e863..7cfeefd4e97 100644 --- a/src/panfrost/lib/pan_desc.c +++ b/src/panfrost/lib/pan_desc.c @@ -941,14 +941,9 @@ GENX(pan_emit_fbd)(const struct pan_fb_info *fb, unsigned layer_idx, #if PAN_ARCH <= 9 void -GENX(pan_emit_fragment_job)(const struct pan_fb_info *fb, mali_ptr fbd, - void *out) +GENX(pan_emit_fragment_job_payload)(const struct pan_fb_info *fb, mali_ptr fbd, + void *out) { - pan_section_pack(out, FRAGMENT_JOB, HEADER, header) { - header.type = MALI_JOB_TYPE_FRAGMENT; - header.index = 1; - } - pan_section_pack(out, FRAGMENT_JOB, PAYLOAD, payload) { payload.bound_min_x = fb->extent.minx >> MALI_TILE_SHIFT; payload.bound_min_y = fb->extent.miny >> MALI_TILE_SHIFT; diff --git a/src/panfrost/lib/pan_desc.h b/src/panfrost/lib/pan_desc.h index 8cbf710cce8..f6908e9b073 100644 --- a/src/panfrost/lib/pan_desc.h +++ b/src/panfrost/lib/pan_desc.h @@ -185,8 +185,8 @@ unsigned GENX(pan_emit_fbd)(const struct pan_fb_info *fb, unsigned layer_idx, void *out); #if PAN_ARCH <= 9 -void GENX(pan_emit_fragment_job)(const struct pan_fb_info *fb, mali_ptr fbd, - void *out); +void GENX(pan_emit_fragment_job_payload)(const struct pan_fb_info *fb, + mali_ptr fbd, void *out); #endif #endif /* ifdef PAN_ARCH */ diff --git a/src/panfrost/vulkan/jm/panvk_vX_cmd_buffer.c b/src/panfrost/vulkan/jm/panvk_vX_cmd_buffer.c index ea9952ac599..b59368a67b4 100644 --- a/src/panfrost/vulkan/jm/panvk_vX_cmd_buffer.c +++ b/src/panfrost/vulkan/jm/panvk_vX_cmd_buffer.c @@ -69,8 +69,15 @@ panvk_cmd_prepare_fragment_job(struct panvk_cmd_buffer *cmdbuf) struct panfrost_ptr job_ptr = pan_pool_alloc_desc(&cmdbuf->desc_pool.base, FRAGMENT_JOB); - GENX(pan_emit_fragment_job) - (fbinfo, batch->fb.desc.gpu, job_ptr.cpu), batch->fragment_job = job_ptr.gpu; + GENX(pan_emit_fragment_job_payload) + (fbinfo, batch->fb.desc.gpu, job_ptr.cpu); + + pan_section_pack(job_ptr.cpu, FRAGMENT_JOB, HEADER, header) { + header.type = MALI_JOB_TYPE_FRAGMENT; + header.index = 1; + } + + batch->fragment_job = job_ptr.gpu; util_dynarray_append(&batch->jobs, void *, job_ptr.cpu); }