Lines Matching +full:required +full:- +full:for +full:- +full:hardware +full:- +full:jobs

1 /* SPDX-License-Identifier: (GPL-2.0-only WITH Linux-syscall-note) OR MIT */
22 * - All members must be type-aligned.
23 * - The overall struct must be padded to 64-bit alignment.
24 * - Explicit padding is almost always required. This takes the form of
25 * ``_padding_[x]`` members of sufficient size to pad to the next power-of-two
27 * are never used for alignment. Padding fields must be zeroed; this is
29 * - Unions may only appear as the last member of a struct.
30 * - Individual union members may grow in the future. The space between the
41 * struct drm_pvr_obj_array - Container used to pass arrays of objects
56 /** @stride: Stride of object struct. Used for versioning. */
67 * DRM_PVR_OBJ_ARRAY() - Helper macro for filling &struct drm_pvr_obj_array.
81 * PVR_IOCTL() - Build a PowerVR IOCTL number
82 * @_ioctl: An incrementing id for this IOCTL. Added to %DRM_COMMAND_BASE.
117 * struct drm_pvr_dev_query_gpu_info - Container used to fetch information about
127 * For all currently supported GPUs this is the BVNC encoded as a 64-bit
130 * +--------+--------+--------+-------+
134 * +--------+--------+--------+-------+
148 * struct drm_pvr_dev_query_runtime_info - Container used to fetch information
169 * Region within the Common Store used for coefficient and shared
176 * Partition Space within the Common Store for output buffers, in
194 * struct drm_pvr_dev_query_quirks - Container used to fetch information about
195 * hardware fixes for which the device may require support in the user mode
203 * @quirks: A userspace address for the hardware quirks __u32 array.
206 * client must support for this device. If userspace does not support
211 * opt-in. The opt-in mechanism depends on the quirk.
229 * struct drm_pvr_dev_query_enhancements - Container used to fetch information
238 * @enhancements: A userspace address for the hardware enhancements
242 * are disabled by default and require userspace to opt-in. The opt-in
258 * enum drm_pvr_heap_id - Array index for heap info data returned by
261 * For compatibility reasons all indices will be present in the returned array,
291 * struct drm_pvr_heap - Container holding information about a single heap.
302 /** @flags: Flags for this heap. Currently always 0. */
310 * struct drm_pvr_dev_query_heap_info - Container used to fetch information
313 * Please note all driver-supported heaps will be returned up to &heaps.count.
330 * enum drm_pvr_static_data_area_usage - Array index for static data area info
333 * For compatibility reasons all indices will be present in the returned array,
342 * responsible for emitting the tile to the Pixel Back End.
357 * The VDM sync program is used to synchronise multiple areas of the GPU hardware.
387 * struct drm_pvr_static_data_area - Container holding information about a
414 * struct drm_pvr_dev_query_static_data_areas - Container used to fetch
418 * Please note all driver-supported static data areas will be returned up to
419 * &static_data_areas.count. Some will not be present for all devices which,
438 * enum drm_pvr_dev_query - For use with &drm_pvr_ioctl_dev_query_args.type to
482 * struct drm_pvr_ioctl_dev_query_args - Arguments for %DRM_IOCTL_PVR_DEV_QUERY.
516 * DOC: Flags for CREATE_BO
523 * cache. This is used for buffers that will either be regularly updated by the CPU (eg free
527 * required for coherency.
545 * struct drm_pvr_ioctl_create_bo_args - Arguments for %DRM_IOCTL_PVR_CREATE_BO
555 * @handle: [OUT] GEM handle of the new buffer object for use in
577 * struct drm_pvr_ioctl_get_bo_mmap_offset_args - Arguments for
601 * struct drm_pvr_ioctl_create_vm_context_args - Arguments for
605 /** @handle: [OUT] Handle for new VM context. */
613 * struct drm_pvr_ioctl_destroy_vm_context_args - Arguments for
618 * @handle: [IN] Handle for VM context to be destroyed.
631 * The client is responsible for managing GPU address space. It should allocate mappings within
634 * %DRM_IOCTL_PVR_VM_MAP creates a new mapping. The client provides the target virtual address for
643 * struct drm_pvr_ioctl_vm_map_args - Arguments for %DRM_IOCTL_PVR_VM_MAP.
647 * @vm_context_handle: [IN] Handle for VM context for this mapping to
656 * @device_addr: [IN] Requested device-virtual address for the mapping.
657 * This must be non-zero and aligned to the device page size for the
681 * the device page size for the heap containing the requested address,
692 * struct drm_pvr_ioctl_vm_unmap_args - Arguments for %DRM_IOCTL_PVR_VM_UNMAP.
696 * @vm_context_handle: [IN] Handle for VM context that this mapping
705 * @device_addr: [IN] Device-virtual address at the start of the target
706 * mapping. This must be non-zero.
711 * @size: Size in bytes of the target mapping. This must be non-zero.
721 * enum drm_pvr_ctx_priority - Arguments for
726 DRM_PVR_CTX_PRIORITY_LOW = -512,
739 * enum drm_pvr_ctx_type - Arguments for
754 * @DRM_PVR_CTX_TYPE_TRANSFER_FRAG: Transfer context for fragment data
761 * struct drm_pvr_ioctl_create_context_args - Arguments for
772 /** @flags: [IN] Flags for context. */
782 /** @handle: [OUT] Handle for new context. */
796 * @vm_context_handle: [IN] Handle for VM context that this context is
802 * @callstack_addr: [IN] Address for initial call stack pointer. Only valid
809 * struct drm_pvr_ioctl_destroy_context_args - Arguments for
814 * @handle: [IN] Handle for context to be destroyed.
827 * struct drm_pvr_ioctl_create_free_list_args - Arguments for
832 * - @max_num_pages must be greater than zero.
833 * - @grow_threshold must be between 0 and 100.
834 * - @grow_num_pages must be less than or equal to &max_num_pages.
835 * - @initial_num_pages, @max_num_pages and @grow_num_pages must be multiples
837 * - When &grow_num_pages is 0, @initial_num_pages must be equal to
839 * - When &grow_num_pages is non-zero, @initial_num_pages must be less than
872 * @vm_context_handle: [IN] Handle for VM context that the free list buffer
878 * @handle: [OUT] Handle for created free list.
884 * struct drm_pvr_ioctl_destroy_free_list_args - Arguments for
889 * @handle: [IN] Handle for free list to be destroyed.
902 * struct drm_pvr_create_hwrt_geom_data_args - Geometry data arguments used for
923 * struct drm_pvr_create_hwrt_rt_data_args - Render target arguments used for
941 * struct drm_pvr_ioctl_create_hwrt_dataset_args - Arguments for
977 /** @isp_merge_lower_x: [IN] Lower X coefficient for triangle merging. */
980 /** @isp_merge_lower_y: [IN] Lower Y coefficient for triangle merging. */
983 /** @isp_merge_scale_x: [IN] Scale X coefficient for triangle merging. */
986 /** @isp_merge_scale_y: [IN] Scale Y coefficient for triangle merging. */
989 /** @isp_merge_upper_x: [IN] Upper X coefficient for triangle merging. */
992 /** @isp_merge_upper_y: [IN] Upper Y coefficient for triangle merging. */
999 * The units for this field differ depending on what version of the simple internal
1001 * number of region headers. For other formats it is interpreted as the size in dwords.
1006 * @handle: [OUT] Handle for created HWRT dataset.
1012 * struct drm_pvr_ioctl_destroy_hwrt_dataset_args - Arguments for
1017 * @handle: [IN] Handle for HWRT dataset to be destroyed.
1030 * DOC: Flags for the drm_pvr_sync_op object.
1034 * Handle type mask for the drm_pvr_sync_op::flags field.
1047 * Signal operation requested. The out-fence bound to the job will be attached to
1052 * Wait operation requested. The job will wait for this particular syncobj or syncobj
1066 * struct drm_pvr_sync_op - Object describing a sync operation
1075 /** @value: Timeline value for this drm_syncobj. MBZ for a binary syncobj. */
1080 * DOC: Flags for SUBMIT_JOB ioctl geometry command.
1084 * Indicates if this the first command to be issued for a render.
1088 * Indicates if this the last command to be issued for a render.
1107 * DOC: Flags for SUBMIT_JOB ioctl fragment command.
1137 * Disable pixel merging for this render.
1162 * DOC: Flags for SUBMIT_JOB ioctl compute command.
1166 * Disallow other jobs overlapped with this compute.
1183 * DOC: Flags for SUBMIT_JOB ioctl transfer command.
1199 * enum drm_pvr_job_type - Arguments for &struct drm_pvr_job.job_type
1216 * struct drm_pvr_hwrt_data_ref - Reference HWRT data
1227 * struct drm_pvr_job - Job arguments passed to the %DRM_IOCTL_PVR_SUBMIT_JOBS ioctl
1250 * @flags: [IN] Flags for command.
1252 * Those are job-dependent. See all ``DRM_PVR_SUBMIT_JOB_*``.
1262 * @cmd_stream: [IN] Pointer to command stream for command.
1264 * The command stream must be u64-aligned.
1272 * @hwrt: [IN] HWRT data used by render jobs (geometry or fragment).
1274 * Must be zero for non-render jobs.
1280 * struct drm_pvr_ioctl_submit_jobs_args - Arguments for %DRM_IOCTL_PVR_SUBMIT_JOB
1283 * @jobs.count. This indicates the index into @jobs.array where the
1287 /** @jobs: [IN] Array of jobs to submit. */
1288 struct drm_pvr_obj_array jobs; member