summaryrefslogtreecommitdiff
path: root/src/gallium/winsys/drm/radeon/core/radeon_buffer.c
diff options
context:
space:
mode:
authorCorbin Simpson <MostAwesomeDude@gmail.com>2009-03-10 01:52:02 -0700
committerCorbin Simpson <MostAwesomeDude@gmail.com>2009-03-10 01:52:02 -0700
commitfdfde00cd8e1465a214062e38b715787919de6e5 (patch)
treeec754546d88eeaa772c1584b5517374c5af9dd51 /src/gallium/winsys/drm/radeon/core/radeon_buffer.c
parent8dbe4f0c356edacf479ceed106f68fa79f1668ed (diff)
radeon-gallium: Unbreak RADEON_SOFTPIPE.
And there was much rejoicing.
Diffstat (limited to 'src/gallium/winsys/drm/radeon/core/radeon_buffer.c')
-rw-r--r--src/gallium/winsys/drm/radeon/core/radeon_buffer.c30
1 files changed, 17 insertions, 13 deletions
diff --git a/src/gallium/winsys/drm/radeon/core/radeon_buffer.c b/src/gallium/winsys/drm/radeon/core/radeon_buffer.c
index f75e3881cb..483cbc13dc 100644
--- a/src/gallium/winsys/drm/radeon/core/radeon_buffer.c
+++ b/src/gallium/winsys/drm/radeon/core/radeon_buffer.c
@@ -154,28 +154,32 @@ static void radeon_flush_frontbuffer(struct pipe_winsys *pipe_winsys,
/* TODO: call dri2CopyRegion */
}
-struct pipe_winsys *radeon_pipe_winsys()
+struct pipe_winsys* radeon_pipe_winsys(int fd)
{
- struct pipe_winsys *radeon_ws;
+ struct radeon_winsys* radeon_ws;
+ struct radeon_bo_manager* bom;
- radeon_ws = CALLOC_STRUCT(pipe_winsys);
+ radeon_ws = CALLOC_STRUCT(radeon_winsys);
if (radeon_ws == NULL) {
return NULL;
}
- radeon_ws->flush_frontbuffer = radeon_flush_frontbuffer;
+ bom = radeon_bo_manager_gem_ctor(fd);
+ radeon_ws->bom = bom;
- radeon_ws->buffer_create = radeon_buffer_create;
- radeon_ws->buffer_destroy = radeon_buffer_del;
- radeon_ws->user_buffer_create = radeon_buffer_user_create;
- radeon_ws->buffer_map = radeon_buffer_map;
- radeon_ws->buffer_unmap = radeon_buffer_unmap;
+ radeon_ws->base.flush_frontbuffer = radeon_flush_frontbuffer;
- radeon_ws->fence_reference = radeon_fence_reference;
- radeon_ws->fence_signalled = radeon_fence_signalled;
- radeon_ws->fence_finish = radeon_fence_finish;
+ radeon_ws->base.buffer_create = radeon_buffer_create;
+ radeon_ws->base.buffer_destroy = radeon_buffer_del;
+ radeon_ws->base.user_buffer_create = radeon_buffer_user_create;
+ radeon_ws->base.buffer_map = radeon_buffer_map;
+ radeon_ws->base.buffer_unmap = radeon_buffer_unmap;
- radeon_ws->get_name = radeon_get_name;
+ radeon_ws->base.fence_reference = radeon_fence_reference;
+ radeon_ws->base.fence_signalled = radeon_fence_signalled;
+ radeon_ws->base.fence_finish = radeon_fence_finish;
+
+ radeon_ws->base.get_name = radeon_get_name;
return radeon_ws;
}