summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2012-04-25 13:19:28 -0700
committerEric Anholt <[email protected]>2012-05-04 14:00:32 -0700
commitb7932e183c15a224adc4b04835f82f3c867a4a24 (patch)
tree1f1694d4aaf249eaee4467e42e1098467d1baf78
parent9ef549d7cd9aa14ab7c404609f38e2e6195b4335 (diff)
i965: Add support for GL_ARB_draw_buffers_blend.
Tested with piglit fbo-draw-buffers-blend and intel oglconform. Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r--docs/GL3.txt2
-rw-r--r--src/mesa/drivers/dri/i965/gen6_cc.c12
-rw-r--r--src/mesa/drivers/dri/intel/intel_extensions.c4
3 files changed, 11 insertions, 7 deletions
diff --git a/docs/GL3.txt b/docs/GL3.txt
index 0a860bb3c1d..5fc6c69ba4b 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 8a805fa6d77..b4c5329772f 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 a50ab777e9b..d4713c98589 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;