Mesa (master): i965: Add support for EXT_draw_buffers2.

Eric Anholt anholt at kemper.freedesktop.org
Tue Jan 26 22:57:36 UTC 2010


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

Author: Eric Anholt <eric at anholt.net>
Date:   Tue Jan 26 14:43:23 2010 -0800

i965: Add support for EXT_draw_buffers2.

---

 docs/relnotes-7.8.html                           |    2 +-
 src/mesa/drivers/dri/i965/brw_wm_surface_state.c |    4 ++--
 src/mesa/drivers/dri/intel/intel_extensions.c    |    2 ++
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/docs/relnotes-7.8.html b/docs/relnotes-7.8.html
index 4fcc491..6511d61 100644
--- a/docs/relnotes-7.8.html
+++ b/docs/relnotes-7.8.html
@@ -35,7 +35,7 @@ tbd
 <h2>New features</h2>
 <ul>
 <li>GL_NV_conditional_render extension (swrast driver only)
-<li>GL_EXT_draw_buffers2 extension (swrast driver only)
+<li>GL_EXT_draw_buffers2 extension (swrast and i965 driver only)
 <li>Much improved support for <a href="egl.html">EGL in Mesa</a>
 <li>New state trackers for <a href="opengles.html">OpenGL ES 1.1 and 2.0</a>
 </ul>
diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
index 357c8c9..1db438a 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
@@ -577,7 +577,7 @@ brw_update_renderbuffer_surface(struct brw_context *brw,
       key.draw_y = 0;
    }
    /* _NEW_COLOR */
-   memcpy(key.color_mask, ctx->Color.ColorMask[0],
+   memcpy(key.color_mask, ctx->Color.ColorMask[unit],
 	  sizeof(key.color_mask));
 
    /* As mentioned above, disable writes to the alpha component when the
@@ -587,7 +587,7 @@ brw_update_renderbuffer_surface(struct brw_context *brw,
      key.color_mask[3] = GL_FALSE;
 
    key.color_blend = (!ctx->Color._LogicOpEnabled &&
-		      ctx->Color.BlendEnabled);
+		      (ctx->Color.BlendEnabled & (1 << unit)));
 
    dri_bo_unreference(brw->wm.surf_bo[unit]);
    brw->wm.surf_bo[unit] = brw_search_cache(&brw->surface_cache,
diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c b/src/mesa/drivers/dri/intel/intel_extensions.c
index 6fdd22b..84c8d01 100644
--- a/src/mesa/drivers/dri/intel/intel_extensions.c
+++ b/src/mesa/drivers/dri/intel/intel_extensions.c
@@ -48,6 +48,7 @@
 #define need_GL_EXT_blend_func_separate
 #define need_GL_EXT_blend_minmax
 #define need_GL_EXT_cull_vertex
+#define need_GL_EXT_draw_buffers2
 #define need_GL_EXT_fog_coord
 #define need_GL_EXT_framebuffer_object
 #define need_GL_EXT_framebuffer_blit
@@ -161,6 +162,7 @@ static const struct dri_extension brw_extensions[] = {
    { "GL_ARB_shadow",                     NULL },
    { "GL_MESA_texture_signed_rgba",       NULL },
    { "GL_ARB_texture_non_power_of_two",   NULL },
+   { "GL_EXT_draw_buffers2",              GL_EXT_draw_buffers2_functions },
    { "GL_EXT_shadow_funcs",               NULL },
    { "GL_EXT_stencil_two_side",           GL_EXT_stencil_two_side_functions },
    { "GL_EXT_texture_sRGB",		  NULL },




More information about the mesa-commit mailing list