POWERVR IOCTL SUBMIT_JOBS INTERFACE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ PowerVR IOCTL SUBMIT_JOBS interface ✨

okay so bestie, welcome to the PowerVR IOCTL SUBMIT_JOBS interface page πŸ’… it lives in section 9 of the Kernel API Manual, and honestly? she's a short one. no cap, this page is basically a glow-up of a table of contents β€” everything you actually want to read lives in the cross-references below, and every single one of them is listed so you don't have to go hunting 🫢

think of it as the group chat of PowerVR interfaces: this page is the one that just says "go ask them" and points at everyone πŸŽ€


πŸ”— SEE ALSO πŸ”—

okay so here's the whole squad, no gatekeeping, iykyk πŸ’–

πŸ¦‹ the source of truth

  • Kernel file ./include/uapi/drm/pvr_drm.h PowerVR UAPI(9)

🌸 the general-use helpers

  • struct drm_pvr_obj_array(9)
  • DRM_PVR_OBJ_ARRAY(9)

πŸ’œ the big picture ioctl lore

✨ DEV_QUERY era (querying the GPU, the whole saga)

  • PowerVR IOCTL DEV_QUERY interface(9)
  • struct drm_pvr_dev_query_gpu_info(9)
  • struct drm_pvr_dev_query_runtime_info(9)
  • struct drm_pvr_dev_query_quirks(9)
  • struct drm_pvr_dev_query_enhancements(9)
  • enum drm_pvr_heap_id(9)
  • struct drm_pvr_heap(9)
  • struct drm_pvr_dev_query_heap_info(9)
  • enum drm_pvr_static_data_area_usage(9)
  • struct drm_pvr_static_data_area(9)
  • struct drm_pvr_dev_query_static_data_areas(9)
  • enum drm_pvr_dev_query(9)
  • struct drm_pvr_ioctl_dev_query_args(9)

πŸŽ€ buffer objects (the CREATE_BO + GET_BO_MMAP_OFFSET chapter)

  • PowerVR IOCTL CREATE_BO interface(9)
  • Flags for CREATE_BO(9)
  • struct drm_pvr_ioctl_create_bo_args(9)
  • PowerVR IOCTL GET_BO_MMAP_OFFSET interface(9)
  • struct drm_pvr_ioctl_get_bo_mmap_offset_args(9)

🧚 VM context + mapping (very main character energy)

  • PowerVR IOCTL CREATE_VM_CONTEXT and DESTROY_VM_CONTEXT interfaces(9)
  • struct drm_pvr_ioctl_create_vm_context_args(9)
  • struct drm_pvr_ioctl_destroy_vm_context_args(9)
  • PowerVR IOCTL VM_MAP and VM_UNMAP interfaces(9)
  • struct drm_pvr_ioctl_vm_map_args(9)
  • struct drm_pvr_ioctl_vm_unmap_args(9)

🌈 contexts (create her, destroy her, know her priorities)

  • PowerVR IOCTL CREATE_CONTEXT and DESTROY_CONTEXT interfaces(9)
  • enum drm_pvr_ctx_priority(9)
  • enum drm_pvr_ctx_type(9)
  • struct drm_pvr_ioctl_create_context_args(9)
  • struct drm_pvr_ioctl_destroy_context_args(9)

πŸ“ free lists

  • PowerVR IOCTL CREATE_FREE_LIST and DESTROY_FREE_LIST interfaces(9)
  • struct drm_pvr_ioctl_create_free_list_args(9)
  • struct drm_pvr_ioctl_destroy_free_list_args(9)

πŸ”₯ HWRT datasets (geometry + rt data, the whole duo)

  • PowerVR IOCTL CREATE_HWRT_DATASET and DESTROY_HWRT_DATASET interfaces(9)
  • struct drm_pvr_create_hwrt_geom_data_args(9)
  • struct drm_pvr_create_hwrt_rt_data_args(9)
  • struct drm_pvr_ioctl_create_hwrt_dataset_args(9)
  • struct drm_pvr_ioctl_destroy_hwrt_dataset_args(9)

πŸ‘‘ sync ops

  • Flags for the drm_pvr_sync_op object.(9)
  • struct drm_pvr_sync_op(9)

πŸ’€ the SUBMIT_JOB flags (yes, one ref per job type, keep up)

  • Flags for SUBMIT_JOB ioctl geometry command.(9)
  • Flags for SUBMIT_JOB ioctl fragment command.(9)
  • Flags for SUBMIT_JOB ioctl compute command.(9)
  • Flags for SUBMIT_JOB ioctl transfer command.(9)

⭐ and the actual jobs themselves

  • enum drm_pvr_job_type(9)
  • struct drm_pvr_hwrt_data_ref(9)
  • struct drm_pvr_job(9)
  • struct drm_pvr_ioctl_submit_jobs_args(9)
bestie read these before you start poking ioctls fr fr β€” all the args structs are laid out over there, this page is just the invite list πŸ’–

πŸŽ€ and that's the whole page, short and iconic, periodt. it ships from ./include/uapi/drm, dated October 2026, and it's filed under section 9 of the Kernel API Manual β€” mwah, go read the SEE ALSOs, ily πŸ’…βœ¨

πŸ“¦ where this page comes from