Hello,
On Sat Nov 27 22:47:59 2004 UTC, there was a big commit into Mesa CVS by
brianp, with the following comment:
> Remove _mesa_ResizeBuffersMESA() call from _mesa_set_viewport().
> Now, the driver's Viewport routine should call _mesa_ResizeBuffersMESA()
> if necessary.
The r200 driver fails to do that. Thls leads e.g. to the buildings outside
the bottom-left 800x600 rectangle disappearing in bzflag, and screenshots
showing only that rectangle. The fix (stolen from the "radeon" directory)
is attached, please apply.
Unfortunately, I can't test anything except r200, but please check the
"i915" and "x11" directories for the same type of a bug.
--
Alexander E. Patrakov
diff -ur Mesa.orig/src/mesa/drivers/dri/r200/r200_state.c Mesa/src/mesa/drivers/dri/r200/r200_state.c
--- Mesa.orig/src/mesa/drivers/dri/r200/r200_state.c 2005-02-08 16:30:32.000000000 +0500
+++ Mesa/src/mesa/drivers/dri/r200/r200_state.c 2005-02-08 16:34:41.000000000 +0500
@@ -40,6 +40,7 @@
#include "enums.h"
#include "colormac.h"
#include "light.h"
+#include "buffers.h"
#include "swrast/swrast.h"
#include "array_cache/acache.h"
@@ -1631,6 +1632,8 @@
static void r200Viewport( GLcontext *ctx, GLint x, GLint y,
GLsizei width, GLsizei height )
{
+ /* update size of Mesa/software ancillary buffers */
+ _mesa_ResizeBuffersMESA();
/* Don't pipeline viewport changes, conflict with window offset
* setting below. Could apply deltas to rescue pipelined viewport
* values, or keep the originals hanging around.