diff options
author | Eric Anholt <[email protected]> | 2012-04-25 13:19:28 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2012-05-04 14:00:32 -0700 |
commit | b7932e183c15a224adc4b04835f82f3c867a4a24 (patch) | |
tree | 1f1694d4aaf249eaee4467e42e1098467d1baf78 | |
parent | 9ef549d7cd9aa14ab7c404609f38e2e6195b4335 (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.txt | 2 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/gen6_cc.c | 12 | ||||
-rw-r--r-- | 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 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; |