Module: Mesa
Branch: main
Commit: dc087a31847fa327dda4ce5e7a30e9e32a91b91b
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=dc087a31847fa327dda4ce5e7a30e9e32a91b91b

Author: Boris Brezillon <[email protected]>
Date:   Fri Nov 17 11:03:04 2023 +0100

panfrost: s/pan_scoreboard/pan_jc/

What pan_scoreboard manipulates is a job chain, how dependencies
between jobs is implemented is an implementation detail, and shouldn't
leak through the name.

Let's rename pan_scoreboard.h pan_jc.h, and prefix the functions
accordingly.

Signed-off-by: Boris Brezillon <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26356>

---

 src/gallium/drivers/panfrost/pan_cmdstream.c    |  4 +-
 src/gallium/drivers/panfrost/pan_jm.c           | 34 +++++-----
 src/gallium/drivers/panfrost/pan_jm.h           |  4 +-
 src/panfrost/lib/pan_blitter.c                  | 32 +++++-----
 src/panfrost/lib/pan_blitter.h                  |  8 +--
 src/panfrost/lib/pan_indirect_dispatch.c        |  9 ++-
 src/panfrost/lib/pan_indirect_dispatch.h        |  6 +-
 src/panfrost/lib/{pan_scoreboard.h => pan_jc.h} | 85 +++++++++++++------------
 src/panfrost/lib/pan_texture.h                  |  2 +-
 src/panfrost/vulkan/panvk_private.h             |  4 +-
 src/panfrost/vulkan/panvk_vX_cmd_buffer.c       | 29 ++++-----
 src/panfrost/vulkan/panvk_vX_device.c           | 13 ++--
 src/panfrost/vulkan/panvk_vX_meta_blit.c        |  4 +-
 src/panfrost/vulkan/panvk_vX_meta_clear.c       | 11 ++--
 src/panfrost/vulkan/panvk_vX_meta_copy.c        | 42 ++++++------
 15 files changed, 139 insertions(+), 148 deletions(-)

diff --git a/src/gallium/drivers/panfrost/pan_cmdstream.c 
b/src/gallium/drivers/panfrost/pan_cmdstream.c
index 3f6291c2530..f0159f0892a 100644
--- a/src/gallium/drivers/panfrost/pan_cmdstream.c
+++ b/src/gallium/drivers/panfrost/pan_cmdstream.c
@@ -3686,8 +3686,8 @@ init_polygon_list(struct panfrost_batch *batch)
 {
 #if PAN_ARCH <= 5
    mali_ptr polygon_list = batch_get_polygon_list(batch);
-   panfrost_scoreboard_initialize_tiler(&batch->pool.base,
-                                        &batch->jm.jobs.vtc_jc, polygon_list);
+   pan_jc_initialize_tiler(&batch->pool.base, &batch->jm.jobs.vtc_jc,
+                           polygon_list);
 #endif
 }
 
diff --git a/src/gallium/drivers/panfrost/pan_jm.c 
b/src/gallium/drivers/panfrost/pan_jm.c
index 1fc0580e168..a2270f55beb 100644
--- a/src/gallium/drivers/panfrost/pan_jm.c
+++ b/src/gallium/drivers/panfrost/pan_jm.c
@@ -348,9 +348,9 @@ GENX(jm_launch_grid)(struct panfrost_batch *batch,
    }
 #endif
 
-   panfrost_add_job(&batch->pool.base, &batch->jm.jobs.vtc_jc,
-                    MALI_JOB_TYPE_COMPUTE, true, false, indirect_dep, 0, &t,
-                    false);
+   pan_jc_add_job(&batch->pool.base, &batch->jm.jobs.vtc_jc,
+                  MALI_JOB_TYPE_COMPUTE, true, false, indirect_dep, 0, &t,
+                  false);
 }
 
 #if PAN_ARCH >= 6
@@ -837,8 +837,8 @@ GENX(jm_launch_xfb)(struct panfrost_batch *batch,
 #if PAN_ARCH <= 5
    job_type = MALI_JOB_TYPE_VERTEX;
 #endif
-   panfrost_add_job(&batch->pool.base, &batch->jm.jobs.vtc_jc, job_type, true,
-                    false, 0, 0, &t, false);
+   pan_jc_add_job(&batch->pool.base, &batch->jm.jobs.vtc_jc, job_type, true,
+                  false, 0, 0, &t, false);
 }
 
 #if PAN_ARCH < 9
@@ -852,13 +852,13 @@ jm_push_vertex_tiler_jobs(struct panfrost_batch *batch,
                           const struct panfrost_ptr *vertex_job,
                           const struct panfrost_ptr *tiler_job)
 {
-   unsigned vertex = panfrost_add_job(&batch->pool.base, 
&batch->jm.jobs.vtc_jc,
-                                      MALI_JOB_TYPE_VERTEX, false, false, 0, 0,
-                                      vertex_job, false);
+   unsigned vertex = pan_jc_add_job(&batch->pool.base, &batch->jm.jobs.vtc_jc,
+                                    MALI_JOB_TYPE_VERTEX, false, false, 0, 0,
+                                    vertex_job, false);
 
-   panfrost_add_job(&batch->pool.base, &batch->jm.jobs.vtc_jc,
-                    MALI_JOB_TYPE_TILER, false, false, vertex, 0, tiler_job,
-                    false);
+   pan_jc_add_job(&batch->pool.base, &batch->jm.jobs.vtc_jc,
+                  MALI_JOB_TYPE_TILER, false, false, vertex, 0, tiler_job,
+                  false);
 }
 #endif
 
