diff options
author | Cooper Yuan <cooperyuan@gmail.com> | 2009-09-23 18:01:11 +0800 |
---|---|---|
committer | Cooper Yuan <cooperyuan@gmail.com> | 2009-09-23 18:01:11 +0800 |
commit | 443c4952b5c4d0c37c15fe2f0ba76fb23ada057a (patch) | |
tree | 3f23255ce777891835083cb22334b8e15dbdde15 | |
parent | 4e21acae9c4f23c6b1e4a1b4f897d771a5c8c752 (diff) |
xvmc: refine libradeon_vl.so Makefile
-rw-r--r-- | src/gallium/winsys/g3dvl/radeon/Makefile | 10 | ||||
-rw-r--r-- | src/gallium/winsys/g3dvl/radeon/radeon_vl.c | 38 |
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; |