STRUCT PVR_QUEUE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct pvr_queue(9) πŸ’–

okay bestie, welcome to the Kernel API Manual β€” this page is all about struct pvr_queue, the job queue itself. No cap, it's giving kernel plumbing with main-character energy. πŸ’…


✨ NAME ✨

struct pvr_queue β€” job queue. literally the struct for the job queue. πŸ’–


🌸 SYNOPSIS 🌸

       struct pvr_queue {
           struct drm_gpu_scheduler scheduler;
           struct drm_sched_entity entity;
           enum drm_pvr_job_type type;
           struct pvr_context *ctx;
           struct list_head node;
           atomic_t in_flight_job_count;
           struct pvr_queue_cccb_fence_ctx cccb_fence_ctx;
           struct pvr_queue_fence_ctx job_fence_ctx;
           struct {
             struct pvr_fw_object *fw_obj;
             u32 *value;
           } timeline_ufo;
           struct dma_fence *last_queued_job_scheduled_fence;
           struct pvr_cccb cccb;
           struct pvr_fw_object *reg_state_obj;
           u32 ctx_offset;
           u64 callstack_addr;
        };

πŸ’… Members πŸ’…

  • scheduler β€” the single-entity scheduler used to push jobs to this queue. πŸ’«
  • entity β€” scheduling entity backing this queue.
  • type β€” type of jobs queued to this queue.
  • ctx β€” context object this queue is bound to.
  • node β€” used to add the queue to the active/idle queue list.
  • in_flight_job_count β€” number of jobs submitted to the CCCB that have not been processed yet. πŸ‘€
  • cccb_fence_ctx β€” CCCB fence context. It's the gatekeeper for when the CCCB is full, so we don't end up trying to push commands to the CCCB if there's not enough space to receive all commands needed for a job to complete. 🫢
  • job_fence_ctx β€” job fence context object.
  • timeline_ufo β€” timeline UFO for the context queue. πŸ›Έ
  • last_queued_job_scheduled_fence β€” the scheduled fence of the last job queued to this queue. We use it to insert frag -> geom dependencies when issuing combined geom+frag jobs, to guarantee that the fragment job that's part of the combined operation comes after all fragment jobs that were queued before it. periodt. πŸ’…
  • cccb β€” Client Circular Command Buffer.
  • reg_state_obj β€” FW object representing the register state of this queue.
  • ctx_offset β€” offset of the queue context in the FW context object.
  • callstack_addr β€” initial call stack address for register state object.

πŸ”₯ Description πŸ”₯

It's used to queue and track execution of pvr_job objects. that's the assignment, bestie: jobs go in, execution gets tracked. iconic behavior fr fr. ✨


πŸŽ€ SEE ALSO πŸŽ€

  • Kernel file ./drivers/gpu/drm/imagination/pvr_queue.h β€” struct pvr_queue_fence_ctx(9), struct pvr_queue_cccb_fence_ctx(9), struct pvr_queue_fence(9).

mwah πŸ’‹ that's the page, bestie. This one lives under ./drivers/gpu/drm/imagination and is dated October 2026. struct pvr_queue(9) out β€” slay your kernel journeys 🫢✨

πŸ“¦ where this page comes from