29#if defined(__cplusplus)
40#define DRM_VIRTGPU_MAP 0x01
41#define DRM_VIRTGPU_EXECBUFFER 0x02
42#define DRM_VIRTGPU_GETPARAM 0x03
43#define DRM_VIRTGPU_RESOURCE_CREATE 0x04
44#define DRM_VIRTGPU_RESOURCE_INFO 0x05
45#define DRM_VIRTGPU_TRANSFER_FROM_HOST 0x06
46#define DRM_VIRTGPU_TRANSFER_TO_HOST 0x07
47#define DRM_VIRTGPU_WAIT 0x08
48#define DRM_VIRTGPU_GET_CAPS 0x09
49#define DRM_VIRTGPU_RESOURCE_CREATE_BLOB 0x0a
50#define DRM_VIRTGPU_CONTEXT_INIT 0x0b
52#define VIRTGPU_EXECBUF_FENCE_FD_IN 0x01
53#define VIRTGPU_EXECBUF_FENCE_FD_OUT 0x02
54#define VIRTGPU_EXECBUF_RING_IDX 0x04
55#define VIRTGPU_EXECBUF_FLAGS (\
56 VIRTGPU_EXECBUF_FENCE_FD_IN |\
57 VIRTGPU_EXECBUF_FENCE_FD_OUT |\
58 VIRTGPU_EXECBUF_RING_IDX |\
67#define VIRTGPU_EXECBUF_SYNCOBJ_RESET 0x01
68#define VIRTGPU_EXECBUF_SYNCOBJ_FLAGS ( \
69 VIRTGPU_EXECBUF_SYNCOBJ_RESET | \
93#define VIRTGPU_PARAM_3D_FEATURES 1
94#define VIRTGPU_PARAM_CAPSET_QUERY_FIX 2
95#define VIRTGPU_PARAM_RESOURCE_BLOB 3
96#define VIRTGPU_PARAM_HOST_VISIBLE 4
97#define VIRTGPU_PARAM_CROSS_DEVICE 5
98#define VIRTGPU_PARAM_CONTEXT_INIT 6
99#define VIRTGPU_PARAM_SUPPORTED_CAPSET_IDs 7
100#define VIRTGPU_PARAM_EXPLICIT_DEBUG_NAME 8
101#define VIRTGPU_PARAM_BLOB_ALIGNMENT 9
161#define VIRTGPU_WAIT_NOWAIT 1
167#define VIRTGPU_DRM_CAPSET_VIRGL 1
168#define VIRTGPU_DRM_CAPSET_VIRGL2 2
169#define VIRTGPU_DRM_CAPSET_GFXSTREAM_VULKAN 3
170#define VIRTGPU_DRM_CAPSET_VENUS 4
171#define VIRTGPU_DRM_CAPSET_CROSS_DOMAIN 5
172#define VIRTGPU_DRM_CAPSET_DRM 6
182#define VIRTGPU_BLOB_MEM_GUEST 0x0001
183#define VIRTGPU_BLOB_MEM_HOST3D 0x0002
184#define VIRTGPU_BLOB_MEM_HOST3D_GUEST 0x0003
186#define VIRTGPU_BLOB_FLAG_USE_MAPPABLE 0x0001
187#define VIRTGPU_BLOB_FLAG_USE_SHAREABLE 0x0002
188#define VIRTGPU_BLOB_FLAG_USE_CROSS_DEVICE 0x0004
205#define DRM_VIRTGPU_BLOB_FLAG_HINT_DEFER_MAPPING 0x0001
210#define VIRTGPU_CONTEXT_PARAM_CAPSET_ID 0x0001
211#define VIRTGPU_CONTEXT_PARAM_NUM_RINGS 0x0002
212#define VIRTGPU_CONTEXT_PARAM_POLL_RINGS_MASK 0x0003
213#define VIRTGPU_CONTEXT_PARAM_DEBUG_NAME 0x0004
232#define VIRTGPU_EVENT_FENCE_SIGNALED 0x90000000
234#define DRM_IOCTL_VIRTGPU_MAP \
235 DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_MAP, struct drm_virtgpu_map)
237#define DRM_IOCTL_VIRTGPU_EXECBUFFER \
238 DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_EXECBUFFER,\
239 struct drm_virtgpu_execbuffer)
241#define DRM_IOCTL_VIRTGPU_GETPARAM \
242 DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_GETPARAM,\
243 struct drm_virtgpu_getparam)
245#define DRM_IOCTL_VIRTGPU_RESOURCE_CREATE \
246 DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_RESOURCE_CREATE, \
247 struct drm_virtgpu_resource_create)
249#define DRM_IOCTL_VIRTGPU_RESOURCE_INFO \
250 DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_RESOURCE_INFO, \
251 struct drm_virtgpu_resource_info)
253#define DRM_IOCTL_VIRTGPU_TRANSFER_FROM_HOST \
254 DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_TRANSFER_FROM_HOST, \
255 struct drm_virtgpu_3d_transfer_from_host)
257#define DRM_IOCTL_VIRTGPU_TRANSFER_TO_HOST \
258 DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_TRANSFER_TO_HOST, \
259 struct drm_virtgpu_3d_transfer_to_host)
261#define DRM_IOCTL_VIRTGPU_WAIT \
262 DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_WAIT, \
263 struct drm_virtgpu_3d_wait)
265#define DRM_IOCTL_VIRTGPU_GET_CAPS \
266 DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_GET_CAPS, \
267 struct drm_virtgpu_get_caps)
269#define DRM_IOCTL_VIRTGPU_RESOURCE_CREATE_BLOB \
270 DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_RESOURCE_CREATE_BLOB, \
271 struct drm_virtgpu_resource_create_blob)
273#define DRM_IOCTL_VIRTGPU_CONTEXT_INIT \
274 DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_CONTEXT_INIT, \
275 struct drm_virtgpu_context_init)
277#if defined(__cplusplus)
int32_t __s32
Definition drm.h:41
uint32_t __u32
Definition drm.h:42
uint64_t __u64
Definition drm.h:44
Definition virtgpu_drm.h:134
__u32 y
Definition virtgpu_drm.h:136
__u32 h
Definition virtgpu_drm.h:139
__u32 z
Definition virtgpu_drm.h:137
__u32 w
Definition virtgpu_drm.h:138
__u32 x
Definition virtgpu_drm.h:135
__u32 d
Definition virtgpu_drm.h:140
Definition virtgpu_drm.h:152
__u32 level
Definition virtgpu_drm.h:155
struct drm_virtgpu_3d_box box
Definition virtgpu_drm.h:154
__u32 layer_stride
Definition virtgpu_drm.h:158
__u32 stride
Definition virtgpu_drm.h:157
__u32 offset
Definition virtgpu_drm.h:156
__u32 bo_handle
Definition virtgpu_drm.h:153
Definition virtgpu_drm.h:143
__u32 bo_handle
Definition virtgpu_drm.h:144
__u32 layer_stride
Definition virtgpu_drm.h:149
__u32 level
Definition virtgpu_drm.h:146
struct drm_virtgpu_3d_box box
Definition virtgpu_drm.h:145
__u32 offset
Definition virtgpu_drm.h:147
__u32 stride
Definition virtgpu_drm.h:148
Definition virtgpu_drm.h:162
__u32 flags
Definition virtgpu_drm.h:164
__u32 handle
Definition virtgpu_drm.h:163
Definition virtgpu_drm.h:219
__u32 pad
Definition virtgpu_drm.h:221
__u32 num_params
Definition virtgpu_drm.h:220
__u64 ctx_set_params
Definition virtgpu_drm.h:224
Definition virtgpu_drm.h:214
__u64 param
Definition virtgpu_drm.h:215
__u64 value
Definition virtgpu_drm.h:216
Definition virtgpu_drm.h:71
__u32 handle
Definition virtgpu_drm.h:72
__u64 point
Definition virtgpu_drm.h:74
__u32 flags
Definition virtgpu_drm.h:73
Definition virtgpu_drm.h:78
__u32 ring_idx
Definition virtgpu_drm.h:85
__u32 flags
Definition virtgpu_drm.h:79
__u32 num_bo_handles
Definition virtgpu_drm.h:83
__u64 bo_handles
Definition virtgpu_drm.h:82
__u32 num_out_syncobjs
Definition virtgpu_drm.h:88
__u32 num_in_syncobjs
Definition virtgpu_drm.h:87
__u64 command
Definition virtgpu_drm.h:81
__s32 fence_fd
Definition virtgpu_drm.h:84
__u32 syncobj_stride
Definition virtgpu_drm.h:86
__u64 out_syncobjs
Definition virtgpu_drm.h:90
__u32 size
Definition virtgpu_drm.h:80
__u64 in_syncobjs
Definition virtgpu_drm.h:89
Definition virtgpu_drm.h:173
__u32 pad
Definition virtgpu_drm.h:178
__u32 size
Definition virtgpu_drm.h:177
__u32 cap_set_id
Definition virtgpu_drm.h:174
__u64 addr
Definition virtgpu_drm.h:176
__u32 cap_set_ver
Definition virtgpu_drm.h:175
Definition virtgpu_drm.h:103
__u64 value
Definition virtgpu_drm.h:105
__u64 param
Definition virtgpu_drm.h:104
Definition virtgpu_drm.h:61
__u32 handle
Definition virtgpu_drm.h:63
__u32 pad
Definition virtgpu_drm.h:64
__u64 offset
Definition virtgpu_drm.h:62
Definition virtgpu_drm.h:181
__u32 blob_hints
Definition virtgpu_drm.h:206
__u32 pad
Definition virtgpu_drm.h:200
__u64 size
Definition virtgpu_drm.h:194
__u64 blob_id
Definition virtgpu_drm.h:203
__u32 cmd_size
Definition virtgpu_drm.h:201
__u32 bo_handle
Definition virtgpu_drm.h:192
__u64 cmd
Definition virtgpu_drm.h:202
__u32 blob_flags
Definition virtgpu_drm.h:191
__u32 res_handle
Definition virtgpu_drm.h:193
__u32 blob_mem
Definition virtgpu_drm.h:190
__u32 pad2
Definition virtgpu_drm.h:207
Definition virtgpu_drm.h:110
__u32 flags
Definition virtgpu_drm.h:120
__u32 last_level
Definition virtgpu_drm.h:118
__u32 target
Definition virtgpu_drm.h:111
__u32 bo_handle
Definition virtgpu_drm.h:121
__u32 width
Definition virtgpu_drm.h:114
__u32 format
Definition virtgpu_drm.h:112
__u32 size
Definition virtgpu_drm.h:123
__u32 nr_samples
Definition virtgpu_drm.h:119
__u32 res_handle
Definition virtgpu_drm.h:122
__u32 height
Definition virtgpu_drm.h:115
__u32 bind
Definition virtgpu_drm.h:113
__u32 array_size
Definition virtgpu_drm.h:117
__u32 stride
Definition virtgpu_drm.h:124
__u32 depth
Definition virtgpu_drm.h:116
Definition virtgpu_drm.h:127
__u32 res_handle
Definition virtgpu_drm.h:129
__u32 bo_handle
Definition virtgpu_drm.h:128
__u32 blob_mem
Definition virtgpu_drm.h:131
__u32 size
Definition virtgpu_drm.h:130