STRUCT DRM_PANTHOR_GROUP_CREATE(9)
π 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 ofdrm_panthor_queue_createelements. 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, seeenum 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_coresbits set. - the bits you set here should also be set in
drm_panthor_gpu_info::shader_present.
- this field must have at least
fragment_core_maskβ a mask encoding which cores can be used for fragment jobs.- this field must have at least
max_fragment_coresbits set. - the bits set here should also be set in
drm_panthor_gpu_info::shader_present.
- this field must have at least
tiler_core_maskβ a mask encoding which cores can be used for tiler jobs.- this field must have at least
max_tiler_coresbits set. - the bits set here should also be set in
drm_panthor_gpu_info::tiler_present. (note:tiler_present, notshader_presentβ lowkey a different one, don't mix them up π)
- this field must have at least
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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms