Committed.  Thanks!

-Brian


On Sun, Jan 3, 2010 at 8:08 AM, Francis Galiegue <fgalie...@gmail.com> wrote:
> Commit 1677d5c0aebe8edb54aa3236294acede536013f3 (mesa: fix-up blend
> enable/disable code in _mesa_PopAttrib()) changed main/attrib.c to fix
> the blend enable/disable functions, due to changes introduced by commit
> 3728673bd1b974e54858fbab6ff62d3607b0d3f0 (mesa: per-buffer blend enabled 
> flags).
>
> But some DRI drivers (at least r600 and intel) still had problems with
> rendering: some OpenGL screensavers from xscreensaver, for instance, left
> artifacts behind them which wouldn't clear.
>
> As suggested by taiu on Freenode/#radeon, replicate these same fixes into
> drivers/common/meta.c. This indeed fixes the problem.
> ---
>  src/mesa/drivers/common/meta.c |   20 ++++++++++++++------
>  1 files changed, 14 insertions(+), 6 deletions(-)
>
> diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
> index 0676173..8846f35 100644
> --- a/src/mesa/drivers/common/meta.c
> +++ b/src/mesa/drivers/common/meta.c
> @@ -336,9 +336,13 @@ _mesa_meta_begin(GLcontext *ctx, GLbitfield state)
>    if (state & META_BLEND) {
>       save->BlendEnabled = ctx->Color.BlendEnabled;
>       if (ctx->Color.BlendEnabled) {
> -         GLuint i;
> -         for (i = 0; i < ctx->Const.MaxDrawBuffers; i++) {
> -            _mesa_set_enablei(ctx, GL_BLEND, i, GL_FALSE);
> +         if (ctx->Extensions.EXT_draw_buffers2) {
> +            GLuint i;
> +            for (i = 0; i < ctx->Const.MaxDrawBuffers; i++) {
> +               _mesa_set_enablei(ctx, GL_BLEND, i, GL_FALSE);
> +            }
> +         } else {
> +            _mesa_set_enable(ctx, GL_BLEND, GL_FALSE);
>          }
>       }
>       save->ColorLogicOpEnabled = ctx->Color.ColorLogicOpEnabled;
> @@ -572,9 +576,13 @@ _mesa_meta_end(GLcontext *ctx)
>
>    if (state & META_BLEND) {
>       if (ctx->Color.BlendEnabled != save->BlendEnabled) {
> -         GLuint i;
> -         for (i = 0; i < ctx->Const.MaxDrawBuffers; i++) {
> -            _mesa_set_enablei(ctx, GL_BLEND, i, (save->BlendEnabled >> i) & 
> 1);
> +         if (ctx->Extensions.EXT_draw_buffers2) {
> +            GLuint i;
> +            for (i = 0; i < ctx->Const.MaxDrawBuffers; i++) {
> +               _mesa_set_enablei(ctx, GL_BLEND, i, (save->BlendEnabled >> i) 
> & 1);
> +            }
> +         } else {
> +            _mesa_set_enable(ctx, GL_BLEND, (save->BlendEnabled & 1));
>          }
>       }
>       if (ctx->Color.ColorLogicOpEnabled != save->ColorLogicOpEnabled)
> --
> 1.6.6
>
>
> ------------------------------------------------------------------------------
> This SF.Net email is sponsored by the Verizon Developer Community
> Take advantage of Verizon's best-in-class app development support
> A streamlined, 14 day to market process makes app distribution fast and easy
> Join now and get one step closer to millions of Verizon customers
> http://p.sf.net/sfu/verizon-dev2dev
> _______________________________________________
> Mesa3d-dev mailing list
> Mesa3d-dev@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
>

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to