summaryrefslogtreecommitdiff
path: root/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/vc4_drm.h
blob: 473c5f2fa62a26a13ad19e2506987236429a018a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
/*
 * This file is auto-generated. Modifications will be lost.
 *
 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
 * for more information.
 */
#ifndef _UAPI_VC4_DRM_H_
#define _UAPI_VC4_DRM_H_
#include "drm.h"
#ifdef __cplusplus
extern "C" {
#endif
#define DRM_VC4_SUBMIT_CL 0x00
#define DRM_VC4_WAIT_SEQNO 0x01
#define DRM_VC4_WAIT_BO 0x02
#define DRM_VC4_CREATE_BO 0x03
#define DRM_VC4_MMAP_BO 0x04
#define DRM_VC4_CREATE_SHADER_BO 0x05
#define DRM_VC4_GET_HANG_STATE 0x06
#define DRM_VC4_GET_PARAM 0x07
#define DRM_VC4_SET_TILING 0x08
#define DRM_VC4_GET_TILING 0x09
#define DRM_VC4_LABEL_BO 0x0a
#define DRM_VC4_GEM_MADVISE 0x0b
#define DRM_VC4_PERFMON_CREATE 0x0c
#define DRM_VC4_PERFMON_DESTROY 0x0d
#define DRM_VC4_PERFMON_GET_VALUES 0x0e
#define DRM_IOCTL_VC4_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SUBMIT_CL, struct drm_vc4_submit_cl)
#define DRM_IOCTL_VC4_WAIT_SEQNO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_WAIT_SEQNO, struct drm_vc4_wait_seqno)
#define DRM_IOCTL_VC4_WAIT_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_WAIT_BO, struct drm_vc4_wait_bo)
#define DRM_IOCTL_VC4_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_CREATE_BO, struct drm_vc4_create_bo)
#define DRM_IOCTL_VC4_MMAP_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_MMAP_BO, struct drm_vc4_mmap_bo)
#define DRM_IOCTL_VC4_CREATE_SHADER_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_CREATE_SHADER_BO, struct drm_vc4_create_shader_bo)
#define DRM_IOCTL_VC4_GET_HANG_STATE DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_HANG_STATE, struct drm_vc4_get_hang_state)
#define DRM_IOCTL_VC4_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_PARAM, struct drm_vc4_get_param)
#define DRM_IOCTL_VC4_SET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SET_TILING, struct drm_vc4_set_tiling)
#define DRM_IOCTL_VC4_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_TILING, struct drm_vc4_get_tiling)
#define DRM_IOCTL_VC4_LABEL_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_LABEL_BO, struct drm_vc4_label_bo)
#define DRM_IOCTL_VC4_GEM_MADVISE DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GEM_MADVISE, struct drm_vc4_gem_madvise)
#define DRM_IOCTL_VC4_PERFMON_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_PERFMON_CREATE, struct drm_vc4_perfmon_create)
#define DRM_IOCTL_VC4_PERFMON_DESTROY DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_PERFMON_DESTROY, struct drm_vc4_perfmon_destroy)
#define DRM_IOCTL_VC4_PERFMON_GET_VALUES DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_PERFMON_GET_VALUES, struct drm_vc4_perfmon_get_values)
struct drm_vc4_submit_rcl_surface {
  __u32 hindex;
  __u32 offset;
  __u16 bits;
#define VC4_SUBMIT_RCL_SURFACE_READ_IS_FULL_RES (1 << 0)
  __u16 flags;
};
struct drm_vc4_submit_cl {
  __u64 bin_cl;
  __u64 shader_rec;
  __u64 uniforms;
  __u64 bo_handles;
  __u32 bin_cl_size;
  __u32 shader_rec_size;
  __u32 shader_rec_count;
  __u32 uniforms_size;
  __u32 bo_handle_count;
  __u16 width;
  __u16 height;
  __u8 min_x_tile;
  __u8 min_y_tile;
  __u8 max_x_tile;
  __u8 max_y_tile;
  struct drm_vc4_submit_rcl_surface color_read;
  struct drm_vc4_submit_rcl_surface color_write;
  struct drm_vc4_submit_rcl_surface zs_read;
  struct drm_vc4_submit_rcl_surface zs_write;
  struct drm_vc4_submit_rcl_surface msaa_color_write;
  struct drm_vc4_submit_rcl_surface msaa_zs_write;
  __u32 clear_color[2];
  __u32 clear_z;
  __u8 clear_s;
  __u32 pad : 24;
#define VC4_SUBMIT_CL_USE_CLEAR_COLOR (1 << 0)
#define VC4_SUBMIT_CL_FIXED_RCL_ORDER (1 << 1)
#define VC4_SUBMIT_CL_RCL_ORDER_INCREASING_X (1 << 2)
#define VC4_SUBMIT_CL_RCL_ORDER_INCREASING_Y (1 << 3)
  __u32 flags;
  __u64 seqno;
  __u32 perfmonid;
  __u32 in_sync;
  __u32 out_sync;
  __u32 pad2;
};
struct drm_vc4_wait_seqno {
  __u64 seqno;
  __u64 timeout_ns;
};
struct drm_vc4_wait_bo {
  __u32 handle;
  __u32 pad;
  __u64 timeout_ns;
};
struct drm_vc4_create_bo {
  __u32 size;
  __u32 flags;
  __u32 handle;
  __u32 pad;
};
struct drm_vc4_mmap_bo {
  __u32 handle;
  __u32 flags;
  __u64 offset;
};
struct drm_vc4_create_shader_bo {
  __u32 size;
  __u32 flags;
  __u64 data;
  __u32 handle;
  __u32 pad;
};
struct drm_vc4_get_hang_state_bo {
  __u32 handle;
  __u32 paddr;
  __u32 size;
  __u32 pad;
};
struct drm_vc4_get_hang_state {
  __u64 bo;
  __u32 bo_count;
  __u32 start_bin, start_render;
  __u32 ct0ca, ct0ea;
  __u32 ct1ca, ct1ea;
  __u32 ct0cs, ct1cs;
  __u32 ct0ra0, ct1ra0;
  __u32 bpca, bpcs;
  __u32 bpoa, bpos;
  __u32 vpmbase;
  __u32 dbge;
  __u32 fdbgo;
  __u32 fdbgb;
  __u32 fdbgr;
  __u32 fdbgs;
  __u32 errstat;
  __u32 pad[16];
};
#define DRM_VC4_PARAM_V3D_IDENT0 0
#define DRM_VC4_PARAM_V3D_IDENT1 1
#define DRM_VC4_PARAM_V3D_IDENT2 2
#define DRM_VC4_PARAM_SUPPORTS_BRANCHES 3
#define DRM_VC4_PARAM_SUPPORTS_ETC1 4
#define DRM_VC4_PARAM_SUPPORTS_THREADED_FS 5
#define DRM_VC4_PARAM_SUPPORTS_FIXED_RCL_ORDER 6
#define DRM_VC4_PARAM_SUPPORTS_MADVISE 7
#define DRM_VC4_PARAM_SUPPORTS_PERFMON 8
struct drm_vc4_get_param {
  __u32 param;
  __u32 pad;
  __u64 value;
};
struct drm_vc4_get_tiling {
  __u32 handle;
  __u32 flags;
  __u64 modifier;
};
struct drm_vc4_set_tiling {
  __u32 handle;
  __u32 flags;
  __u64 modifier;
};
struct drm_vc4_label_bo {
  __u32 handle;
  __u32 len;
  __u64 name;
};
#define VC4_MADV_WILLNEED 0
#define VC4_MADV_DONTNEED 1
#define __VC4_MADV_PURGED 2
#define __VC4_MADV_NOTSUPP 3
struct drm_vc4_gem_madvise {
  __u32 handle;
  __u32 madv;
  __u32 retained;
  __u32 pad;
};
enum {
  VC4_PERFCNT_FEP_VALID_PRIMS_NO_RENDER,
  VC4_PERFCNT_FEP_VALID_PRIMS_RENDER,
  VC4_PERFCNT_FEP_CLIPPED_QUADS,
  VC4_PERFCNT_FEP_VALID_QUADS,
  VC4_PERFCNT_TLB_QUADS_NOT_PASSING_STENCIL,
  VC4_PERFCNT_TLB_QUADS_NOT_PASSING_Z_AND_STENCIL,
  VC4_PERFCNT_TLB_QUADS_PASSING_Z_AND_STENCIL,
  VC4_PERFCNT_TLB_QUADS_ZERO_COVERAGE,
  VC4_PERFCNT_TLB_QUADS_NON_ZERO_COVERAGE,
  VC4_PERFCNT_TLB_QUADS_WRITTEN_TO_COLOR_BUF,
  VC4_PERFCNT_PLB_PRIMS_OUTSIDE_VIEWPORT,
  VC4_PERFCNT_PLB_PRIMS_NEED_CLIPPING,
  VC4_PERFCNT_PSE_PRIMS_REVERSED,
  VC4_PERFCNT_QPU_TOTAL_IDLE_CYCLES,
  VC4_PERFCNT_QPU_TOTAL_CLK_CYCLES_VERTEX_COORD_SHADING,
  VC4_PERFCNT_QPU_TOTAL_CLK_CYCLES_FRAGMENT_SHADING,
  VC4_PERFCNT_QPU_TOTAL_CLK_CYCLES_EXEC_VALID_INST,
  VC4_PERFCNT_QPU_TOTAL_CLK_CYCLES_WAITING_TMUS,
  VC4_PERFCNT_QPU_TOTAL_CLK_CYCLES_WAITING_SCOREBOARD,
  VC4_PERFCNT_QPU_TOTAL_CLK_CYCLES_WAITING_VARYINGS,
  VC4_PERFCNT_QPU_TOTAL_INST_CACHE_HIT,
  VC4_PERFCNT_QPU_TOTAL_INST_CACHE_MISS,
  VC4_PERFCNT_QPU_TOTAL_UNIFORM_CACHE_HIT,
  VC4_PERFCNT_QPU_TOTAL_UNIFORM_CACHE_MISS,
  VC4_PERFCNT_TMU_TOTAL_TEXT_QUADS_PROCESSED,
  VC4_PERFCNT_TMU_TOTAL_TEXT_CACHE_MISS,
  VC4_PERFCNT_VPM_TOTAL_CLK_CYCLES_VDW_STALLED,
  VC4_PERFCNT_VPM_TOTAL_CLK_CYCLES_VCD_STALLED,
  VC4_PERFCNT_L2C_TOTAL_L2_CACHE_HIT,
  VC4_PERFCNT_L2C_TOTAL_L2_CACHE_MISS,
  VC4_PERFCNT_NUM_EVENTS,
};
#define DRM_VC4_MAX_PERF_COUNTERS 16
struct drm_vc4_perfmon_create {
  __u32 id;
  __u32 ncounters;
  __u8 events[DRM_VC4_MAX_PERF_COUNTERS];
};
struct drm_vc4_perfmon_destroy {
  __u32 id;
};
struct drm_vc4_perfmon_get_values {
  __u32 id;
  __u64 values_ptr;
};
#ifdef __cplusplus
}
#endif
#endif