STRUCT PVR_SYNC_SIGNAL(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct pvr_sync_signal β€” Kernel API Manual πŸ’…

okay so this is the Kernel API Manual page for struct pvr_sync_signal(9), and it’s literally the object encoding a syncobj signal operation. no cap, we’re getting into it πŸ’–

🌸 NAME 🌸

struct pvr_sync_signal β€” the object encoding a syncobj signal operation. that’s the whole vibe, bestie.

πŸ¦‹ SYNOPSIS πŸ¦‹

struct pvr_sync_signal {
    u32 handle;
    u64 point;
    struct drm_syncobj *syncobj;
    struct dma_fence_chain *chain;
    struct dma_fence *fence;
 };

🧚 Members 🧚

  • handle β€” handle of the syncobj to signal. yes, that handle πŸ’…
  • point β€” point to signal in the syncobj. Only relevant for timeline syncobjs, so that’s the rule ✨
  • syncobj β€” syncobj retrieved from the handle. it came from the handle, periodt.
  • chain β€” chain object used to link the new fence with the existing timeline syncobj. Should be zero when manipulating a regular syncobj β€” like, keep it at zero, fr fr.
  • fence β€” new fence object to attach to the syncobj. This pointer starts with the current fence bound to the <handle,point> pair. iconic pointer behavior, honestly.

πŸ’– Description πŸ’–

okay so the job submission logic collects all signal operations in an array of pvr_sync_signal objects. This array also serves as a cache to get the latest dma_fence when multiple jobs are submitted at once, and one job signals a syncobj point that’s later waited on by a subsequent job. that’s the tea β˜• β€” the array is out here doing double duty and we love that for it.

πŸ‘€ SEE ALSO πŸ‘€

  • Kernel file ./drivers/gpu/drm/imagination/pvr_sync.h β€” the header, the receipts, the place to look if you want the full lore.

mwah πŸ’‹ β€” from ./drivers/gpu/drm/imagination, October 2026, for struct pvr_sync_signal(9). take care of your syncobjs, bestie 🫢

πŸ“¦ where this page comes from