141625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König#include "state_tracker/drm_driver.h"
241625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König#include "target-helpers/inline_debug_helper.h"
341625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König#include "radeon/drm/radeon_drm_public.h"
441625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König#include "radeonsi/radeonsi_public.h"
541625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König
641625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian Königstatic struct pipe_screen *create_screen(int fd)
741625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König{
841625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König   struct radeon_winsys *radeon;
941625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König   struct pipe_screen *screen;
1041625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König
1141625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König   radeon = radeon_drm_winsys_create(fd);
1241625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König   if (!radeon)
1341625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König      return NULL;
1441625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König
1541625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König   screen = radeonsi_screen_create(radeon);
1641625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König   if (!screen)
1741625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König      return NULL;
1841625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König
1941625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König   screen = debug_screen_wrap(screen);
2041625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König
2141625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König   return screen;
2241625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König}
2341625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian König
2441625afa2f7f30e5076c695ab3a16eabb5fe69f8Christian KönigDRM_DRIVER_DESCRIPTOR("radeonsi", "radeon", create_screen, NULL)
25