@@ -914,9 +914,9 @@ GENX(jm_launch_draw)(struct panfrost_batch *batch,
 
    jm_emit_malloc_vertex_job(batch, info, draw, secondary_shader, tiler.cpu);
 
-   panfrost_add_job(&batch->pool.base, &batch->jm.jobs.vtc_jc,
-                    MALI_JOB_TYPE_MALLOC_VERTEX, false, false, 0, 0, &tiler,
-                    false);
+   pan_jc_add_job(&batch->pool.base, &batch->jm.jobs.vtc_jc,
+                  MALI_JOB_TYPE_MALLOC_VERTEX, false, false, 0, 0, &tiler,
+                  false);
 #else
    /* Fire off the draw itself */
    jm_emit_tiler_job(batch, info, draw, &invocation, secondary_shader,
@@ -926,9 +926,9 @@ GENX(jm_launch_draw)(struct panfrost_batch *batch,
       jm_emit_vertex_draw(
          batch, pan_section_ptr(tiler.cpu, INDEXED_VERTEX_JOB, VERTEX_DRAW));
 
-      panfrost_add_job(&batch->pool.base, &batch->jm.jobs.vtc_jc,
-                       MALI_JOB_TYPE_INDEXED_VERTEX, false, false, 0, 0, 
&tiler,
-                       false);
+      pan_jc_add_job(&batch->pool.base, &batch->jm.jobs.vtc_jc,
+                     MALI_JOB_TYPE_INDEXED_VERTEX, false, false, 0, 0, &tiler,
+                     false);
 #endif
    } else {
       jm_emit_vertex_job(batch, info, &invocation, vertex.cpu);
diff --git a/src/gallium/drivers/panfrost/pan_jm.h 
b/src/gallium/drivers/panfrost/pan_jm.h
index fda0d78dc36..d41f99d86a1 100644
--- a/src/gallium/drivers/panfrost/pan_jm.h
+++ b/src/gallium/drivers/panfrost/pan_jm.h
@@ -25,13 +25,13 @@
 #ifndef __PAN_JM_H__
 #define __PAN_JM_H__
 
-#include "pan_scoreboard.h"
+#include "pan_jc.h"
 
 struct panfrost_jm_batch {
    /* Job related fields. */
    struct {
       /* Vertex/tiler/compute job chain. */
-      struct pan_scoreboard vtc_jc;
+      struct pan_jc vtc_jc;
 
       /* Fragment job, only one per batch. */
       mali_ptr frag;
diff --git a/src/panfrost/lib/pan_blitter.c b/src/panfrost/lib/pan_blitter.c
index 2f269252d51..be55e0ff7bd 100644
--- a/src/panfrost/lib/pan_blitter.c
+++ b/src/panfrost/lib/pan_blitter.c
@@ -33,8 +33,8 @@
 #include "pan_blend.h"
 #include "pan_cs.h"
 #include "pan_encoder.h"
+#include "pan_jc.h"
 #include "pan_pool.h"
-#include "pan_scoreboard.h"
 #include "pan_shader.h"
 #include "pan_texture.h"
 
@@ -1216,9 +1216,8 @@ pan_preload_emit_dcd(struct pan_pool *pool, struct 
pan_fb_info *fb, bool zs,
 
 #if PAN_ARCH <= 7
 static void *
-pan_blit_emit_tiler_job(struct pan_pool *pool,
-                        struct pan_scoreboard *scoreboard, mali_ptr tiler,
-                        struct panfrost_ptr *job)
+pan_blit_emit_tiler_job(struct pan_pool *pool, struct pan_jc *jc,
+                        mali_ptr tiler, struct panfrost_ptr *job)
 {
    *job = pan_pool_alloc_desc(pool, TILER_JOB);
 
@@ -1243,8 +1242,8 @@ pan_blit_emit_tiler_job(struct pan_pool *pool,
    }
 #endif
 
-   panfrost_add_job(pool, scoreboard, MALI_JOB_TYPE_TILER, false, false, 0, 0,
-                    job, false);
+   pan_jc_add_job(pool, jc, MALI_JOB_TYPE_TILER, false, false, 0, 0, job,
+                  false);
    return pan_section_ptr(job->cpu, TILER_JOB, DRAW);
 }
 #endif
@@ -1326,8 +1325,7 @@ pan_preload_emit_pre_frame_dcd(struct pan_pool *desc_pool,
 }
 #else
 static struct panfrost_ptr
-pan_preload_emit_tiler_job(struct pan_pool *desc_pool,
-                           struct pan_scoreboard *scoreboard,
+pan_preload_emit_tiler_job(struct pan_pool *desc_pool, struct pan_jc *jc,
                            struct pan_fb_info *fb, bool zs, mali_ptr coords,
                            mali_ptr tsd)
 {
@@ -1349,14 +1347,14 @@ pan_preload_emit_tiler_job(struct pan_pool *desc_pool,
    void *invoc = pan_section_ptr(job.cpu, TILER_JOB, INVOCATION);
    panfrost_pack_work_groups_compute(invoc, 1, 4, 1, 1, 1, 1, true, false);
 
-   panfrost_add_job(desc_pool, scoreboard, MALI_JOB_TYPE_TILER, false, false, 
0,
-                    0, &job, true);
+   pan_jc_add_job(desc_pool, jc, MALI_JOB_TYPE_TILER, false, false, 0, 0, &job,
+                  true);
    return job;
 }
 #endif
 
 static struct panfrost_ptr
-pan_preload_fb_part(struct pan_pool *pool, struct pan_scoreboard *scoreboard,
+pan_preload_fb_part(struct pan_pool *pool, struct pan_jc *jc,
                     struct pan_fb_info *fb, bool zs, mali_ptr coords,
                     mali_ptr tsd, mali_ptr tiler)
 {
@@ -1365,13 +1363,13 @@ pan_preload_fb_part(struct pan_pool *pool, struct 
pan_scoreboard *scoreboard,
 #if PAN_ARCH >= 6
    pan_preload_emit_pre_frame_dcd(pool, fb, zs, coords, tsd);
 #else
-   job = pan_preload_emit_tiler_job(pool, scoreboard, fb, zs, coords, tsd);
+   job = pan_preload_emit_tiler_job(pool, jc, fb, zs, coords, tsd);
 #endif
    return job;
 }
 
 unsigned
-GENX(pan_preload_fb)(struct pan_pool *pool, struct pan_scoreboard *scoreboard,
+GENX(pan_preload_fb)(struct pan_pool *pool, struct pan_jc *jc,
                      struct pan_fb_info *fb, mali_ptr tsd, mali_ptr tiler,
                      struct panfrost_ptr *jobs)
 {
@@ -1392,14 +1390,14 @@ GENX(pan_preload_fb)(struct pan_pool *pool, struct 
pan_scoreboard *scoreboard,
    unsigned njobs = 0;
    if (preload_zs) {
       struct panfrost_ptr job =
-         pan_preload_fb_part(pool, scoreboard, fb, true, coords, tsd, tiler);
+         pan_preload_fb_part(pool, jc, fb, true, coords, tsd, tiler);
       if (jobs && job.cpu)
          jobs[njobs++] = job;
    }
 
    if (preload_rts) {
       struct panfrost_ptr job =
-         pan_preload_fb_part(pool, scoreboard, fb, false, coords, tsd, tiler);
+         pan_preload_fb_part(pool, jc, fb, false, coords, tsd, tiler);
       if (jobs && job.cpu)
          jobs[njobs++] = job;
    }
@@ -1561,7 +1559,7 @@ GENX(pan_blit_ctx_init)(struct panfrost_device *dev,
 
 struct panfrost_ptr
 GENX(pan_blit)(struct pan_blit_context *ctx, struct pan_pool *pool,
-               struct pan_scoreboard *scoreboard, mali_ptr tsd, mali_ptr tiler)
+               struct pan_jc *jc, mali_ptr tsd, mali_ptr tiler)
 {
    if (ctx->dst.cur_layer < 0 ||
        (ctx->dst.last_layer >= ctx->dst.layer_offset &&
@@ -1588,7 +1586,7 @@ GENX(pan_blit)(struct pan_blit_context *ctx, struct 
pan_pool *pool,
       pan_pool_upload_aligned(pool, src_rect, sizeof(src_rect), 64);
 
    struct panfrost_ptr job = {0};
-   void *dcd = pan_blit_emit_tiler_job(pool, scoreboard, tiler, &job);
+   void *dcd = pan_blit_emit_tiler_job(pool, jc, tiler, &job);
 
    pan_pack(dcd, DRAW, cfg) {
       cfg.thread_storage = tsd;
diff --git a/src/panfrost/lib/pan_blitter.h b/src/panfrost/lib/pan_blitter.h
index 02c2fe378e3..f613c693c5c 100644
--- a/src/panfrost/lib/pan_blitter.h
+++ b/src/panfrost/lib/pan_blitter.h
@@ -35,7 +35,7 @@
 #include "panfrost-job.h"
 
 struct pan_fb_info;
-struct pan_scoreboard;
+struct pan_jc;
 struct pan_pool;
 struct panfrost_device;
 
@@ -87,8 +87,7 @@ void GENX(pan_blitter_init)(struct panfrost_device *dev,
 
 void GENX(pan_blitter_cleanup)(struct panfrost_device *dev);
 
-unsigned GENX(pan_preload_fb)(struct pan_pool *desc_pool,
-                              struct pan_scoreboard *scoreboard,
+unsigned GENX(pan_preload_fb)(struct pan_pool *desc_pool, struct pan_jc *jc,
                               struct pan_fb_info *fb, mali_ptr tsd,
                               mali_ptr tiler, struct panfrost_ptr *jobs);
 
@@ -116,8 +115,7 @@ pan_blit_next_surface(struct pan_blit_context *ctx)
 }
 
 struct panfrost_ptr GENX(pan_blit)(struct pan_blit_context *ctx,
-                                   struct pan_pool *pool,
-                                   struct pan_scoreboard *scoreboard,
+                                   struct pan_pool *pool, struct pan_jc *jc,
                                    mali_ptr tsd, mali_ptr tiler);
 
 #endif
diff --git a/src/panfrost/lib/pan_indirect_dispatch.c 
b/src/panfrost/lib/pan_indirect_dispatch.c
index 2a0ed901f94..3fa8e95e07f 100644
--- a/src/panfrost/lib/pan_indirect_dispatch.c
+++ b/src/panfrost/lib/pan_indirect_dispatch.c
@@ -29,8 +29,8 @@
 #include "util/u_memory.h"
 #include "pan_bo.h"
 #include "pan_encoder.h"
+#include "pan_jc.h"
 #include "pan_pool.h"
-#include "pan_scoreboard.h"
 #include "pan_shader.h"
 #include "pan_util.h"
 
@@ -163,8 +163,7 @@ pan_indirect_dispatch_init(struct panfrost_device *dev)
 }
 
 unsigned
-GENX(pan_indirect_dispatch_emit)(struct pan_pool *pool,
-                                 struct pan_scoreboard *scoreboard,
+GENX(pan_indirect_dispatch_emit)(struct pan_pool *pool, struct pan_jc *jc,
                                  const struct pan_indirect_dispatch_info 
*inputs)
 {
    struct panfrost_device *dev = pool->dev;
@@ -189,8 +188,8 @@ GENX(pan_indirect_dispatch_emit)(struct pan_pool *pool,
          pan_pool_upload_aligned(pool, inputs, sizeof(*inputs), 16);
    }
 
-   return panfrost_add_job(pool, scoreboard, MALI_JOB_TYPE_COMPUTE, false, 
true,
-                           0, 0, &job, false);
+   return pan_jc_add_job(pool, jc, MALI_JOB_TYPE_COMPUTE, false, true, 0, 0,
+                         &job, false);
 }
 
 void
diff --git a/src/panfrost/lib/pan_indirect_dispatch.h 
b/src/panfrost/lib/pan_indirect_dispatch.h
index 0dd86f04988..c21f145d245 100644
--- a/src/panfrost/lib/pan_indirect_dispatch.h
+++ b/src/panfrost/lib/pan_indirect_dispatch.h
@@ -25,10 +25,10 @@
 #define __PAN_INDIRECT_DISPATCH_SHADERS_H__
 
 #include "genxml/gen_macros.h"
-#include "pan_scoreboard.h"
+#include "pan_jc.h"
 
 struct pan_device;
-struct pan_scoreboard;
+struct pan_jc;
 struct pan_pool;
 
 struct pan_indirect_dispatch_info {
@@ -38,7 +38,7 @@ struct pan_indirect_dispatch_info {
 } PACKED;
 
 unsigned GENX(pan_indirect_dispatch_emit)(
-   struct pan_pool *pool, struct pan_scoreboard *scoreboard,
+   struct pan_pool *pool, struct pan_jc *jc,
    const struct pan_indirect_dispatch_info *dispatch_info);
 
 void GENX(pan_indirect_dispatch_cleanup)(struct panfrost_device *dev);
diff --git a/src/panfrost/lib/pan_scoreboard.h b/src/panfrost/lib/pan_jc.h
similarity index 78%
rename from src/panfrost/lib/pan_scoreboard.h
rename to src/panfrost/lib/pan_jc.h
index 4cd4c46fb48..fa6c5abe501 100644
--- a/src/panfrost/lib/pan_scoreboard.h
+++ b/src/panfrost/lib/pan_jc.h
@@ -24,17 +24,18 @@
  *
  */
 
-#ifndef __PAN_SCOREBOARD_H__
-#define __PAN_SCOREBOARD_H__
+#ifndef __PAN_JC_H__
+#define __PAN_JC_H__
 
 #include "genxml/gen_macros.h"
 #include "pan_pool.h"
 
-struct pan_scoreboard {
-   /* The first job in the batch */
+/* Job chain */
+struct pan_jc {
+   /* The first job in the chain */
    mali_ptr first_job;
 
-   /* The number of jobs in the primary batch, essentially */
+   /* The number of jobs in the chain, essentially */
    unsigned job_index;
 
    /* A CPU-side pointer to the previous job for next_job linking */
@@ -128,8 +129,8 @@ struct pan_scoreboard {
  * Does this job use the tiler? Beyond tiler jobs, index-driven vertex shading
  * jobs also do.
  */
-static bool
-panfrost_job_uses_tiling(enum mali_job_type type)
+static inline bool
+job_uses_tiling(enum mali_job_type type)
 {
 #if PAN_ARCH >= 9
    if (type == MALI_JOB_TYPE_MALLOC_VERTEX)
@@ -154,27 +155,27 @@ panfrost_job_uses_tiling(enum mali_job_type type)
  * not wallpapering and set this, dragons will eat you. */
 
 static inline unsigned
-panfrost_add_job(struct pan_pool *pool, struct pan_scoreboard *scoreboard,
-                 enum mali_job_type type, bool barrier, bool suppress_prefetch,
-                 unsigned local_dep, unsigned global_dep,
-                 const struct panfrost_ptr *job, bool inject)
+pan_jc_add_job(struct pan_pool *pool, struct pan_jc *jc,
+               enum mali_job_type type, bool barrier, bool suppress_prefetch,
+               unsigned local_dep, unsigned global_dep,
+               const struct panfrost_ptr *job, bool inject)
 {
-   if (panfrost_job_uses_tiling(type)) {
+   if (job_uses_tiling(type)) {
       /* Tiler jobs must be chained, and on Midgard, the first tiler
        * job must depend on the write value job, whose index we
        * reserve now */
 
-      if (PAN_ARCH <= 5 && !scoreboard->write_value_index)
-         scoreboard->write_value_index = ++scoreboard->job_index;
+      if (PAN_ARCH <= 5 && !jc->write_value_index)
+         jc->write_value_index = ++jc->job_index;
 
-      if (scoreboard->tiler_dep && !inject)
-         global_dep = scoreboard->tiler_dep;
+      if (jc->tiler_dep && !inject)
+         global_dep = jc->tiler_dep;
       else if (PAN_ARCH <= 5)
-         global_dep = scoreboard->write_value_index;
+         global_dep = jc->write_value_index;
    }
 
    /* Assign the index */
-   unsigned index = ++scoreboard->job_index;
+   unsigned index = ++jc->job_index;
 
    pan_pack(job->cpu, JOB_HEADER, header) {
       header.type = type;
@@ -185,48 +186,48 @@ panfrost_add_job(struct pan_pool *pool, struct 
pan_scoreboard *scoreboard,
       header.dependency_2 = global_dep;
 
       if (inject)
-         header.next = scoreboard->first_job;
+         header.next = jc->first_job;
    }
 
    if (inject) {
       assert(type == MALI_JOB_TYPE_TILER && "only for blit shaders");
 
-      if (scoreboard->first_tiler) {
+      if (jc->first_tiler) {
          /* Manual update of the dep2 field. This is bad,
           * don't copy this pattern.
           */
-         scoreboard->first_tiler->opaque[5] =
-            scoreboard->first_tiler_dep1 | (index << 16);
+         jc->first_tiler->opaque[5] =
+            jc->first_tiler_dep1 | (index << 16);
       }
 
-      scoreboard->first_tiler = (void *)job->cpu;
-      scoreboard->first_tiler_dep1 = local_dep;
-      scoreboard->first_job = job->gpu;
+      jc->first_tiler = (void *)job->cpu;
+      jc->first_tiler_dep1 = local_dep;
+      jc->first_job = job->gpu;
       return index;
    }
 
    /* Form a chain */
-   if (panfrost_job_uses_tiling(type)) {
-      if (!scoreboard->first_tiler) {
-         scoreboard->first_tiler = (void *)job->cpu;
-         scoreboard->first_tiler_dep1 = local_dep;
+   if (job_uses_tiling(type)) {
+      if (!jc->first_tiler) {
+         jc->first_tiler = (void *)job->cpu;
+         jc->first_tiler_dep1 = local_dep;
       }
-      scoreboard->tiler_dep = index;
+      jc->tiler_dep = index;
    }
 
-   if (scoreboard->prev_job) {
+   if (jc->prev_job) {
       /* Manual update of the next pointer. This is bad, don't copy
        * this pattern.
        * TODO: Find a way to defer last job header emission until we
        * have a new job to queue or the batch is ready for execution.
        */
-      scoreboard->prev_job->opaque[6] = job->gpu;
-      scoreboard->prev_job->opaque[7] = job->gpu >> 32;
+      jc->prev_job->opaque[6] = job->gpu;
+      jc->prev_job->opaque[7] = job->gpu >> 32;
    } else {
-      scoreboard->first_job = job->gpu;
+      jc->first_job = job->gpu;
    }
 
-   scoreboard->prev_job = (struct mali_job_header_packed *)job->cpu;
+   jc->prev_job = (struct mali_job_header_packed *)job->cpu;
    return index;
 }
 
@@ -234,14 +235,14 @@ panfrost_add_job(struct pan_pool *pool, struct 
pan_scoreboard *scoreboard,
  * this is called right before frame submission. */
 
 static inline struct panfrost_ptr
-panfrost_scoreboard_initialize_tiler(struct pan_pool *pool,
-                                     struct pan_scoreboard *scoreboard,
-                                     mali_ptr polygon_list)
+pan_jc_initialize_tiler(struct pan_pool *pool,
+                        struct pan_jc *jc,
+                        mali_ptr polygon_list)
 {
    struct panfrost_ptr transfer = {0};
 
    /* Check if we even need tiling */
-   if (PAN_ARCH >= 6 || !scoreboard->first_tiler)
+   if (PAN_ARCH >= 6 || !jc->first_tiler)
       return transfer;
 
    /* Okay, we do. Let's generate it. We'll need the job's polygon list
@@ -251,8 +252,8 @@ panfrost_scoreboard_initialize_tiler(struct pan_pool *pool,
 
    pan_section_pack(transfer.cpu, WRITE_VALUE_JOB, HEADER, header) {
       header.type = MALI_JOB_TYPE_WRITE_VALUE;
-      header.index = scoreboard->write_value_index;
-      header.next = scoreboard->first_job;
+      header.index = jc->write_value_index;
+      header.next = jc->first_job;
    }
 
    pan_section_pack(transfer.cpu, WRITE_VALUE_JOB, PAYLOAD, payload) {
@@ -260,7 +261,7 @@ panfrost_scoreboard_initialize_tiler(struct pan_pool *pool,
       payload.type = MALI_WRITE_VALUE_TYPE_ZERO;
    }
 
-   scoreboard->first_job = transfer.gpu;
+   jc->first_job = transfer.gpu;
    return transfer;
 }
 #endif /* PAN_ARCH */
diff --git a/src/panfrost/lib/pan_texture.h b/src/panfrost/lib/pan_texture.h
index 4163cc48475..74400397524 100644
--- a/src/panfrost/lib/pan_texture.h
+++ b/src/panfrost/lib/pan_texture.h
@@ -287,7 +287,7 @@ unsigned panfrost_texture_offset(const struct 
pan_image_layout *layout,
                                  unsigned surface_idx);
 
 struct pan_pool;
-struct pan_scoreboard;
+struct pan_jc;
 
 /* DRM modifier helper */
 
diff --git a/src/panfrost/vulkan/panvk_private.h 
b/src/panfrost/vulkan/panvk_private.h
index 54431f4d1bc..f04264dee30 100644
--- a/src/panfrost/vulkan/panvk_private.h
+++ b/src/panfrost/vulkan/panvk_private.h
@@ -69,7 +69,7 @@
 #include "pan_blend.h"
 #include "pan_cs.h"
 #include "pan_device.h"
-#include "pan_scoreboard.h"
+#include "pan_jc.h"
 #include "pan_texture.h"
 #include "panvk_mempool.h"
 #include "panvk_varyings.h"
@@ -263,7 +263,7 @@ struct panvk_batch {
    struct list_head node;
    struct util_dynarray jobs;
    struct util_dynarray event_ops;
-   struct pan_scoreboard scoreboard;
+   struct pan_jc jc;
    struct {
       const struct panvk_framebuffer *info;
       struct panfrost_ptr desc;
diff --git a/src/panfrost/vulkan/panvk_vX_cmd_buffer.c 
b/src/panfrost/vulkan/panvk_vX_cmd_buffer.c
index 297e4497c2d..d6806ff61b2 100644
--- a/src/panfrost/vulkan/panvk_vX_cmd_buffer.c
+++ b/src/panfrost/vulkan/panvk_vX_cmd_buffer.c
@@ -80,7 +80,7 @@ panvk_per_arch(cmd_close_batch)(struct panvk_cmd_buffer 
*cmdbuf)
    for (unsigned i = 0; i < fbinfo->rt_count; i++)
       clear |= fbinfo->rts[i].clear;
 
-   if (!clear && !batch->scoreboard.first_job) {
+   if (!clear && !batch->jc.first_job) {
       if (util_dynarray_num_elements(&batch->event_ops,
                                      struct panvk_event_op) == 0) {
          /* Content-less batch, let's drop it */
@@ -92,8 +92,8 @@ panvk_per_arch(cmd_close_batch)(struct panvk_cmd_buffer 
*cmdbuf)
          struct panfrost_ptr ptr =
             pan_pool_alloc_desc(&cmdbuf->desc_pool.base, JOB_HEADER);
          util_dynarray_append(&batch->jobs, void *, ptr.cpu);
-         panfrost_add_job(&cmdbuf->desc_pool.base, &batch->scoreboard,
-                          MALI_JOB_TYPE_NULL, false, false, 0, 0, &ptr, false);
+         pan_jc_add_job(&cmdbuf->desc_pool.base, &batch->jc, 
MALI_JOB_TYPE_NULL,
+                        false, false, 0, 0, &ptr, false);
          list_addtail(&batch->node, &cmdbuf->batches);
       }
       cmdbuf->state.batch = NULL;
@@ -104,10 +104,10 @@ panvk_per_arch(cmd_close_batch)(struct panvk_cmd_buffer 
*cmdbuf)
 
    list_addtail(&batch->node, &cmdbuf->batches);
 
-   if (batch->scoreboard.first_tiler) {
+   if (batch->jc.first_tiler) {
       struct panfrost_ptr preload_jobs[2];
       unsigned num_preload_jobs = GENX(pan_preload_fb)(
-         &cmdbuf->desc_pool.base, &batch->scoreboard, &cmdbuf->state.fb.info,
+         &cmdbuf->desc_pool.base, &batch->jc, &cmdbuf->state.fb.info,
          batch->tls.gpu, batch->tiler.descs.gpu, preload_jobs);
       for (unsigned i = 0; i < num_preload_jobs; i++)
          util_dynarray_append(&batch->jobs, void *, preload_jobs[i].cpu);
@@ -710,7 +710,7 @@ panvk_cmd_draw(struct panvk_cmd_buffer *cmdbuf, struct 
panvk_draw_info *draw)
    /* There are only 16 bits in the descriptor for the job ID, make sure all
     * the 3 (2 in Bifrost) jobs in this draw are in the same batch.
     */
-   if (batch->scoreboard.job_index >= (UINT16_MAX - 3)) {
+   if (batch->jc.job_index >= (UINT16_MAX - 3)) {
       panvk_per_arch(cmd_close_batch)(cmdbuf);
       panvk_cmd_preload_fb_after_batch_split(cmdbuf);
       batch = panvk_cmd_open_batch(cmdbuf);
@@ -752,14 +752,13 @@ panvk_cmd_draw(struct panvk_cmd_buffer *cmdbuf, struct 
panvk_draw_info *draw)
    batch->tlsinfo.tls.size = MAX2(pipeline->tls_size, batch->tlsinfo.tls.size);
    assert(!pipeline->wls_size);
 
-   unsigned vjob_id = panfrost_add_job(
-      &cmdbuf->desc_pool.base, &batch->scoreboard, MALI_JOB_TYPE_VERTEX, false,
-      false, 0, 0, &draw->jobs.vertex, false);
+   unsigned vjob_id =
+      pan_jc_add_job(&cmdbuf->desc_pool.base, &batch->jc, MALI_JOB_TYPE_VERTEX,
+                     false, false, 0, 0, &draw->jobs.vertex, false);
 
    if (pipeline->rast.enable) {
-      panfrost_add_job(&cmdbuf->desc_pool.base, &batch->scoreboard,
-                       MALI_JOB_TYPE_TILER, false, false, vjob_id, 0,
-                       &draw->jobs.tiler, false);
+      pan_jc_add_job(&cmdbuf->desc_pool.base, &batch->jc, MALI_JOB_TYPE_TILER,
+                     false, false, vjob_id, 0, &draw->jobs.tiler, false);
    }
 
    /* Clear the dirty flags all at once */
@@ -979,7 +978,7 @@ panvk_add_wait_event_operation(struct panvk_cmd_buffer 
*cmdbuf,
        * event signal operation.
        */
       if (cmdbuf->state.batch->fragment_job ||
-          cmdbuf->state.batch->scoreboard.first_job) {
+          cmdbuf->state.batch->jc.first_job) {
          panvk_per_arch(cmd_close_batch)(cmdbuf);
          panvk_cmd_preload_fb_after_batch_split(cmdbuf);
          panvk_cmd_open_batch(cmdbuf);
@@ -1199,8 +1198,8 @@ panvk_per_arch(CmdDispatch)(VkCommandBuffer 
commandBuffer, uint32_t x,
    dispatch.samplers = desc_state->samplers;
 
    panvk_per_arch(emit_compute_job)(pipeline, &dispatch, job.cpu);
-   panfrost_add_job(&cmdbuf->desc_pool.base, &batch->scoreboard,
-                    MALI_JOB_TYPE_COMPUTE, false, false, 0, 0, &job, false);
+   pan_jc_add_job(&cmdbuf->desc_pool.base, &batch->jc, MALI_JOB_TYPE_COMPUTE,
+                  false, false, 0, 0, &job, false);
 
    batch->tlsinfo.tls.size = pipeline->tls_size;
    batch->tlsinfo.wls.size = pipeline->wls_size;
diff --git a/src/panfrost/vulkan/panvk_vX_device.c 
b/src/panfrost/vulkan/panvk_vX_device.c
index 433b7bae9fd..e10e21d9ecc 100644
--- a/src/panfrost/vulkan/panvk_vX_device.c
+++ b/src/panfrost/vulkan/panvk_vX_device.c
@@ -57,14 +57,14 @@ panvk_queue_submit_batch(struct panvk_queue *queue, struct 
panvk_batch *batch,
       }
    }
 
-   if (batch->scoreboard.first_job) {
+   if (batch->jc.first_job) {
       struct drm_panfrost_submit submit = {
          .bo_handles = (uintptr_t)bos,
          .bo_handle_count = nr_bos,
          .in_syncs = (uintptr_t)in_fences,
          .in_sync_count = nr_in_fences,
          .out_sync = queue->sync,
-         .jc = batch->scoreboard.first_job,
+         .jc = batch->jc.first_job,
       };
 
       ret = drmIoctl(pdev->fd, DRM_IOCTL_PANFROST_SUBMIT, &submit);
@@ -77,8 +77,7 @@ panvk_queue_submit_batch(struct panvk_queue *queue, struct 
panvk_batch *batch,
       }
 
       if (debug & PANVK_DEBUG_TRACE)
-         pandecode_jc(pdev->decode_ctx, batch->scoreboard.first_job,
-                      pdev->gpu_id);
+         pandecode_jc(pdev->decode_ctx, batch->jc.first_job, pdev->gpu_id);
 
       if (debug & PANVK_DEBUG_DUMP)
          pandecode_dump_mappings(pdev->decode_ctx);
@@ -93,7 +92,7 @@ panvk_queue_submit_batch(struct panvk_queue *queue, struct 
panvk_batch *batch,
          .requirements = PANFROST_JD_REQ_FS,
       };
 
-      if (batch->scoreboard.first_job) {
+      if (batch->jc.first_job) {
          submit.in_syncs = (uintptr_t)(&queue->sync);
          submit.in_sync_count = 1;
       } else {
@@ -229,7 +228,7 @@ panvk_per_arch(queue_submit)(struct vk_queue *vk_queue,
             panvk_pool_num_bos(&cmdbuf->tls_pool) +
             (batch->fb.info ? batch->fb.info->attachment_count : 0) +
             (batch->blit.src ? 1 : 0) + (batch->blit.dst ? 1 : 0) +
-            (batch->scoreboard.first_tiler ? 1 : 0) + 1;
+            (batch->jc.first_tiler ? 1 : 0) + 1;
          unsigned bo_idx = 0;
          uint32_t bos[nr_bos];
 
@@ -256,7 +255,7 @@ panvk_per_arch(queue_submit)(struct vk_queue *vk_queue,
          if (batch->blit.dst)
             bos[bo_idx++] = batch->blit.dst->gem_handle;
 
-         if (batch->scoreboard.first_tiler)
+         if (batch->jc.first_tiler)
             bos[bo_idx++] = pdev->tiler_heap->gem_handle;
 
          bos[bo_idx++] = pdev->sample_positions->gem_handle;
diff --git a/src/panfrost/vulkan/panvk_vX_meta_blit.c 
b/src/panfrost/vulkan/panvk_vX_meta_blit.c
index 9b30566b95f..6c6915a946d 100644
--- a/src/panfrost/vulkan/panvk_vX_meta_blit.c
+++ b/src/panfrost/vulkan/panvk_vX_meta_blit.c
@@ -130,8 +130,8 @@ panvk_meta_blit(struct panvk_cmd_buffer *cmdbuf,
       tsd = batch->tls.gpu;
       tiler = batch->tiler.descs.gpu;
 
-      struct panfrost_ptr job = GENX(pan_blit)(&ctx, &cmdbuf->desc_pool.base,
-                                               &batch->scoreboard, tsd, tiler);
+      struct panfrost_ptr job =
+         GENX(pan_blit)(&ctx, &cmdbuf->desc_pool.base, &batch->jc, tsd, tiler);
       util_dynarray_append(&batch->jobs, void *, job.cpu);
       panvk_per_arch(cmd_close_batch)(cmdbuf);
    } while (pan_blit_next_surface(&ctx));
diff --git a/src/panfrost/vulkan/panvk_vX_meta_clear.c 
b/src/panfrost/vulkan/panvk_vX_meta_clear.c
index 4db34d53342..4238c8352af 100644
--- a/src/panfrost/vulkan/panvk_vX_meta_clear.c
+++ b/src/panfrost/vulkan/panvk_vX_meta_clear.c
@@ -184,8 +184,7 @@ panvk_meta_clear_attachment_emit_dcd(struct pan_pool *pool, 
mali_ptr coords,
 
 static struct panfrost_ptr
 panvk_meta_clear_attachment_emit_tiler_job(struct pan_pool *desc_pool,
-                                           struct pan_scoreboard *scoreboard,
-                                           mali_ptr coords,
+                                           struct pan_jc *jc, mali_ptr coords,
                                            mali_ptr push_constants,
                                            mali_ptr vpd, mali_ptr rsd,
                                            mali_ptr tsd, mali_ptr tiler)
@@ -215,8 +214,8 @@ panvk_meta_clear_attachment_emit_tiler_job(struct pan_pool 
*desc_pool,
       cfg.address = tiler;
    }
 
-   panfrost_add_job(desc_pool, scoreboard, MALI_JOB_TYPE_TILER, false, false, 
0,
-                    0, &job, false);
+   pan_jc_add_job(desc_pool, jc, MALI_JOB_TYPE_TILER, false, false, 0, 0, &job,
+                  false);
    return job;
 }
 
@@ -309,8 +308,8 @@ panvk_meta_clear_attachment(struct panvk_cmd_buffer *cmdbuf,
    struct panfrost_ptr job;
 
    job = panvk_meta_clear_attachment_emit_tiler_job(
-      &cmdbuf->desc_pool.base, &batch->scoreboard, coordinates, pushconsts, 
vpd,
-      rsd, tsd, tiler);
+      &cmdbuf->desc_pool.base, &batch->jc, coordinates, pushconsts, vpd, rsd,
+      tsd, tiler);
 
    util_dynarray_append(&batch->jobs, void *, job.cpu);
 }
diff --git a/src/panfrost/vulkan/panvk_vX_meta_copy.c 
b/src/panfrost/vulkan/panvk_vX_meta_copy.c
index b2835393731..fe21fcb4127 100644
--- a/src/panfrost/vulkan/panvk_vX_meta_copy.c
+++ b/src/panfrost/vulkan/panvk_vX_meta_copy.c
@@ -110,8 +110,7 @@ panvk_meta_copy_emit_dcd(struct pan_pool *pool, mali_ptr 
src_coords,
 }
 
 static struct panfrost_ptr
-panvk_meta_copy_emit_tiler_job(struct pan_pool *desc_pool,
-                               struct pan_scoreboard *scoreboard,
+panvk_meta_copy_emit_tiler_job(struct pan_pool *desc_pool, struct pan_jc *jc,
                                mali_ptr src_coords, mali_ptr dst_coords,
                                mali_ptr texture, mali_ptr sampler,
                                mali_ptr push_constants, mali_ptr vpd,
@@ -142,14 +141,13 @@ panvk_meta_copy_emit_tiler_job(struct pan_pool *desc_pool,
       cfg.address = tiler;
    }
 
-   panfrost_add_job(desc_pool, scoreboard, MALI_JOB_TYPE_TILER, false, false, 
0,
-                    0, &job, false);
+   pan_jc_add_job(desc_pool, jc, MALI_JOB_TYPE_TILER, false, false, 0, 0, &job,
+                  false);
    return job;
 }
 
 static struct panfrost_ptr
-panvk_meta_copy_emit_compute_job(struct pan_pool *desc_pool,
-                                 struct pan_scoreboard *scoreboard,
+panvk_meta_copy_emit_compute_job(struct pan_pool *desc_pool, struct pan_jc *jc,
                                  const struct pan_compute_dim *num_wg,
                                  const struct pan_compute_dim *wg_sz,
                                  mali_ptr texture, mali_ptr sampler,
@@ -171,8 +169,8 @@ panvk_meta_copy_emit_compute_job(struct pan_pool *desc_pool,
                             push_constants,
                             pan_section_ptr(job.cpu, COMPUTE_JOB, DRAW));
 
-   panfrost_add_job(desc_pool, scoreboard, MALI_JOB_TYPE_COMPUTE, false, false,
-                    0, 0, &job, false);
+   pan_jc_add_job(desc_pool, jc, MALI_JOB_TYPE_COMPUTE, false, false, 0, 0,
+                  &job, false);
    return job;
 }
 
@@ -684,9 +682,9 @@ panvk_meta_copy_img2img(struct panvk_cmd_buffer *cmdbuf,
 
       struct panfrost_ptr job;
 
-      job = panvk_meta_copy_emit_tiler_job(
-         &cmdbuf->desc_pool.base, &batch->scoreboard, src_coords, dst_coords,
-         texture, sampler, 0, vpd, rsd, tsd, tiler);
+      job = panvk_meta_copy_emit_tiler_job(&cmdbuf->desc_pool.base, &batch->jc,
+                                           src_coords, dst_coords, texture,
+                                           sampler, 0, vpd, rsd, tsd, tiler);
 
       util_dynarray_append(&batch->jobs, void *, job.cpu);
       panvk_per_arch(cmd_close_batch)(cmdbuf);
@@ -1120,9 +1118,9 @@ panvk_meta_copy_buf2img(struct panvk_cmd_buffer *cmdbuf,
 
       struct panfrost_ptr job;
 
-      job = panvk_meta_copy_emit_tiler_job(
-         &cmdbuf->desc_pool.base, &batch->scoreboard, src_coords, dst_coords, 
0,
-         0, pushconsts, vpd, rsd, tsd, tiler);
+      job = panvk_meta_copy_emit_tiler_job(&cmdbuf->desc_pool.base, &batch->jc,
+                                           src_coords, dst_coords, 0, 0,
+                                           pushconsts, vpd, rsd, tsd, tiler);
 
       util_dynarray_append(&batch->jobs, void *, job.cpu);
       panvk_per_arch(cmd_close_batch)(cmdbuf);
@@ -1550,8 +1548,8 @@ panvk_meta_copy_img2buf(struct panvk_cmd_buffer *cmdbuf,
    };
 
    struct panfrost_ptr job = panvk_meta_copy_emit_compute_job(
-      &cmdbuf->desc_pool.base, &batch->scoreboard, &num_wg, &wg_sz, texture,
-      sampler, pushconsts, rsd, tsd);
+      &cmdbuf->desc_pool.base, &batch->jc, &num_wg, &wg_sz, texture, sampler,
+      pushconsts, rsd, tsd);
 
    util_dynarray_append(&batch->jobs, void *, job.cpu);
 
@@ -1719,8 +1717,8 @@ panvk_meta_copy_buf2buf(struct panvk_cmd_buffer *cmdbuf,
    struct pan_compute_dim num_wg = {nblocks, 1, 1};
    struct pan_compute_dim wg_sz = {1, 1, 1};
    struct panfrost_ptr job = panvk_meta_copy_emit_compute_job(
-      &cmdbuf->desc_pool.base, &batch->scoreboard, &num_wg, &wg_sz, 0, 0,
-      pushconsts, rsd, tsd);
+      &cmdbuf->desc_pool.base, &batch->jc, &num_wg, &wg_sz, 0, 0, pushconsts,
+      rsd, tsd);
 
    util_dynarray_append(&batch->jobs, void *, job.cpu);
 
@@ -1865,8 +1863,8 @@ panvk_meta_fill_buf(struct panvk_cmd_buffer *cmdbuf,
    struct pan_compute_dim num_wg = {nwords, 1, 1};
    struct pan_compute_dim wg_sz = {1, 1, 1};
    struct panfrost_ptr job = panvk_meta_copy_emit_compute_job(
-      &cmdbuf->desc_pool.base, &batch->scoreboard, &num_wg, &wg_sz, 0, 0,
-      pushconsts, rsd, tsd);
+      &cmdbuf->desc_pool.base, &batch->jc, &num_wg, &wg_sz, 0, 0, pushconsts,
+      rsd, tsd);
 
    util_dynarray_append(&batch->jobs, void *, job.cpu);
 
@@ -1915,8 +1913,8 @@ panvk_meta_update_buf(struct panvk_cmd_buffer *cmdbuf,
    struct pan_compute_dim num_wg = {nblocks, 1, 1};
    struct pan_compute_dim wg_sz = {1, 1, 1};
    struct panfrost_ptr job = panvk_meta_copy_emit_compute_job(
-      &cmdbuf->desc_pool.base, &batch->scoreboard, &num_wg, &wg_sz, 0, 0,
-      pushconsts, rsd, tsd);
+      &cmdbuf->desc_pool.base, &batch->jc, &num_wg, &wg_sz, 0, 0, pushconsts,
+      rsd, tsd);
 
    util_dynarray_append(&batch->jobs, void *, job.cpu);
 


Reply via email to