Mesa (master): st/mesa: replace assertion w/ conditional in framebuffer invalidation

Brian Paul brianp at kemper.freedesktop.org
Tue Oct 5 20:34:06 UTC 2010


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

Author: Brian Paul <brianp at vmware.com>
Date:   Tue Oct  5 14:32:59 2010 -0600

st/mesa: replace assertion w/ conditional in framebuffer invalidation

https://bugs.freedesktop.org/show_bug.cgi?id=30632

NOTE: this is a candidate for the 7.9 branch.

---

 src/mesa/state_tracker/st_manager.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c
index 66e32b4..cd418a0 100644
--- a/src/mesa/state_tracker/st_manager.c
+++ b/src/mesa/state_tracker/st_manager.c
@@ -486,9 +486,18 @@ st_context_notify_invalid_framebuffer(struct st_context_iface *stctxi,
    stfb = st_ws_framebuffer(st->ctx->WinSysDrawBuffer);
    if (!stfb || stfb->iface != stfbi)
       stfb = st_ws_framebuffer(st->ctx->WinSysReadBuffer);
-   assert(stfb && stfb->iface == stfbi);
 
-   p_atomic_set(&stfb->revalidate, TRUE);
+   if (stfb && stfb->iface == stfbi) {
+      p_atomic_set(&stfb->revalidate, TRUE);
+   }
+   else {
+      /* This function is probably getting called when we've detected a
+       * change in a window's size but the currently bound context is
+       * not bound to that window.
+       * If the st_framebuffer_iface structure had a pointer to the
+       * corresponding st_framebuffer we'd be able to handle this.
+       */
+   }
 }
 
 static void




More information about the mesa-commit mailing list