i915g: make set_framebuffer_state more robust
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Sun, 6 Mar 2011 10:44:06 +0000 (11:44 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 10 Mar 2011 22:04:19 +0000 (23:04 +0100)
u_blitter is lazy and doesn't fully clear it's stack-allocated fb.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
src/gallium/drivers/i915/i915_state.c

index 58bbbd1..a694649 100644 (file)
@@ -642,7 +642,8 @@ static void i915_set_framebuffer_state(struct pipe_context *pipe,
    i915->framebuffer.height = fb->height;
    i915->framebuffer.nr_cbufs = fb->nr_cbufs;
    for (i = 0; i < PIPE_MAX_COLOR_BUFS; i++) {
-      pipe_surface_reference(&i915->framebuffer.cbufs[i], fb->cbufs[i]);
+      pipe_surface_reference(&i915->framebuffer.cbufs[i],
+                             i < fb->nr_cbufs ? fb->cbufs[i] : NULL);
    }
    pipe_surface_reference(&i915->framebuffer.zsbuf, fb->zsbuf);