summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMaíra Canal <mcanal@igalia.com>2023-07-25 07:38:48 -0300
committerMarge Bot <emma+marge@anholt.net>2023-12-14 16:43:13 +0000
commitd48aaa47734c3a983e4d52ea053cfdf65424827f (patch)
tree59e435f290fb140f0788e2edd07d9e0ac76adb66 /include
parent2e32644e35f34c70d8c038c66243b7cf633bc5bc (diff)
drm-uapi: extend interface for timestamp query CPU job
Extend the UAPI to support the timestamp query user extension for the CPU job. This user extension will allow the creation of a CPU job that calculates the query timestamp by updating a timestamp BO with its value and signaling the availability syncobj. Signed-off-by: Maíra Canal <mcanal@igalia.com> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448>
Diffstat (limited to 'include')
-rw-r--r--include/drm-uapi/v3d_drm.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/include/drm-uapi/v3d_drm.h b/include/drm-uapi/v3d_drm.h
index 0c0f4778252..239801b5e11 100644
--- a/include/drm-uapi/v3d_drm.h
+++ b/include/drm-uapi/v3d_drm.h
@@ -73,6 +73,7 @@ struct drm_v3d_extension {
__u32 id;
#define DRM_V3D_EXT_ID_MULTI_SYNC 0x01
#define DRM_V3D_EXT_ID_CPU_INDIRECT_CSD 0x02
+#define DRM_V3D_EXT_ID_CPU_TIMESTAMP_QUERY 0x03
__u32 flags; /* mbz */
};
@@ -400,11 +401,40 @@ struct drm_v3d_indirect_csd {
__u32 wg_uniform_offsets[3];
};
+/**
+ * struct drm_v3d_timestamp_query - ioctl extension for the CPU job to calculate
+ * a timestamp query
+ *
+ * When an extension DRM_V3D_EXT_ID_TIMESTAMP_QUERY is defined, it points to
+ * this extension to define a timestamp query submission. This CPU job will
+ * calculate the timestamp query and update the query value within the
+ * timestamp BO. Moreover, it will signal the timestamp syncobj to indicate
+ * query availability.
+ */
+struct drm_v3d_timestamp_query {
+ struct drm_v3d_extension base;
+
+ /* Array of queries' offsets within the timestamp BO for their value */
+ __u64 offsets;
+
+ /* Array of timestamp's syncobjs to indicate its availability */
+ __u64 syncs;
+
+ /* Number of queries */
+ __u32 count;
+
+ /* mbz */
+ __u32 pad;
+};
+
struct drm_v3d_submit_cpu {
/* Pointer to a u32 array of the BOs that are referenced by the job.
*
* For DRM_V3D_EXT_ID_CPU_INDIRECT_CSD, it must contain only one BO,
* that contains the workgroup counts.
+ *
+ * For DRM_V3D_EXT_ID_TIMESTAMP_QUERY, it must contain only one BO,
+ * that will contain the timestamp.
*/
__u64 bo_handles;