STRUCT DRM_PANTHOR_GROUP_CREATE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

okay so bestie, struct drm_panthor_group_create β€” it's literally the arguments that get passed to DRM_IOCTL_PANTHOR_GROUP_CREATE. that's the whole vibe. this is from the Kernel API Manual, so yeah, we're in kernel-land now πŸŽ€


✨ SYNOPSIS ✨

struct drm_panthor_group_create {
    struct drm_panthor_obj_array queues;
    __u8 max_compute_cores;
    __u8 max_fragment_cores;
    __u8 max_tiler_cores;
    __u8 priority;
    __u32 pad;
    __u64 compute_core_mask;
    __u64 fragment_core_mask;
    __u64 tiler_core_mask;
    __u32 vm_id;
    __u32 group_handle;
};

πŸ¦‹ Members πŸ¦‹

  • queues β€” an array of drm_panthor_queue_create elements. it's giving "here's my queue lineup" πŸ‘‘
  • max_compute_cores β€” the max number of cores that compute jobs can use, counted across all the CS queues bound to this group.
heads up: this must be less than or equal to the number of bits set in compute_core_mask. no cap, the kernel will be checking 🫢
  • max_fragment_cores β€” the max number of cores fragment jobs can use, across all the CS queues bound to this group.
same rule, bestie: must be less than or equal to the number of bits set in fragment_core_mask.
  • max_tiler_cores β€” the max number of tilers that tiler jobs can use, across every CS queue bound to this group.
and again: must be less than or equal to the number of bits set in tiler_core_mask.
  • priority β€” the group priority, see enum drm_panthor_group_priority. it's the main character energy setting ⭐
  • pad β€” a padding field. MBZ, i.e. must be zero. leave it alone, she's just there for the vibes πŸ’€
  • compute_core_mask β€” a mask encoding which cores can be used for compute jobs.
    • this field must have at least max_compute_cores bits set.
    • the bits you set here should also be set in drm_panthor_gpu_info::shader_present.
  • fragment_core_mask β€” a mask encoding which cores can be used for fragment jobs.
    • this field must have at least max_fragment_cores bits set.
    • the bits set here should also be set in drm_panthor_gpu_info::shader_present.
  • tiler_core_mask β€” a mask encoding which cores can be used for tiler jobs.
    • this field must have at least max_tiler_cores bits set.
    • the bits set here should also be set in drm_panthor_gpu_info::tiler_present. (note: tiler_present, not shader_present β€” lowkey a different one, don't mix them up πŸ™ˆ)
  • vm_id β€” the VM ID you're binding this group to.

every single submission to queues bound to this group will use this VM. periodt.

  • group_handle β€” the returned group handle πŸŽ€ you pass this back when you're submitting jobs or destroying the group. keep it safe, it's iconic.

🌈 SEE ALSO 🌈

so many friends, fr fr. the source file is ./include/uapi/drm/panthor_drm.h, and here's the whole crew:

Introduction(9), MMIO regions exposed to userspace.(9), IOCTL IDs(9), IOCTL arguments(9), struct drm_panthor_obj_array(9), DRM_PANTHOR_OBJ_ARRAY(9), enum drm_panthor_sync_op_flags(9), struct drm_panthor_sync_op(9), enum drm_panthor_dev_query_type(9), enum drm_panthor_gpu_coherency(9), struct drm_panthor_gpu_info(9), struct drm_panthor_csif_info(9), enum drm_panthor_timestamp_info_flags(9), struct drm_panthor_timestamp_info(9), struct drm_panthor_mmu_info(9), struct drm_panthor_group_priorities_info(9), struct drm_panthor_dev_query(9), struct drm_panthor_vm_create(9), struct drm_panthor_vm_destroy(9), enum drm_panthor_vm_bind_op_flags(9), struct drm_panthor_vm_bind_op(9), enum drm_panthor_vm_bind_flags(9), struct drm_panthor_vm_bind(9), enum drm_panthor_vm_state(9), struct drm_panthor_vm_get_state(9), enum drm_panthor_bo_flags(9), struct drm_panthor_bo_create(9), struct drm_panthor_bo_mmap_offset(9), struct drm_panthor_queue_create(9), enum drm_panthor_group_priority(9), struct drm_panthor_group_destroy(9), struct drm_panthor_queue_submit(9), struct drm_panthor_group_submit(9), enum drm_panthor_group_state_flags(9), struct drm_panthor_group_get_state(9), struct drm_panthor_tiler_heap_create(9), struct drm_panthor_tiler_heap_destroy(9), struct drm_panthor_bo_set_label(9), struct drm_panthor_set_user_mmio_offset(9), enum drm_panthor_bo_sync_op_type(9), struct drm_panthor_bo_sync_op(9), struct drm_panthor_bo_sync(9), enum drm_panthor_bo_extra_flags(9), struct drm_panthor_bo_query_info(9), DRM_IOCTL_PANTHOR(9) πŸ”₯


and that's a wrap, bestie πŸ’– this little masterpiece lives in ./include/uapi/drm and it's dated October 2026 β€” go forth and create groups, you've got this πŸ§šβ€β™€οΈβœ¨

πŸ“¦ where this page comes from