summaryrefslogtreecommitdiff
path: root/src/gallium/winsys/drm/radeon/radeon_r300.c
diff options
context:
space:
mode:
authorCorbin Simpson <MostAwesomeDude@gmail.com>2009-03-03 21:14:33 -0800
committerCorbin Simpson <MostAwesomeDude@gmail.com>2009-03-03 22:16:24 -0800
commit9e67b0a1745e50fe34efedb0a3191b4a27e10724 (patch)
tree8179c969551ccc59b0402bd4ac8d558fb43734d2 /src/gallium/winsys/drm/radeon/radeon_r300.c
parenta255472ee789d13c07174e385c7d40f965916e7b (diff)
r300-gallium, radeon-gallium: Begin migration to DRI2 state tracker, part 1.
s/migration/migrane/ , actually. Anyway, this has working glxinfo...
Diffstat (limited to 'src/gallium/winsys/drm/radeon/radeon_r300.c')
-rw-r--r--src/gallium/winsys/drm/radeon/radeon_r300.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gallium/winsys/drm/radeon/radeon_r300.c b/src/gallium/winsys/drm/radeon/radeon_r300.c
index 8fe2375e34..e9b96b1ee9 100644
--- a/src/gallium/winsys/drm/radeon/radeon_r300.c
+++ b/src/gallium/winsys/drm/radeon/radeon_r300.c
@@ -75,14 +75,16 @@ static void do_ioctls(struct r300_winsys* winsys, int fd)
}
-struct r300_winsys* radeon_create_r300_winsys(int fd)
+struct r300_winsys* radeon_create_r300_winsys(int fd, struct pipe_winsys* old_winsys)
{
- struct r300_winsys* winsys = calloc(1, sizeof(struct r300_winsys));
+ struct r300_winsys* winsys = CALLOC_STRUCT(r300_winsys);
do_ioctls(winsys, fd);
+ struct radeon_bo_manager* bom = radeon_bo_manager_gem_ctor(fd);
struct radeon_cs_manager* csm = radeon_cs_manager_gem_ctor(fd);
+ winsys->radeon_winsys = bom;
winsys->cs = radeon_cs_create(csm, 1024 * 64 / 4);
winsys->check_cs = radeon_r300_check_cs;
@@ -92,5 +94,7 @@ struct r300_winsys* radeon_create_r300_winsys(int fd)
winsys->end_cs = radeon_cs_end;
winsys->flush_cs = radeon_r300_flush_cs;
+ winsys->base = *old_winsys;
+
return winsys;
}