diff options
author | Dave Airlie <airlied@redhat.com> | 2012-02-07 14:19:28 +0000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-02-07 14:20:09 +0000 |
commit | ff60bd80582176f42166b3df27df41fbbf429449 (patch) | |
tree | 8b5fcb99f0a57149c25fcd7b39fcca7337093d1b | |
parent | 2470e918cc29e5d057a28551ce9c15e7d83fab7e (diff) |
radeon: only init surface manage on r600
r300 fails to init the manager and then fails to init.
Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r-- | src/gallium/winsys/radeon/drm/radeon_drm_winsys.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c index dbec259d7f3..0c83c68afa9 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c +++ b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c @@ -302,7 +302,9 @@ static void radeon_winsys_destroy(struct radeon_winsys *rws) ws->cman->destroy(ws->cman); ws->kman->destroy(ws->kman); - radeon_surface_manager_free(ws->surf_man); + if (ws->gen == R600) { + radeon_surface_manager_free(ws->surf_man); + } FREE(rws); } @@ -377,9 +379,11 @@ struct radeon_winsys *radeon_drm_winsys_create(int fd) goto fail; /* FIXME check for libdrm version ?? */ - ws->surf_man = radeon_surface_manager_new(fd); - if (!ws->surf_man) - goto fail; + if (ws->gen == R600) { + ws->surf_man = radeon_surface_manager_new(fd); + if (!ws->surf_man) + goto fail; + } /* Set functions. */ ws->base.destroy = radeon_winsys_destroy; |