From: Boris Brezillon Date: Thu, 6 May 2021 06:43:00 +0000 (+0200) Subject: panfrost: Make panfrost_scoreboard_initialize_tiler() return the job pointer X-Git-Tag: upstream/21.2.3~1545 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=773bc1188bcc62b5badd0f6191df079b51cc49ea;p=platform%2Fupstream%2Fmesa.git panfrost: Make panfrost_scoreboard_initialize_tiler() return the job pointer In the vulkan driver we need to patch job headers when re-submitting an already submitted batch. Change panfrost_scoreboard_initialize_tiler() prototype to allow that. Signed-off-by: Boris Brezillon Reviewed-by: Alyssa Rosenzweig Part-of: --- diff --git a/src/panfrost/lib/pan_scoreboard.c b/src/panfrost/lib/pan_scoreboard.c index 3fb87c80..5589b4d 100644 --- a/src/panfrost/lib/pan_scoreboard.c +++ b/src/panfrost/lib/pan_scoreboard.c @@ -189,22 +189,23 @@ panfrost_add_job( /* Generates a write value job, used to initialize the tiler structures. Note * this is called right before frame submission. */ -void +struct panfrost_ptr panfrost_scoreboard_initialize_tiler(struct pan_pool *pool, - struct pan_scoreboard *scoreboard, - mali_ptr polygon_list) + struct pan_scoreboard *scoreboard, + mali_ptr polygon_list) { + struct panfrost_ptr transfer = { 0 }; + /* Check if we even need tiling */ if (pan_is_bifrost(pool->dev) || !scoreboard->first_tiler) - return; + return transfer; /* Okay, we do. Let's generate it. We'll need the job's polygon list * regardless of size. */ - struct panfrost_ptr transfer = - panfrost_pool_alloc_aligned(pool, - MALI_WRITE_VALUE_JOB_LENGTH, - 64); + transfer = panfrost_pool_alloc_aligned(pool, + MALI_WRITE_VALUE_JOB_LENGTH, + 64); pan_section_pack(transfer.cpu, WRITE_VALUE_JOB, HEADER, header) { header.type = MALI_JOB_TYPE_WRITE_VALUE; @@ -218,4 +219,5 @@ panfrost_scoreboard_initialize_tiler(struct pan_pool *pool, } scoreboard->first_job = transfer.gpu; + return transfer; } diff --git a/src/panfrost/lib/pan_scoreboard.h b/src/panfrost/lib/pan_scoreboard.h index 44a3456..c785473 100644 --- a/src/panfrost/lib/pan_scoreboard.h +++ b/src/panfrost/lib/pan_scoreboard.h @@ -64,9 +64,9 @@ panfrost_add_job( const struct panfrost_ptr *job, bool inject); -void panfrost_scoreboard_initialize_tiler( - struct pan_pool *pool, - struct pan_scoreboard *scoreboard, - mali_ptr polygon_list); +struct panfrost_ptr +panfrost_scoreboard_initialize_tiler(struct pan_pool *pool, + struct pan_scoreboard *scoreboard, + mali_ptr polygon_list); #endif