fix GLX server resize/crash when resizing windows
diff --git a/src/mesa/drivers/x11/xm_dd.c b/src/mesa/drivers/x11/xm_dd.c
index 0bafad8..d0016b8 100644
--- a/src/mesa/drivers/x11/xm_dd.c
+++ b/src/mesa/drivers/x11/xm_dd.c
@@ -1108,7 +1108,6 @@
get_buffer_size(fb, &newWidth, &newHeight);
if (newWidth != fb->Width || newHeight != fb->Height) {
xmesa_resize_buffers(ctx, fb, newWidth, newHeight);
- ctx->NewState |= _NEW_BUFFERS; /* to update scissor / window bounds */
}
if (ctx->WinSysReadBuffer != ctx->WinSysDrawBuffer) {
diff --git a/src/mesa/main/framebuffer.c b/src/mesa/main/framebuffer.c
index 479f762..f2993b1 100644
--- a/src/mesa/main/framebuffer.c
+++ b/src/mesa/main/framebuffer.c
@@ -224,6 +224,9 @@
fb->Width = width;
fb->Height = height;
+
+ /* to update scissor / window bounds */
+ ctx->NewState |= _NEW_BUFFERS;
}
diff --git a/src/mesa/main/state.c b/src/mesa/main/state.c
index 244cb485..6ade223 100644
--- a/src/mesa/main/state.c
+++ b/src/mesa/main/state.c
@@ -984,7 +984,7 @@
if (new_state & (_NEW_BUFFERS | _NEW_COLOR | _NEW_PIXEL))
_mesa_update_framebuffer(ctx);
- if (new_state & (_NEW_SCISSOR|_NEW_BUFFERS))
+ if (new_state & (_NEW_SCISSOR | _NEW_BUFFERS | _NEW_VIEWPORT))
_mesa_update_draw_buffer_bounds( ctx );
if (new_state & _NEW_POINT)