5 #include "target-helpers/inline_debug_helper.h"
6 #include "target-helpers/drm_helper_public.h"
7 #include "frontend/drm_driver.h"
8 #include "util/xmlpool.h"
11 #include "i915/drm/i915_drm_public.h"
12 #include "i915/i915_public.h"
15 pipe_i915_create_screen(int fd
, const struct pipe_screen_config
*config
)
17 struct i915_winsys
*iws
;
18 struct pipe_screen
*screen
;
20 iws
= i915_drm_winsys_create(fd
);
24 screen
= i915_screen_create(iws
);
25 return screen
? debug_screen_wrap(screen
) : NULL
;
31 pipe_i915_create_screen(int fd
, const struct pipe_screen_config
*config
)
33 fprintf(stderr
, "i915g: driver missing\n");
40 #include "iris/drm/iris_drm_public.h"
43 pipe_iris_create_screen(int fd
, const struct pipe_screen_config
*config
)
45 struct pipe_screen
*screen
;
47 screen
= iris_drm_screen_create(fd
, config
);
48 return screen
? debug_screen_wrap(screen
) : NULL
;
51 const char *iris_driconf_xml
=
52 #include "iris/iris_driinfo.h"
58 pipe_iris_create_screen(int fd
, const struct pipe_screen_config
*config
)
60 fprintf(stderr
, "iris: driver missing\n");
64 const char *iris_driconf_xml
= NULL
;
68 #ifdef GALLIUM_NOUVEAU
69 #include "nouveau/drm/nouveau_drm_public.h"
72 pipe_nouveau_create_screen(int fd
, const struct pipe_screen_config
*config
)
74 struct pipe_screen
*screen
;
76 screen
= nouveau_drm_screen_create(fd
);
77 return screen
? debug_screen_wrap(screen
) : NULL
;
83 pipe_nouveau_create_screen(int fd
, const struct pipe_screen_config
*config
)
85 fprintf(stderr
, "nouveau: driver missing\n");
92 #include "kmsro/drm/kmsro_drm_public.h"
95 pipe_kmsro_create_screen(int fd
, const struct pipe_screen_config
*config
)
97 struct pipe_screen
*screen
;
99 screen
= kmsro_drm_screen_create(fd
, config
);
100 return screen
? debug_screen_wrap(screen
) : NULL
;
106 pipe_kmsro_create_screen(int fd
, const struct pipe_screen_config
*config
)
114 #include "radeon/radeon_winsys.h"
115 #include "radeon/drm/radeon_drm_public.h"
116 #include "r300/r300_public.h"
119 pipe_r300_create_screen(int fd
, const struct pipe_screen_config
*config
)
121 struct radeon_winsys
*rw
;
123 rw
= radeon_drm_winsys_create(fd
, config
, r300_screen_create
);
124 return rw
? debug_screen_wrap(rw
->screen
) : NULL
;
130 pipe_r300_create_screen(int fd
, const struct pipe_screen_config
*config
)
132 fprintf(stderr
, "r300: driver missing\n");
139 #include "radeon/radeon_winsys.h"
140 #include "radeon/drm/radeon_drm_public.h"
141 #include "r600/r600_public.h"
144 pipe_r600_create_screen(int fd
, const struct pipe_screen_config
*config
)
146 struct radeon_winsys
*rw
;
148 rw
= radeon_drm_winsys_create(fd
, config
, r600_screen_create
);
149 return rw
? debug_screen_wrap(rw
->screen
) : NULL
;
155 pipe_r600_create_screen(int fd
, const struct pipe_screen_config
*config
)
157 fprintf(stderr
, "r600: driver missing\n");
163 #ifdef GALLIUM_RADEONSI
164 #include "radeonsi/si_public.h"
167 pipe_radeonsi_create_screen(int fd
, const struct pipe_screen_config
*config
)
169 struct pipe_screen
*screen
= radeonsi_screen_create(fd
, config
);
171 return screen
? debug_screen_wrap(screen
) : NULL
;
174 const char *radeonsi_driconf_xml
=
175 #include "radeonsi/si_driinfo.h"
181 pipe_radeonsi_create_screen(int fd
, const struct pipe_screen_config
*config
)
183 fprintf(stderr
, "radeonsi: driver missing\n");
187 const char *radeonsi_driconf_xml
= NULL
;
191 #ifdef GALLIUM_VMWGFX
192 #include "svga/drm/svga_drm_public.h"
193 #include "svga/svga_public.h"
196 pipe_vmwgfx_create_screen(int fd
, const struct pipe_screen_config
*config
)
198 struct svga_winsys_screen
*sws
;
199 struct pipe_screen
*screen
;
201 sws
= svga_drm_winsys_screen_create(fd
);
205 screen
= svga_screen_create(sws
);
206 return screen
? debug_screen_wrap(screen
) : NULL
;
212 pipe_vmwgfx_create_screen(int fd
, const struct pipe_screen_config
*config
)
214 fprintf(stderr
, "svga: driver missing\n");
220 #ifdef GALLIUM_FREEDRENO
221 #include "freedreno/drm/freedreno_drm_public.h"
224 pipe_freedreno_create_screen(int fd
, const struct pipe_screen_config
*config
)
226 struct pipe_screen
*screen
;
228 screen
= fd_drm_screen_create(fd
, NULL
);
229 return screen
? debug_screen_wrap(screen
) : NULL
;
235 pipe_freedreno_create_screen(int fd
, const struct pipe_screen_config
*config
)
237 fprintf(stderr
, "freedreno: driver missing\n");
244 #include "virgl/drm/virgl_drm_public.h"
245 #include "virgl/virgl_public.h"
248 pipe_virgl_create_screen(int fd
, const struct pipe_screen_config
*config
)
250 struct pipe_screen
*screen
;
252 screen
= virgl_drm_screen_create(fd
, config
);
253 return screen
? debug_screen_wrap(screen
) : NULL
;
256 const char *virgl_driconf_xml
=
257 #include "virgl/virgl_driinfo.h"
263 pipe_virgl_create_screen(int fd
, const struct pipe_screen_config
*config
)
265 fprintf(stderr
, "virgl: driver missing\n");
269 const char *virgl_driconf_xml
= NULL
;
274 #include "vc4/drm/vc4_drm_public.h"
277 pipe_vc4_create_screen(int fd
, const struct pipe_screen_config
*config
)
279 struct pipe_screen
*screen
;
281 screen
= vc4_drm_screen_create(fd
, config
);
282 return screen
? debug_screen_wrap(screen
) : NULL
;
287 pipe_vc4_create_screen(int fd
, const struct pipe_screen_config
*config
)
289 fprintf(stderr
, "vc4: driver missing\n");
296 #include "v3d/drm/v3d_drm_public.h"
299 pipe_v3d_create_screen(int fd
, const struct pipe_screen_config
*config
)
301 struct pipe_screen
*screen
;
303 screen
= v3d_drm_screen_create(fd
, config
);
304 return screen
? debug_screen_wrap(screen
) : NULL
;
307 const char *v3d_driconf_xml
=
308 #include "v3d/v3d_driinfo.h"
314 pipe_v3d_create_screen(int fd
, const struct pipe_screen_config
*config
)
316 fprintf(stderr
, "v3d: driver missing\n");
320 const char *v3d_driconf_xml
= NULL
;
324 #ifdef GALLIUM_PANFROST
325 #include "panfrost/drm/panfrost_drm_public.h"
328 pipe_panfrost_create_screen(int fd
, const struct pipe_screen_config
*config
)
330 struct pipe_screen
*screen
;
332 screen
= panfrost_drm_screen_create(fd
);
333 return screen
? debug_screen_wrap(screen
) : NULL
;
339 pipe_panfrost_create_screen(int fd
, const struct pipe_screen_config
*config
)
341 fprintf(stderr
, "panfrost: driver missing\n");
347 #ifdef GALLIUM_ETNAVIV
348 #include "etnaviv/drm/etnaviv_drm_public.h"
351 pipe_etna_create_screen(int fd
, const struct pipe_screen_config
*config
)
353 struct pipe_screen
*screen
;
355 screen
= etna_drm_screen_create(fd
);
356 return screen
? debug_screen_wrap(screen
) : NULL
;
362 pipe_etna_create_screen(int fd
, const struct pipe_screen_config
*config
)
364 fprintf(stderr
, "etnaviv: driver missing\n");
371 #include "tegra/drm/tegra_drm_public.h"
374 pipe_tegra_create_screen(int fd
, const struct pipe_screen_config
*config
)
376 struct pipe_screen
*screen
;
378 screen
= tegra_drm_screen_create(fd
);
380 return screen
? debug_screen_wrap(screen
) : NULL
;
386 pipe_tegra_create_screen(int fd
, const struct pipe_screen_config
*config
)
388 fprintf(stderr
, "tegra: driver missing\n");
395 #include "lima/drm/lima_drm_public.h"
398 pipe_lima_create_screen(int fd
, const struct pipe_screen_config
*config
)
400 struct pipe_screen
*screen
;
402 screen
= lima_drm_screen_create(fd
);
403 return screen
? debug_screen_wrap(screen
) : NULL
;
409 pipe_lima_create_screen(int fd
, const struct pipe_screen_config
*config
)
411 fprintf(stderr
, "lima: driver missing\n");
418 #include "zink/zink_public.h"
421 pipe_zink_create_screen(int fd
, const struct pipe_screen_config
*config
)
423 struct pipe_screen
*screen
;
424 screen
= zink_drm_create_screen(fd
);
425 return screen
? debug_screen_wrap(screen
) : NULL
;
431 pipe_zink_create_screen(int fd
, const struct pipe_screen_config
*config
)
433 fprintf(stderr
, "zink: driver missing\n");
439 #endif /* DRM_HELPER_H */