Mesa (master): intel: Call intel_draw_buffer() again after _mesa_make_current()

Kristian Høgsberg krh at kemper.freedesktop.org
Mon May 17 20:52:42 UTC 2010


Module: Mesa
Branch: master
Commit: 2386d41648d78925b139aea9562325c5b22007eb
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2386d41648d78925b139aea9562325c5b22007eb

Author: Kristian Høgsberg <krh at bitplanet.net>
Date:   Mon May 17 16:49:55 2010 -0400

intel: Call intel_draw_buffer() again after _mesa_make_current()

The initial call to intel_draw_buffers() happens when
intel->ctx.DrawBuffer is still NULL.  Call it again after
calling _mesa_make_current().

https://bugs.freedesktop.org/show_bug.cgi?id=28112

---

 src/mesa/drivers/dri/intel/intel_context.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c
index 150f4b3..e714e2e 100644
--- a/src/mesa/drivers/dri/intel/intel_context.c
+++ b/src/mesa/drivers/dri/intel/intel_context.c
@@ -906,6 +906,12 @@ intelMakeCurrent(__DRIcontext * driContextPriv,
       driContextPriv->dri2.read_stamp = driReadPriv->dri2.stamp - 1;
       intel_prepare_render(intel);
       _mesa_make_current(&intel->ctx, fb, readFb);
+
+      /* We do this in intel_prepare_render() too, but intel->ctx.DrawBuffer
+       * is NULL at that point.  We can't call _mesa_makecurrent()
+       * first, since we need the buffer size for the initial
+       * viewport.  So just call intel_draw_buffer() again here. */
+      intel_draw_buffer(&intel->ctx, intel->ctx.DrawBuffer);
    }
    else {
       _mesa_make_current(NULL, NULL, NULL);




More information about the mesa-commit mailing list