1317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez#include "state_tracker/drm_driver.h"
2317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez#include "target-helpers/inline_debug_helper.h"
3317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez#include "radeon/drm/radeon_drm_public.h"
4317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez#include "r600/r600_public.h"
5317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez
6317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerezstatic struct pipe_screen *
7317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerezcreate_screen(int fd)
8317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez{
9317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez   struct radeon_winsys *rw;
10317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez   struct pipe_screen *screen;
11317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez
12317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez   rw = radeon_drm_winsys_create(fd);
13317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez   if (!rw)
14317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez      return NULL;
15317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez
16317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez   screen = r600_screen_create(rw);
17317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez   if (!screen)
18317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez      return NULL;
19317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez
20317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez   screen = debug_screen_wrap(screen);
21317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez
22317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez   return screen;
23317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez}
24317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco Jerez
25317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco JerezPUBLIC
26317be33d73228fe8b340de8e029ff24b6e0d95b5Francisco JerezDRM_DRIVER_DESCRIPTOR("r600", "radeon", create_screen, NULL)
27