summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_pipe.c
diff options
context:
space:
mode:
authorMarek Olšák <maraeo@gmail.com>2011-08-02 20:25:13 +0200
committerMarek Olšák <maraeo@gmail.com>2011-08-16 09:15:10 +0200
commit2ce783d8ddec1b1fcadc0798af0ebb045bba1cc4 (patch)
tree155806fae29db972c4aafcc98c922cf946c401fa /src/gallium/drivers/r600/r600_pipe.c
parent354f76f386afd980e8c1564c0b0502f9768007b5 (diff)
downloadexternal_mesa3d-2ce783d8ddec1b1fcadc0798af0ebb045bba1cc4.zip
external_mesa3d-2ce783d8ddec1b1fcadc0798af0ebb045bba1cc4.tar.gz
external_mesa3d-2ce783d8ddec1b1fcadc0798af0ebb045bba1cc4.tar.bz2
r600g: put radeon_winsys in screen::winsys, don't include drm_driver in the pipe
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'src/gallium/drivers/r600/r600_pipe.c')
-rw-r--r--src/gallium/drivers/r600/r600_pipe.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c
index 6181e8b..8a18207 100644
--- a/src/gallium/drivers/r600/r600_pipe.c
+++ b/src/gallium/drivers/r600/r600_pipe.c
@@ -500,7 +500,8 @@ static void r600_destroy_screen(struct pipe_screen* pscreen)
if (rscreen == NULL)
return;
- radeon_decref(rscreen->radeon);
+ radeon_destroy(rscreen->radeon);
+ rscreen->ws->destroy(rscreen->ws);
util_slab_destroy(&rscreen->pool_buffers);
pipe_mutex_destroy(rscreen->mutex_num_contexts);
@@ -564,18 +565,19 @@ static boolean r600_fence_finish(struct pipe_screen *pscreen,
return TRUE;
}
-struct pipe_screen *r600_screen_create(struct radeon_winsys *rw)
+struct pipe_screen *r600_screen_create(struct radeon_winsys *ws)
{
struct r600_screen *rscreen;
- struct radeon *radeon = r600_drm_winsys_create(rw);
+ struct radeon *radeon = radeon_create(ws);
rscreen = CALLOC_STRUCT(r600_screen);
if (rscreen == NULL) {
return NULL;
}
+ rscreen->ws = ws;
rscreen->radeon = radeon;
- rscreen->screen.winsys = (struct pipe_winsys*)radeon;
+ rscreen->screen.winsys = (struct pipe_winsys*)ws;
rscreen->screen.destroy = r600_destroy_screen;
rscreen->screen.get_name = r600_get_name;
rscreen->screen.get_vendor = r600_get_vendor;