ilo: EOL unplumb unmaintained gallium drv from winsys
[mesa.git] / src / gallium / auxiliary / target-helpers / drm_helper.h
1 #ifndef DRM_HELPER_H
2 #define DRM_HELPER_H
3
4 #include <stdio.h>
5 #include "target-helpers/inline_debug_helper.h"
6 #include "target-helpers/drm_helper_public.h"
7
8 #ifdef GALLIUM_I915
9 #include "i915/drm/i915_drm_public.h"
10 #include "i915/i915_public.h"
11
12 struct pipe_screen *
13 pipe_i915_create_screen(int fd)
14 {
15 struct i915_winsys *iws;
16 struct pipe_screen *screen;
17
18 iws = i915_drm_winsys_create(fd);
19 if (!iws)
20 return NULL;
21
22 screen = i915_screen_create(iws);
23 return screen ? debug_screen_wrap(screen) : NULL;
24 }
25
26 #else
27
28 struct pipe_screen *
29 pipe_i915_create_screen(int fd)
30 {
31 fprintf(stderr, "i915g: driver missing\n");
32 return NULL;
33 }
34
35 #endif
36
37 #ifdef GALLIUM_NOUVEAU
38 #include "nouveau/drm/nouveau_drm_public.h"
39
40 struct pipe_screen *
41 pipe_nouveau_create_screen(int fd)
42 {
43 struct pipe_screen *screen;
44
45 screen = nouveau_drm_screen_create(fd);
46 return screen ? debug_screen_wrap(screen) : NULL;
47 }
48
49 #else
50
51 struct pipe_screen *
52 pipe_nouveau_create_screen(int fd)
53 {
54 fprintf(stderr, "nouveau: driver missing\n");
55 return NULL;
56 }
57
58 #endif
59
60 #ifdef GALLIUM_R300
61 #include "radeon/radeon_winsys.h"
62 #include "radeon/drm/radeon_drm_public.h"
63 #include "r300/r300_public.h"
64
65 struct pipe_screen *
66 pipe_r300_create_screen(int fd)
67 {
68 struct radeon_winsys *rw;
69
70 rw = radeon_drm_winsys_create(fd, r300_screen_create);
71 return rw ? debug_screen_wrap(rw->screen) : NULL;
72 }
73
74 #else
75
76 struct pipe_screen *
77 pipe_r300_create_screen(int fd)
78 {
79 fprintf(stderr, "r300: driver missing\n");
80 return NULL;
81 }
82
83 #endif
84
85 #ifdef GALLIUM_R600
86 #include "radeon/radeon_winsys.h"
87 #include "radeon/drm/radeon_drm_public.h"
88 #include "r600/r600_public.h"
89
90 struct pipe_screen *
91 pipe_r600_create_screen(int fd)
92 {
93 struct radeon_winsys *rw;
94
95 rw = radeon_drm_winsys_create(fd, r600_screen_create);
96 return rw ? debug_screen_wrap(rw->screen) : NULL;
97 }
98
99 #else
100
101 struct pipe_screen *
102 pipe_r600_create_screen(int fd)
103 {
104 fprintf(stderr, "r600: driver missing\n");
105 return NULL;
106 }
107
108 #endif
109
110 #ifdef GALLIUM_RADEONSI
111 #include "radeon/radeon_winsys.h"
112 #include "radeon/drm/radeon_drm_public.h"
113 #include "amdgpu/drm/amdgpu_public.h"
114 #include "radeonsi/si_public.h"
115
116 struct pipe_screen *
117 pipe_radeonsi_create_screen(int fd)
118 {
119 struct radeon_winsys *rw;
120
121 /* First, try amdgpu. */
122 rw = amdgpu_winsys_create(fd, radeonsi_screen_create);
123
124 if (!rw)
125 rw = radeon_drm_winsys_create(fd, radeonsi_screen_create);
126
127 return rw ? debug_screen_wrap(rw->screen) : NULL;
128 }
129
130 #else
131
132 struct pipe_screen *
133 pipe_radeonsi_create_screen(int fd)
134 {
135 fprintf(stderr, "radeonsi: driver missing\n");
136 return NULL;
137 }
138
139 #endif
140
141 #ifdef GALLIUM_VMWGFX
142 #include "svga/drm/svga_drm_public.h"
143 #include "svga/svga_public.h"
144
145 struct pipe_screen *
146 pipe_vmwgfx_create_screen(int fd)
147 {
148 struct svga_winsys_screen *sws;
149 struct pipe_screen *screen;
150
151 sws = svga_drm_winsys_screen_create(fd);
152 if (!sws)
153 return NULL;
154
155 screen = svga_screen_create(sws);
156 return screen ? debug_screen_wrap(screen) : NULL;
157 }
158
159 #else
160
161 struct pipe_screen *
162 pipe_vmwgfx_create_screen(int fd)
163 {
164 fprintf(stderr, "svga: driver missing\n");
165 return NULL;
166 }
167
168 #endif
169
170 #ifdef GALLIUM_FREEDRENO
171 #include "freedreno/drm/freedreno_drm_public.h"
172
173 struct pipe_screen *
174 pipe_freedreno_create_screen(int fd)
175 {
176 struct pipe_screen *screen;
177
178 screen = fd_drm_screen_create(fd);
179 return screen ? debug_screen_wrap(screen) : NULL;
180 }
181
182 #else
183
184 struct pipe_screen *
185 pipe_freedreno_create_screen(int fd)
186 {
187 fprintf(stderr, "freedreno: driver missing\n");
188 return NULL;
189 }
190
191 #endif
192
193 #ifdef GALLIUM_VIRGL
194 #include "virgl/drm/virgl_drm_public.h"
195 #include "virgl/virgl_public.h"
196
197 struct pipe_screen *
198 pipe_virgl_create_screen(int fd)
199 {
200 struct pipe_screen *screen;
201
202 screen = virgl_drm_screen_create(fd);
203 return screen ? debug_screen_wrap(screen) : NULL;
204 }
205
206 #else
207
208 struct pipe_screen *
209 pipe_virgl_create_screen(int fd)
210 {
211 fprintf(stderr, "virgl: driver missing\n");
212 return NULL;
213 }
214
215 #endif
216
217 #ifdef GALLIUM_VC4
218 #include "vc4/drm/vc4_drm_public.h"
219
220 struct pipe_screen *
221 pipe_vc4_create_screen(int fd)
222 {
223 struct pipe_screen *screen;
224
225 screen = vc4_drm_screen_create(fd);
226 return screen ? debug_screen_wrap(screen) : NULL;
227 }
228
229 #else
230
231 struct pipe_screen *
232 pipe_vc4_create_screen(int fd)
233 {
234 fprintf(stderr, "vc4: driver missing\n");
235 return NULL;
236 }
237
238 #endif
239
240 #ifdef GALLIUM_ETNAVIV
241 #include "etnaviv/drm/etnaviv_drm_public.h"
242
243 struct pipe_screen *
244 pipe_etna_create_screen(int fd)
245 {
246 struct pipe_screen *screen;
247
248 screen = etna_drm_screen_create(fd);
249 return screen ? debug_screen_wrap(screen) : NULL;
250 }
251
252 #else
253
254 struct pipe_screen *
255 pipe_etna_create_screen(int fd)
256 {
257 fprintf(stderr, "etnaviv: driver missing\n");
258 return NULL;
259 }
260
261 #endif
262
263 #ifdef GALLIUM_IMX
264 #include "imx/drm/imx_drm_public.h"
265
266 struct pipe_screen *
267 pipe_imx_drm_create_screen(int fd)
268 {
269 struct pipe_screen *screen;
270
271 screen = imx_drm_screen_create(fd);
272 return screen ? debug_screen_wrap(screen) : NULL;
273 }
274
275 #else
276
277 struct pipe_screen *
278 pipe_imx_drm_create_screen(int fd)
279 {
280 fprintf(stderr, "imx-drm: driver missing\n");
281 return NULL;
282 }
283
284 #endif
285
286
287 #endif /* DRM_HELPER_H */