ENUM DRM_PVR_STATIC_DATA_AREA_USAGE(9)
Hiii bestie π welcome to a tiny enum from the Kernel API Manual that is lowkey doing a lot. Itβs enum drm_pvr_static_data_area_usage, and itβs the array-index situation for static data area info returned by %DRM_PVR_DEV_QUERY_STATIC_DATA_AREAS_GET. Slay. β¨
β¨ NAME β¨
enum drm_pvr_static_data_area_usage β Array index for static data area info returned by %DRM_PVR_DEV_QUERY_STATIC_DATA_AREAS_GET.
π SYNOPSIS π
Hereβs the whole enum, copied exactly because we respect source code in this house π«Ά:
enum drm_pvr_static_data_area_usage {
DRM_PVR_STATIC_DATA_AREA_EOT ,
DRM_PVR_STATIC_DATA_AREA_FENCE ,
DRM_PVR_STATIC_DATA_AREA_VDM_SYNC ,
DRM_PVR_STATIC_DATA_AREA_YUV_CSC
};
π Constants π
DRM_PVR_STATIC_DATA_AREA_EOTβ End of Tile PDS program code segment. The End of Tile PDS task runs at completion of a tile during a fragment job, and is responsible for emitting the tile to the Pixel Back End. Iconic little cleanup crew behavior, honestly.DRM_PVR_STATIC_DATA_AREA_FENCEβ MCU fence area, used during cache flush and invalidation.
Bestie, this must point to valid physical memory, but the contents otherwise are not used. Like, valid address only, the actual bytes are just vibing.
DRM_PVR_STATIC_DATA_AREA_VDM_SYNCβ VDM sync program. The VDM sync program is used to synchronise multiple areas of the GPU hardware. Teamwork makes the dream work etc. β¨DRM_PVR_STATIC_DATA_AREA_YUV_CSCβ YUV coefficients. Area contains up to 16 slots with stride of 64 bytes. Each is a3x4matrix ofu16fixed point numbers, with 1 sign bit, 2 integer bits and 13 fractional bits. Math girlies rise π
The slots are :
0=VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR1=VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR(full range)2=VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR(conformant range)3=VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR(full range)4=VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR(conformant range)5=VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR(full range)6=VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR(conformant range)7=VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR(full range)8=VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR(conformant range)9=VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR(conformant range, 10 bit)10=VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR(conformant range, 10 bit)11=VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR(conformant range, 10 bit)14= Identity (biased)15= Identity
πΈ Description πΈ
For compatibility reasons all indices will be present in the returned array, however some areas may not be present. These are indicated where struct drm_pvr_static_data_area.size is set to zero.
So yeah: the index positions are all there for compatibility, but if an area isnβt actually present, struct drm_pvr_static_data_area.size is set to zero. Read the zero, bestie. π«Ά
π₯ SEE ALSO π₯
Okay these are the related pages, and yes Iβm listing every single one because we do not skip refs in this house π :
- Kernel file
./include/uapi/drm/pvr_drm.h PowerVR UAPI(9)struct drm_pvr_obj_array(9)DRM_PVR_OBJ_ARRAY(9)PowerVR IOCTL interface(9)PVR_IOCTL(9)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)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)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)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)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)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)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)PowerVR IOCTL SUBMIT_JOBS interface(9)Flags for the drm_pvr_sync_op object.(9)struct drm_pvr_sync_op(9)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)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)
Source/version/date sign-off π: this page is from ./include/uapi/drm, dated October 2026, and its footer page name is enum drm_pv...a_area_usage(9). Bye bestie, go read those refs πβ¨
π¦ 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