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

Author: Dave Airlie <[email protected]>
Date:   Wed Nov 25 20:23:22 2009 +1000

radeon: fix context destroy needing lock for flushing.

Thanks to Intel code which I've just stolen pretty much as usual.

This fixes fdo bug 22851 which is a dri1 regression since rewrite.

Tested by: fpiobaf (Fabio) on #radeon
Signed-off-by: Dave Airlie <[email protected]>

---

 src/mesa/drivers/dri/radeon/radeon_lock.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/mesa/drivers/dri/radeon/radeon_lock.c 
b/src/mesa/drivers/dri/radeon/radeon_lock.c
index 02de8e5..7ad781b 100644
--- a/src/mesa/drivers/dri/radeon/radeon_lock.c
+++ b/src/mesa/drivers/dri/radeon/radeon_lock.c
@@ -62,8 +62,6 @@ void radeonGetLock(radeonContextPtr rmesa, GLuint flags)
        __DRIdrawablePrivate *const readable = radeon_get_readable(rmesa);
        __DRIscreenPrivate *sPriv = rmesa->dri.screen;
 
-       assert(drawable != NULL);
-
        drmGetLock(rmesa->dri.fd, rmesa->dri.hwContext, flags);
 
        /* The window might have moved, so we might need to get new clip
@@ -74,12 +72,13 @@ void radeonGetLock(radeonContextPtr rmesa, GLuint flags)
         * Since the hardware state depends on having the latest drawable
         * clip rects, all state checking must be done _after_ this call.
         */
-       DRI_VALIDATE_DRAWABLE_INFO(sPriv, drawable);
-       if (drawable != readable) {
+       if (drawable)
+               DRI_VALIDATE_DRAWABLE_INFO(sPriv, drawable);
+       if (readable && drawable != readable) {
                DRI_VALIDATE_DRAWABLE_INFO(sPriv, readable);
        }
 
-       if (rmesa->lastStamp != drawable->lastStamp) {
+       if (drawable && (rmesa->lastStamp != drawable->lastStamp)) {
                radeon_window_moved(rmesa);
                rmesa->lastStamp = drawable->lastStamp;
        }

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to