summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCooper Yuan <cooperyuan@gmail.com>2009-09-23 18:01:11 +0800
committerCooper Yuan <cooperyuan@gmail.com>2009-09-23 18:01:11 +0800
commit443c4952b5c4d0c37c15fe2f0ba76fb23ada057a (patch)
tree3f23255ce777891835083cb22334b8e15dbdde15
parent4e21acae9c4f23c6b1e4a1b4f897d771a5c8c752 (diff)
xvmc: refine libradeon_vl.so Makefile
-rw-r--r--src/gallium/winsys/g3dvl/radeon/Makefile10
-rw-r--r--src/gallium/winsys/g3dvl/radeon/radeon_vl.c38
2 files changed, 34 insertions, 14 deletions
diff --git a/src/gallium/winsys/g3dvl/radeon/Makefile b/src/gallium/winsys/g3dvl/radeon/Makefile
index d02c593f8..1a94b29f4 100644
--- a/src/gallium/winsys/g3dvl/radeon/Makefile
+++ b/src/gallium/winsys/g3dvl/radeon/Makefile
@@ -2,6 +2,7 @@ TARGET = libradeon_vl.so
GALLIUMDIR = ../../..
DRMDIR ?= /usr
DRIDIR = ../../../../driclient
+GLXDIR = ../../../../glx
OBJECTS = radeon_vl.o
@@ -15,19 +16,20 @@ CFLAGS += -g -Wall -Werror=implicit-function-declaration -fPIC \
-I${GALLIUMDIR}/drivers \
-I${GALLIUMDIR}/auxiliary \
-I${DRIDIR}/include \
- -I${GALLIUMDIR}/drivers/r300
+ -I${GALLIUMDIR}/drivers/r300 \
+ -I${GLXDIR}/x11
-LDFLAGS += -L${DRMDIR}/lib \
- -L${DRIDIR}/lib \
+LDFLAGS += -L${DRIDIR}/lib \
-L${GALLIUMDIR}/winsys/drm/radeon/core \
-L${GALLIUMDIR}/auxiliary/draw \
-L${GALLIUMDIR}/auxiliary/tgsi \
-L${GALLIUMDIR}/auxiliary/translate \
-L${GALLIUMDIR}/auxiliary/rtasm \
-L${GALLIUMDIR}/auxiliary/cso_cache \
+ -L${GALLIUMDIR}/auxiliary/util \
-L${GALLIUMDIR}/drivers/r300
-LIBS += -ldriclient -lradeonwinsys -ldrm -ldraw -ltgsi -ltranslate -lrtasm -lcso_cache -lm
+LIBS += -ldriclient -lradeonwinsys -ldrm_radeon -lr300 -ldrm -ldraw -ltgsi -ltranslate -lrtasm -lcso_cache -lm
#############################################
diff --git a/src/gallium/winsys/g3dvl/radeon/radeon_vl.c b/src/gallium/winsys/g3dvl/radeon/radeon_vl.c
index 8d7275a1b..0eabafa00 100644
--- a/src/gallium/winsys/g3dvl/radeon/radeon_vl.c
+++ b/src/gallium/winsys/g3dvl/radeon/radeon_vl.c
@@ -23,11 +23,17 @@
* Author: Cooper Yuan <cooper.yuan@amd.com>
*
*/
-
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
#include <pipe/p_defines.h>
#include <pipe/p_context.h>
#include <pipe/p_screen.h>
#include <util/u_memory.h>
+#include <X11/Xlib.h>
+
+#include <fcntl.h>
+
+
#include "radeon_buffer.h"
#include "radeon_r300.h"
#include "radeon_winsys_softpipe.h"
@@ -92,20 +98,21 @@ static int radeon_vl_context_unbind(struct radeon_vl_context *rvl_ctx)
return 0;
}
-static int radeon_vl_screen_create(Display *display)
+static int radeon_vl_screen_create(Display *display, int screen, int drmFD)
{
struct radeon_vl_screen *rvl_screen;
- struct radeon_winsys *winsys;
struct r300_winsys *r300;
+ struct radeon_winsys *winsys;
+ struct pipe_screen *pScreen;
rvl_screen = CALLOC_STRUCT(radeon_vl_screen);
- // winsys = radeon_pipe_winsys(display->fd);
- // r300 = radeon_create_r300_winsys(display->fd, winsys);
- r300_create_screen(r300);
-
- FREE(winsys);
-
+ winsys = radeon_pipe_winsys(drmFD);
+ r300 = radeon_create_r300_winsys(drmFD, winsys);
+ pScreen = r300_create_screen(r300);
+ memcpy (&(rvl_screen->base), pScreen, sizeof(struct pipe_screen));
+
+ FREE(winsys);
return 0;
}
@@ -148,10 +155,21 @@ struct pipe_context* create_pipe_context(Display *display, int screen)
dri_framebuffer_t dri_framebuf;
dri_context_t *dri_context;
struct radeon_vl_context *rvl_ctx;
+ char *driverName = "/dev/dri/card0";
+ char *deviceName;
+ int drmFD;
assert(display);
+/*
+ if (!DRI2Connect(display, RootWindow(display, screen),
+ &driverName, &deviceName))
+ {
+ return NULL;
+ }
+*/
+ drmFD = open("/dev/dri/card0", O_RDWR );
- radeon_vl_screen_create(display);
+ radeon_vl_screen_create(display, screen, drmFD);
radeon_vl_context_create(dri_context);
rvl_ctx = dri_context->private;