st/mesa: replace assertion w/ conditional in framebuffer invalidation
authorBrian Paul <brianp@vmware.com>
Tue, 5 Oct 2010 20:32:59 +0000 (14:32 -0600)
committerBrian Paul <brianp@vmware.com>
Tue, 5 Oct 2010 20:33:17 +0000 (14:33 -0600)
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

index 66e32b4c9e873673c57cc3a17169447d09d30d0f..cd418a036619c79cde10a441b684f3fe7f222c92 100644 (file)
@@ -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