summaryrefslogtreecommitdiffstats
path: root/src/gallium/targets/dri-r600/target.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/targets/dri-r600/target.c')
-rw-r--r--src/gallium/targets/dri-r600/target.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/gallium/targets/dri-r600/target.c b/src/gallium/targets/dri-r600/target.c
index a01f4ed49fd..eb268d5bc01 100644
--- a/src/gallium/targets/dri-r600/target.c
+++ b/src/gallium/targets/dri-r600/target.c
@@ -4,6 +4,7 @@
#include "r600/drm/r600_drm_public.h"
#include "r600/r600_public.h"
+#if 1
static struct pipe_screen *
create_screen(int fd)
{
@@ -22,5 +23,27 @@ create_screen(int fd)
return screen;
}
+#else
+struct radeon *r600_new(int fd, unsigned device);
+struct pipe_screen *r600_screen_create2(struct radeon *radeon);
+static struct pipe_screen *
+create_screen(int fd)
+{
+ struct radeon *radeon;
+ struct pipe_screen *screen;
+
+ radeon = r600_drm_winsys_create(fd);
+ if (!radeon)
+ return NULL;
+
+ screen = r600_screen_create2(radeon);
+ if (!screen)
+ return NULL;
+
+ screen = debug_screen_wrap(screen);
+
+ return screen;
+}
+#endif
DRM_DRIVER_DESCRIPTOR("r600", "radeon", create_screen)