Mesa (master): radeon: only init surface manage on r600

Dave Airlie airlied at kemper.freedesktop.org
Tue Feb 7 14:20:26 UTC 2012


Module: Mesa
Branch: master
Commit: ff60bd80582176f42166b3df27df41fbbf429449
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ff60bd80582176f42166b3df27df41fbbf429449

Author: Dave Airlie <airlied at redhat.com>
Date:   Tue Feb  7 14:19:28 2012 +0000

radeon: only init surface manage on r600

r300 fails to init the manager and then fails to init.

Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 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 dbec259..0c83c68 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;




More information about the mesa-commit mailing list