st/xorg: Don't try to remove invalid fbs
authorThomas Hellstrom <thellstrom@vmware.com>
Tue, 12 Oct 2010 09:10:59 +0000 (11:10 +0200)
committerThomas Hellstrom <thellstrom@vmware.com>
Tue, 12 Oct 2010 13:09:05 +0000 (15:09 +0200)
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
src/gallium/state_trackers/xorg/xorg_driver.c

index f7b3ad3505c0640b3c3f591714c4e9bddc8e5f0e..ca745393a9a495254ad83558c88b2de0c53243e1 100644 (file)
@@ -369,6 +369,7 @@ drv_pre_init(ScrnInfoPtr pScrn, int flags)
     ms = modesettingPTR(pScrn);
     ms->pEnt = pEnt;
     ms->cust = cust;
+    ms->fb_id = 1;
 
     pScrn->displayWidth = 640;        /* default it */
 
@@ -864,8 +865,10 @@ drv_leave_vt(int scrnIndex, int flags)
        }
     }
 
-    drmModeRmFB(ms->fd, ms->fb_id);
-    ms->fb_id = -1;
+    if (ms->fb_id != -1) {
+       drmModeRmFB(ms->fd, ms->fb_id);
+       ms->fb_id = -1;
+    }
 
     /* idle hardware */
     if (!ms->kms)
@@ -946,7 +949,6 @@ drv_close_screen(int scrnIndex, ScreenPtr pScreen)
     }
 #endif
 
-    drmModeRmFB(ms->fd, ms->fb_id);
     ms->destroy_front_buffer(pScrn);
 
     if (ms->exa)