1 #include "state_tracker/drm_driver.h"
2 #include "target-helpers/inline_debug_helper.h"
3 #include "radeon/drm/radeon_drm_public.h"
4 #include "radeon/radeon_winsys.h"
5 #include "amdgpu/drm/amdgpu_public.h"
6 #include "radeonsi/si_public.h"
7 #include "util/xmlpool.h"
9 static struct pipe_screen
*
10 create_screen(int fd
, const struct pipe_screen_config
*config
)
12 struct radeon_winsys
*rw
;
14 /* First, try amdgpu. */
15 rw
= amdgpu_winsys_create(fd
, flags
, radeonsi_screen_create
);
18 rw
= radeon_drm_winsys_create(fd
, flags
, radeonsi_screen_create
);
20 return rw
? debug_screen_wrap(rw
->screen
) : NULL
;
23 static const struct drm_conf_ret throttle_ret
= {
28 static const struct drm_conf_ret share_fd_ret
= {
29 .type
= DRM_CONF_BOOL
,
33 static const struct drm_conf_ret
*drm_configuration(enum drm_conf conf
)
35 static const struct drm_conf_ret xml_options_ret
= {
36 .type
= DRM_CONF_POINTER
,
38 #include "radeonsi/si_driinfo.h"
42 case DRM_CONF_THROTTLE
:
44 case DRM_CONF_SHARE_FD
:
46 case DRM_CONF_XML_OPTIONS
:
47 return &xml_options_ret
;
55 DRM_DRIVER_DESCRIPTOR("radeonsi", create_screen
, drm_configuration
)