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

Eric Anholt anholt at kemper.freedesktop.org
Fri May 4 21:21:27 UTC 2012


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

Author: Eric Anholt <eric at anholt.net>
Date:   Wed Apr 25 13:19:28 2012 -0700

i965: Add support for GL_ARB_draw_buffers_blend.

Tested with piglit fbo-draw-buffers-blend and intel oglconform.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 docs/GL3.txt                                  |    2 +-
 src/mesa/drivers/dri/i965/gen6_cc.c           |   12 ++++++------
 src/mesa/drivers/dri/intel/intel_extensions.c |    4 ++++
 3 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/docs/GL3.txt b/docs/GL3.txt
index 0a860bb..5fc6c69 100644
--- a/docs/GL3.txt
+++ b/docs/GL3.txt
@@ -88,7 +88,7 @@ GL 4.0:
 
 GLSL 4.0                                             not started
 GL_ARB_texture_query_lod                             not started
-GL_ARB_draw_buffers_blend                            DONE (r600, softpipe)
+GL_ARB_draw_buffers_blend                            DONE (i965, r600, softpipe)
 GL_ARB_draw_indirect                                 not started
 GL_ARB_gpu_shader_fp64                               not started
 GL_ARB_sample_shading                                not started
diff --git a/src/mesa/drivers/dri/i965/gen6_cc.c b/src/mesa/drivers/dri/i965/gen6_cc.c
index 8a805fa..b4c5329 100644
--- a/src/mesa/drivers/dri/i965/gen6_cc.c
+++ b/src/mesa/drivers/dri/i965/gen6_cc.c
@@ -92,12 +92,12 @@ gen6_upload_blend_state(struct brw_context *brw)
 	       intel_translate_logic_op(ctx->Color.LogicOp);
 	 }
       } else if (ctx->Color.BlendEnabled & (1 << b) && !integer) {
-	 GLenum eqRGB = ctx->Color.Blend[0].EquationRGB;
-	 GLenum eqA = ctx->Color.Blend[0].EquationA;
-	 GLenum srcRGB = ctx->Color.Blend[0].SrcRGB;
-	 GLenum dstRGB = ctx->Color.Blend[0].DstRGB;
-	 GLenum srcA = ctx->Color.Blend[0].SrcA;
-	 GLenum dstA = ctx->Color.Blend[0].DstA;
+	 GLenum eqRGB = ctx->Color.Blend[b].EquationRGB;
+	 GLenum eqA = ctx->Color.Blend[b].EquationA;
+	 GLenum srcRGB = ctx->Color.Blend[b].SrcRGB;
+	 GLenum dstRGB = ctx->Color.Blend[b].DstRGB;
+	 GLenum srcA = ctx->Color.Blend[b].SrcA;
+	 GLenum dstA = ctx->Color.Blend[b].DstA;
 
 	 if (eqRGB == GL_MIN || eqRGB == GL_MAX) {
 	    srcRGB = dstRGB = GL_ONE;
diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c b/src/mesa/drivers/dri/intel/intel_extensions.c
index a50ab77..d4713c9 100644
--- a/src/mesa/drivers/dri/intel/intel_extensions.c
+++ b/src/mesa/drivers/dri/intel/intel_extensions.c
@@ -100,6 +100,10 @@ intelInitExtensions(struct gl_context *ctx)
        (intel->gen == 7 && intel->intelScreen->kernel_has_gen7_sol_reset))
       ctx->Extensions.EXT_transform_feedback = true;
 
+   if (intel->gen >= 6) {
+      ctx->Extensions.ARB_draw_buffers_blend = true;
+   }
+
    if (intel->gen >= 5)
       ctx->Extensions.EXT_timer_query = true;
 




More information about the mesa-commit mailing list