830c0abcb7f6d17b96fde35cbc9fc1ae5c2a8b01
5 #include "target-helpers/inline_debug_helper.h"
6 #include "target-helpers/drm_helper_public.h"
7 #include "state_tracker/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
);
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 "radeon/radeon_winsys.h"
165 #include "radeon/drm/radeon_drm_public.h"
166 #include "amdgpu/drm/amdgpu_public.h"
167 #include "radeonsi/si_public.h"
170 pipe_radeonsi_create_screen(int fd
, const struct pipe_screen_config
*config
)
172 struct radeon_winsys
*rw
;
174 /* First, try amdgpu. */
175 rw
= amdgpu_winsys_create(fd
, config
, radeonsi_screen_create
);
178 rw
= radeon_drm_winsys_create(fd
, config
, radeonsi_screen_create
);
180 return rw
? debug_screen_wrap(rw
->screen
) : NULL
;
183 const char *radeonsi_driconf_xml
=
184 #include "radeonsi/si_driinfo.h"
190 pipe_radeonsi_create_screen(int fd
, const struct pipe_screen_config
*config
)
192 fprintf(stderr
, "radeonsi: driver missing\n");
196 const char *radeonsi_driconf_xml
= NULL
;
200 #ifdef GALLIUM_VMWGFX
201 #include "svga/drm/svga_drm_public.h"
202 #include "svga/svga_public.h"
205 pipe_vmwgfx_create_screen(int fd
, const struct pipe_screen_config
*config
)
207 struct svga_winsys_screen
*sws
;
208 struct pipe_screen
*screen
;
210 sws
= svga_drm_winsys_screen_create(fd
);
214 screen
= svga_screen_create(sws
);
215 return screen
? debug_screen_wrap(screen
) : NULL
;
221 pipe_vmwgfx_create_screen(int fd
, const struct pipe_screen_config
*config
)
223 fprintf(stderr
, "svga: driver missing\n");
229 #ifdef GALLIUM_FREEDRENO
230 #include "freedreno/drm/freedreno_drm_public.h"
233 pipe_freedreno_create_screen(int fd
, const struct pipe_screen_config
*config
)
235 struct pipe_screen
*screen
;
237 screen
= fd_drm_screen_create(fd
, NULL
);
238 return screen
? debug_screen_wrap(screen
) : NULL
;
244 pipe_freedreno_create_screen(int fd
, const struct pipe_screen_config
*config
)
246 fprintf(stderr
, "freedreno: driver missing\n");
253 #include "virgl/drm/virgl_drm_public.h"
254 #include "virgl/virgl_public.h"
257 pipe_virgl_create_screen(int fd
, const struct pipe_screen_config
*config
)
259 struct pipe_screen
*screen
;
261 screen
= virgl_drm_screen_create(fd
);
262 return screen
? debug_screen_wrap(screen
) : NULL
;
268 pipe_virgl_create_screen(int fd
, const struct pipe_screen_config
*config
)
270 fprintf(stderr
, "virgl: driver missing\n");
277 #include "vc4/drm/vc4_drm_public.h"
280 pipe_vc4_create_screen(int fd
, const struct pipe_screen_config
*config
)
282 struct pipe_screen
*screen
;
284 screen
= vc4_drm_screen_create(fd
);
285 return screen
? debug_screen_wrap(screen
) : NULL
;
291 pipe_vc4_create_screen(int fd
, const struct pipe_screen_config
*config
)
293 fprintf(stderr
, "vc4: driver missing\n");
300 #include "v3d/drm/v3d_drm_public.h"
303 pipe_v3d_create_screen(int fd
, const struct pipe_screen_config
*config
)
305 struct pipe_screen
*screen
;
307 screen
= v3d_drm_screen_create(fd
);
308 return screen
? debug_screen_wrap(screen
) : NULL
;
314 pipe_v3d_create_screen(int fd
, const struct pipe_screen_config
*config
)
316 fprintf(stderr
, "v3d: driver missing\n");
322 #ifdef GALLIUM_PANFROST
323 #include "panfrost/drm/panfrost_drm_public.h"
326 pipe_panfrost_create_screen(int fd
, const struct pipe_screen_config
*config
)
328 struct pipe_screen
*screen
;
330 screen
= panfrost_drm_screen_create(fd
);
331 return screen
? debug_screen_wrap(screen
) : NULL
;
337 pipe_panfrost_create_screen(int fd
, const struct pipe_screen_config
*config
)
339 fprintf(stderr
, "panfrost: driver missing\n");
345 #ifdef GALLIUM_ETNAVIV
346 #include "etnaviv/drm/etnaviv_drm_public.h"
349 pipe_etna_create_screen(int fd
, const struct pipe_screen_config
*config
)
351 struct pipe_screen
*screen
;
353 screen
= etna_drm_screen_create(fd
);
354 return screen
? debug_screen_wrap(screen
) : NULL
;
360 pipe_etna_create_screen(int fd
, const struct pipe_screen_config
*config
)
362 fprintf(stderr
, "etnaviv: driver missing\n");
369 #include "tegra/drm/tegra_drm_public.h"
372 pipe_tegra_create_screen(int fd
, const struct pipe_screen_config
*config
)
374 struct pipe_screen
*screen
;
376 screen
= tegra_drm_screen_create(fd
);
378 return screen
? debug_screen_wrap(screen
) : NULL
;
384 pipe_tegra_create_screen(int fd
, const struct pipe_screen_config
*config
)
386 fprintf(stderr
, "tegra: driver missing\n");
393 #include "lima/drm/lima_drm_public.h"
396 pipe_lima_create_screen(int fd
, const struct pipe_screen_config
*config
)
398 struct pipe_screen
*screen
;
400 screen
= lima_drm_screen_create(fd
);
401 return screen
? debug_screen_wrap(screen
) : NULL
;
407 pipe_lima_create_screen(int fd
, const struct pipe_screen_config
*config
)
409 fprintf(stderr
, "lima: driver missing\n");
415 #endif /* DRM_HELPER_H */