XenevaOS
Loading...
Searching...
No Matches
asahi_drm.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: MIT */
2/*
3 * Copyright (C) The Asahi Linux Contributors
4 * Copyright (C) 2018-2023 Collabora Ltd.
5 * Copyright (C) 2014-2018 Broadcom
6 */
7#ifndef _ASAHI_DRM_H_
8#define _ASAHI_DRM_H_
9
10#include "drm.h"
11
12#if defined(__cplusplus)
13extern "C" {
14#endif
15
97
98#define DRM_ASAHI_MAX_CLUSTERS 64
99
195
217
238
270
281
299
321
336
362
400
427
438
449
479
523
552
586
598
609
623
631#define DRM_ASAHI_BARRIER_NONE (0xFFFFu)
632
690
743
769
806
840
862
879
912
942
1111
1148
1159
1171#define DRM_IOCTL_ASAHI(__access, __id, __type) \
1172 DRM_IO ## __access(DRM_COMMAND_BASE + DRM_ASAHI_ ## __id, \
1173 struct drm_asahi_ ## __type)
1174
1175/* Note: this is an enum so that it can be resolved by Rust bindgen. */
1176enum {
1179 DRM_IOCTL_ASAHI_VM_CREATE = DRM_IOCTL_ASAHI(WR, VM_CREATE, vm_create),
1182 DRM_IOCTL_ASAHI_GEM_CREATE = DRM_IOCTL_ASAHI(WR, GEM_CREATE, gem_create),
1183 DRM_IOCTL_ASAHI_GEM_MMAP_OFFSET = DRM_IOCTL_ASAHI(WR, GEM_MMAP_OFFSET, gem_mmap_offset),
1184 DRM_IOCTL_ASAHI_GEM_BIND_OBJECT = DRM_IOCTL_ASAHI(WR, GEM_BIND_OBJECT, gem_bind_object),
1185 DRM_IOCTL_ASAHI_QUEUE_CREATE = DRM_IOCTL_ASAHI(WR, QUEUE_CREATE, queue_create),
1186 DRM_IOCTL_ASAHI_QUEUE_DESTROY = DRM_IOCTL_ASAHI(W, QUEUE_DESTROY, queue_destroy),
1188};
1189
1190#if defined(__cplusplus)
1191}
1192#endif
1193
1194#endif /* _ASAHI_DRM_H_ */
drm_asahi_bind_object_op
Definition asahi_drm.h:431
@ DRM_ASAHI_BIND_OBJECT_OP_BIND
Definition asahi_drm.h:433
@ DRM_ASAHI_BIND_OBJECT_OP_UNBIND
Definition asahi_drm.h:436
drm_asahi_ioctl_id
Definition asahi_drm.h:60
@ DRM_ASAHI_VM_BIND
Definition asahi_drm.h:74
@ DRM_ASAHI_SUBMIT
Definition asahi_drm.h:95
@ DRM_ASAHI_VM_DESTROY
Definition asahi_drm.h:71
@ DRM_ASAHI_GEM_BIND_OBJECT
Definition asahi_drm.h:86
@ DRM_ASAHI_QUEUE_CREATE
Definition asahi_drm.h:89
@ DRM_ASAHI_VM_CREATE
Definition asahi_drm.h:68
@ DRM_ASAHI_GET_TIME
Definition asahi_drm.h:65
@ DRM_ASAHI_GET_PARAMS
Definition asahi_drm.h:62
@ DRM_ASAHI_GEM_CREATE
Definition asahi_drm.h:77
@ DRM_ASAHI_QUEUE_DESTROY
Definition asahi_drm.h:92
@ DRM_ASAHI_GEM_MMAP_OFFSET
Definition asahi_drm.h:83
drm_asahi_feature
Definition asahi_drm.h:202
@ DRM_ASAHI_FEATURE_SOFT_FAULTS
Definition asahi_drm.h:215
drm_asahi_gem_flags
Definition asahi_drm.h:285
@ DRM_ASAHI_GEM_WRITEBACK
Definition asahi_drm.h:292
@ DRM_ASAHI_GEM_VM_PRIVATE
Definition asahi_drm.h:297
drm_asahi_priority
Definition asahi_drm.h:531
@ DRM_ASAHI_PRIORITY_LOW
Definition asahi_drm.h:533
@ DRM_ASAHI_PRIORITY_REALTIME
Definition asahi_drm.h:550
@ DRM_ASAHI_PRIORITY_MEDIUM
Definition asahi_drm.h:536
@ DRM_ASAHI_PRIORITY_HIGH
Definition asahi_drm.h:543
drm_asahi_render_flags
Definition asahi_drm.h:770
@ DRM_ASAHI_RENDER_PROCESS_EMPTY_TILES
Definition asahi_drm.h:781
@ DRM_ASAHI_RENDER_VERTEX_SCRATCH
Definition asahi_drm.h:775
@ DRM_ASAHI_RENDER_DBIAS_IS_INT
Definition asahi_drm.h:804
@ DRM_ASAHI_RENDER_NO_VERTEX_CLUSTERING
Definition asahi_drm.h:790
@ DRM_IOCTL_ASAHI_VM_BIND
Definition asahi_drm.h:1181
@ DRM_IOCTL_ASAHI_GEM_CREATE
Definition asahi_drm.h:1182
@ DRM_IOCTL_ASAHI_VM_CREATE
Definition asahi_drm.h:1179
@ DRM_IOCTL_ASAHI_QUEUE_CREATE
Definition asahi_drm.h:1185
@ DRM_IOCTL_ASAHI_GET_PARAMS
Definition asahi_drm.h:1177
@ DRM_IOCTL_ASAHI_SUBMIT
Definition asahi_drm.h:1187
@ DRM_IOCTL_ASAHI_VM_DESTROY
Definition asahi_drm.h:1180
@ DRM_IOCTL_ASAHI_GET_TIME
Definition asahi_drm.h:1178
@ DRM_IOCTL_ASAHI_QUEUE_DESTROY
Definition asahi_drm.h:1186
@ DRM_IOCTL_ASAHI_GEM_BIND_OBJECT
Definition asahi_drm.h:1184
@ DRM_IOCTL_ASAHI_GEM_MMAP_OFFSET
Definition asahi_drm.h:1183
drm_asahi_sync_type
Definition asahi_drm.h:602
@ DRM_ASAHI_SYNC_SYNCOBJ
Definition asahi_drm.h:604
@ DRM_ASAHI_SYNC_TIMELINE_SYNCOBJ
Definition asahi_drm.h:607
drm_asahi_bind_flags
Definition asahi_drm.h:340
@ DRM_ASAHI_BIND_READ
Definition asahi_drm.h:348
@ DRM_ASAHI_BIND_WRITE
Definition asahi_drm.h:351
@ DRM_ASAHI_BIND_UNBIND
Definition asahi_drm.h:345
@ DRM_ASAHI_BIND_SINGLE_PAGE
Definition asahi_drm.h:360
drm_asahi_cmd_type
Definition asahi_drm.h:483
@ DRM_ASAHI_SET_COMPUTE_ATTACHMENTS
Definition asahi_drm.h:521
@ DRM_ASAHI_CMD_COMPUTE
Definition asahi_drm.h:497
@ DRM_ASAHI_SET_VERTEX_ATTACHMENTS
Definition asahi_drm.h:505
@ DRM_ASAHI_SET_FRAGMENT_ATTACHMENTS
Definition asahi_drm.h:513
@ DRM_ASAHI_CMD_RENDER
Definition asahi_drm.h:490
#define DRM_IOCTL_ASAHI(__access, __id, __type)
Definition asahi_drm.h:1171
#define DRM_ASAHI_MAX_CLUSTERS
Definition asahi_drm.h:98
drm_asahi_bind_object_flags
Definition asahi_drm.h:442
@ DRM_ASAHI_BIND_OBJECT_USAGE_TIMESTAMPS
Definition asahi_drm.h:447
int W
Definition compose3d.cpp:138
uint32_t __u32
Definition drm.h:42
uint8_t __u8
Definition drm.h:38
uint16_t __u16
Definition drm.h:40
uint64_t __u64
Definition drm.h:44
Definition asahi_drm.h:756
__u64 pointer
Definition asahi_drm.h:758
__u64 size
Definition asahi_drm.h:761
__u32 pad
Definition asahi_drm.h:764
__u32 flags
Definition asahi_drm.h:767
Definition asahi_drm.h:925
__u32 usc
Definition asahi_drm.h:933
__u32 rsrc_spec
Definition asahi_drm.h:940
Definition asahi_drm.h:1119
struct drm_asahi_helper_program helper
Definition asahi_drm.h:1143
__u64 cdm_ctrl_stream_end
Definition asahi_drm.h:1137
__u64 sampler_heap
Definition asahi_drm.h:1140
__u32 flags
Definition asahi_drm.h:1121
struct drm_asahi_timestamps ts
Definition asahi_drm.h:1146
__u32 sampler_count
Definition asahi_drm.h:1124
__u64 cdm_ctrl_stream_base
Definition asahi_drm.h:1130
Definition asahi_drm.h:639
__u16 cmd_type
Definition asahi_drm.h:641
__u16 size
Definition asahi_drm.h:656
__u16 cdm_barrier
Definition asahi_drm.h:688
__u16 vdm_barrier
Definition asahi_drm.h:681
Definition asahi_drm.h:972
struct drm_asahi_helper_program vertex_helper
Definition asahi_drm.h:990
__u32 isp_zls_pixels
Definition asahi_drm.h:981
struct drm_asahi_bg_eot partial_eot
Definition asahi_drm.h:1090
__u64 isp_oclqry_base
Definition asahi_drm.h:1011
__u64 ppp_multisamplectl
Definition asahi_drm.h:1023
__u16 width_px
Definition asahi_drm.h:1036
__u64 isp_scissor_base
Definition asahi_drm.h:999
struct drm_asahi_timestamps ts_vtx
Definition asahi_drm.h:1106
__u64 vdm_ctrl_stream_base
Definition asahi_drm.h:987
struct drm_asahi_bg_eot bg
Definition asahi_drm.h:1075
__u8 utile_width_px
Definition asahi_drm.h:1048
__u32 isp_bgobjdepth
Definition asahi_drm.h:1097
__u8 sample_size_B
Definition asahi_drm.h:1057
__u32 isp_merge_upper_y
Definition asahi_drm.h:1072
__u16 sampler_count
Definition asahi_drm.h:1045
struct drm_asahi_bg_eot partial_bg
Definition asahi_drm.h:1084
__u16 layers
Definition asahi_drm.h:1042
struct drm_asahi_helper_program fragment_helper
Definition asahi_drm.h:993
__u32 isp_bgobjvals
Definition asahi_drm.h:1103
__u32 flags
Definition asahi_drm.h:974
__u8 samples
Definition asahi_drm.h:1054
struct drm_asahi_zls_buffer stencil
Definition asahi_drm.h:1017
__u32 ppp_ctrl
Definition asahi_drm.h:1033
__u16 height_px
Definition asahi_drm.h:1039
__u64 zls_ctrl
Definition asahi_drm.h:1020
__u64 isp_dbias_base
Definition asahi_drm.h:1005
struct drm_asahi_timestamps ts_frag
Definition asahi_drm.h:1109
__u64 sampler_heap
Definition asahi_drm.h:1030
__u32 isp_merge_upper_x
Definition asahi_drm.h:1066
struct drm_asahi_zls_buffer depth
Definition asahi_drm.h:1014
__u8 utile_height_px
Definition asahi_drm.h:1051
struct drm_asahi_bg_eot eot
Definition asahi_drm.h:1078
Definition asahi_drm.h:454
__u32 flags
Definition asahi_drm.h:459
__u32 op
Definition asahi_drm.h:456
__u32 object_handle
Definition asahi_drm.h:474
__u64 offset
Definition asahi_drm.h:468
__u64 range
Definition asahi_drm.h:471
__u32 pad
Definition asahi_drm.h:477
__u32 vm_id
Definition asahi_drm.h:465
__u32 handle
Definition asahi_drm.h:462
Definition asahi_drm.h:366
__u64 offset
Definition asahi_drm.h:384
__u64 addr
Definition asahi_drm.h:398
__u64 range
Definition asahi_drm.h:391
__u32 handle
Definition asahi_drm.h:371
__u32 flags
Definition asahi_drm.h:368
Definition asahi_drm.h:303
__u32 pad
Definition asahi_drm.h:319
__u32 flags
Definition asahi_drm.h:308
__u32 handle
Definition asahi_drm.h:316
__u64 size
Definition asahi_drm.h:305
__u32 vm_id
Definition asahi_drm.h:313
Definition asahi_drm.h:326
__u32 flags
Definition asahi_drm.h:331
__u32 handle
Definition asahi_drm.h:328
__u64 offset
Definition asahi_drm.h:334
Definition asahi_drm.h:221
__u64 pointer
Definition asahi_drm.h:229
__u32 pad
Definition asahi_drm.h:226
__u32 param_group
Definition asahi_drm.h:223
__u64 size
Definition asahi_drm.h:236
Definition asahi_drm.h:1152
__u64 gpu_timestamp
Definition asahi_drm.h:1157
__u64 flags
Definition asahi_drm.h:1154
Definition asahi_drm.h:891
__u32 binary
Definition asahi_drm.h:896
__u64 data
Definition asahi_drm.h:910
__u32 cfg
Definition asahi_drm.h:899
Definition asahi_drm.h:105
__u32 max_commands_per_submission
Definition asahi_drm.h:176
__u32 gpu_generation
Definition asahi_drm.h:110
__u32 num_cores_per_cluster
Definition asahi_drm.h:134
__u32 num_clusters_total
Definition asahi_drm.h:128
__u64 core_masks[DRM_ASAHI_MAX_CLUSTERS]
Definition asahi_drm.h:140
__u32 max_attachments
Definition asahi_drm.h:182
__u64 vm_end
Definition asahi_drm.h:154
__u32 gpu_variant
Definition asahi_drm.h:113
__u64 command_timestamp_frequency_hz
Definition asahi_drm.h:193
__u32 num_dies
Definition asahi_drm.h:125
__u32 gpu_revision
Definition asahi_drm.h:119
__u32 max_frequency_khz
Definition asahi_drm.h:137
__u64 features
Definition asahi_drm.h:107
__u32 chip_id
Definition asahi_drm.h:122
__u64 vm_start
Definition asahi_drm.h:151
__u64 vm_kernel_min_size
Definition asahi_drm.h:168
Definition asahi_drm.h:557
__u32 queue_id
Definition asahi_drm.h:568
__u32 flags
Definition asahi_drm.h:559
__u32 vm_id
Definition asahi_drm.h:562
__u64 usc_exec_base
Definition asahi_drm.h:584
__u32 priority
Definition asahi_drm.h:565
Definition asahi_drm.h:591
__u32 pad
Definition asahi_drm.h:596
__u32 queue_id
Definition asahi_drm.h:593
Definition asahi_drm.h:694
__u32 in_sync_count
Definition asahi_drm.h:729
__u32 queue_id
Definition asahi_drm.h:723
__u32 flags
Definition asahi_drm.h:720
__u64 syncs
Definition asahi_drm.h:701
__u32 pad
Definition asahi_drm.h:741
__u32 cmdbuf_size
Definition asahi_drm.h:738
__u32 out_sync_count
Definition asahi_drm.h:735
__u64 cmdbuf
Definition asahi_drm.h:717
Definition asahi_drm.h:613
__u32 handle
Definition asahi_drm.h:618
__u32 sync_type
Definition asahi_drm.h:615
__u64 timeline_value
Definition asahi_drm.h:621
Definition asahi_drm.h:851
__u32 handle
Definition asahi_drm.h:857
__u32 offset
Definition asahi_drm.h:860
Definition asahi_drm.h:872
struct drm_asahi_timestamp end
Definition asahi_drm.h:877
struct drm_asahi_timestamp start
Definition asahi_drm.h:874
Definition asahi_drm.h:405
__u32 vm_id
Definition asahi_drm.h:407
__u32 stride
Definition asahi_drm.h:416
__u32 num_binds
Definition asahi_drm.h:410
__u64 userptr
Definition asahi_drm.h:425
__u32 pad
Definition asahi_drm.h:419
Definition asahi_drm.h:242
__u64 kernel_start
Definition asahi_drm.h:256
__u64 kernel_end
Definition asahi_drm.h:262
__u32 vm_id
Definition asahi_drm.h:265
__u32 pad
Definition asahi_drm.h:268
Definition asahi_drm.h:274
__u32 vm_id
Definition asahi_drm.h:276
__u32 pad
Definition asahi_drm.h:279
Definition asahi_drm.h:818
__u64 base
Definition asahi_drm.h:820
__u64 comp_base
Definition asahi_drm.h:826
__u32 stride
Definition asahi_drm.h:832
__u32 comp_stride
Definition asahi_drm.h:838