vdpau: add vdpau-r600 target
authorChristian König <deathsimple@vodafone.de>
Fri, 18 Mar 2011 20:44:47 +0000 (21:44 +0100)
committerChristian König <deathsimple@vodafone.de>
Fri, 18 Mar 2011 23:06:47 +0000 (00:06 +0100)
configure.ac
src/gallium/targets/Makefile.vdpau
src/gallium/targets/vdpau-r600/Makefile [new file with mode: 0644]
src/gallium/targets/vdpau-r600/target.c [new file with mode: 0644]

index d69fb7c4958b1ac293190aca13b64dfdd39df170..d0a67cc379c24a51e393902eb311cd1fe3fb6b8f 100644 (file)
@@ -1788,7 +1788,7 @@ AC_ARG_ENABLE([gallium-r600],
     [enable_gallium_r600=auto])
 if test "x$enable_gallium_r600" = xyes; then
     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
-    gallium_check_st "r600/drm" "dri-r600" "xvmc-r600"
+    gallium_check_st "r600/drm" "dri-r600" "xvmc-r600" "vdpau-r600"
 fi
 
 dnl
index 2accbeb702e83a33a0ec30719870ae78b928123c..6aa01037afa4dec6577593a973b73c22900fb953 100644 (file)
@@ -8,6 +8,7 @@ VDPAU_MINOR = 0
 INCLUDES = -I$(TOP)/src/gallium/include \
           -I$(TOP)/src/gallium/drivers \
           -I$(TOP)/src/gallium/auxiliary \
+          -I$(TOP)/src/gallium/winsys \
           -I$(TOP)/src/gallium/winsys/g3dvl \
           $(DRIVER_INCLUDES)
 DEFINES = -DGALLIUM_TRACE -DVER_MAJOR=$(VDPAU_MAJOR) -DVER_MINOR=$(VDPAU_MINOR) $(DRIVER_DEFINES)
diff --git a/src/gallium/targets/vdpau-r600/Makefile b/src/gallium/targets/vdpau-r600/Makefile
new file mode 100644 (file)
index 0000000..efcaaaa
--- /dev/null
@@ -0,0 +1,20 @@
+TOP = ../../../..
+include $(TOP)/configs/current
+
+PIPE_DRIVERS = \
+        $(TOP)/src/gallium/drivers/r600/libr600.a \
+       $(TOP)/src/gallium/winsys/g3dvl/dri/libvldri.a \
+        $(TOP)/src/gallium/winsys/r600/drm/libr600winsys.a \
+        $(TOP)/src/gallium/drivers/trace/libtrace.a \
+       $(TOP)/src/gallium/auxiliary/libgallium.a
+
+C_SOURCES = \
+       target.c \
+       $(COMMON_GALLIUM_SOURCES) \
+       $(DRIVER_SOURCES)
+
+DRIVER_LIBS = $(shell pkg-config libdrm_radeon --libs) -lXfixes
+
+include ../Makefile.vdpau
+
+symlinks:
diff --git a/src/gallium/targets/vdpau-r600/target.c b/src/gallium/targets/vdpau-r600/target.c
new file mode 100644 (file)
index 0000000..8753e2b
--- /dev/null
@@ -0,0 +1,24 @@
+#include "state_tracker/drm_driver.h"
+#include "target-helpers/inline_debug_helper.h"
+#include "r600/drm/r600_drm_public.h"
+#include "r600/r600_public.h"
+
+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_create(radeon);
+   if (!screen)
+      return NULL;
+
+   screen = debug_screen_wrap(screen);
+
+   return screen;
+}
+
+DRM_DRIVER_DESCRIPTOR("r600", "radeon", create_screen)