diff options
| -rw-r--r-- | src/mesa/drivers/x11/xm_buffer.c | 12 | 
1 files changed, 12 insertions, 0 deletions
| diff --git a/src/mesa/drivers/x11/xm_buffer.c b/src/mesa/drivers/x11/xm_buffer.c index a358ec25ae..747971a6c3 100644 --- a/src/mesa/drivers/x11/xm_buffer.c +++ b/src/mesa/drivers/x11/xm_buffer.c @@ -418,6 +418,18 @@ xmesa_delete_framebuffer(struct gl_framebuffer *fb)        XMesaDestroyImage( b->rowimage );     } +   /* Note that XMesaBuffer renderbuffers normally have a refcount of 2 +    * (creation + binding) so we need to explicitly delete/unbind them here. +    */ +   if (b->frontxrb) { +      _mesa_unreference_renderbuffer((struct gl_renderbuffer **) &b->frontxrb); +      ASSERT(b->frontxrb == NULL); +   } +   if (b->backxrb) { +      _mesa_unreference_renderbuffer((struct gl_renderbuffer **) &b->backxrb); +      ASSERT(b->backxrb == NULL); +   } +     _mesa_free_framebuffer_data(fb);     _mesa_free(fb);  } | 
