From f863e7268e30619e38aaa777efe3f05b57fb6623 Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Thu, 4 Aug 2011 11:20:45 +0200 Subject: [PATCH] intel: Set ctx's drawbuffer according to drawables visual Fixes https://bugs.freedesktop.org/show_bug.cgi?id=39588 egl_dri2 creates contexts with a doubleBufferConfig when PIXMAP and WINDOW bit is request, so _mesa_init_color sets DrawBuffer[0] to GL_BACK. If a pixmap surface is created egl_dri2 will use a single buffer config, so MakeCurrent has to adjust DrawBuffer[0] to the current drawable. --- 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 fe8be08..0eeffc0 100644 --- a/src/mesa/drivers/dri/intel/intel_context.c +++ b/src/mesa/drivers/dri/intel/intel_context.c @@ -970,6 +970,12 @@ intelMakeCurrent(__DRIcontext * driContextPriv, readFb = driReadPriv->driverPrivate; driContextPriv->dri2.draw_stamp = driDrawPriv->dri2.stamp - 1; driContextPriv->dri2.read_stamp = driReadPriv->dri2.stamp - 1; + + if (fb->Visual.doubleBufferMode) { + intel->ctx.Color.DrawBuffer[0] = GL_BACK; + } else { + intel->ctx.Color.DrawBuffer[0] = GL_FRONT; + } } intel_prepare_render(intel); -- 1.7.3.4