- /* CPU pointers to the job descriptor headers. next_job is only
- * set at submit time (since only then are all the dependencies
- * known). The upshot is that this is append-only.
- *
- * These arrays contain the headers for the "primary batch", our jargon
- * referring to the part of the panfrost_job that actually contains
- * meaningful work. In an OpenGL ES setting, that means the
- * SET_VALUE/VERTEX/TILER jobs. Excluded is specifically the FRAGMENT
- * job, which is sent on as a secondary batch containing only a single
- * hardware job. Since there's one and only one FRAGMENT job issued per
- * panfrost_job, there is no need to do any scoreboarding / management;
- * it's easy enough to open-code it and it's not like we can get any
- * better anyway. */
- struct util_dynarray headers;
-
- /* (And the GPU versions; TODO maybe combine) */
- struct util_dynarray gpu_headers;
-
- /* The last job in the primary batch */
- struct panfrost_transfer last_job;
-
- /* The first/last tiler job */
- struct panfrost_transfer first_tiler;
- struct panfrost_transfer last_tiler;
-
- /* The first vertex job used as the input to a tiler job */
- struct panfrost_transfer first_vertex_for_tiler;
-
- /* The first job. Notice we've created a linked list */
- struct panfrost_transfer first_job;