diff options
Diffstat (limited to 'src/mesa/drivers')
| -rw-r--r-- | src/mesa/drivers/dri/i915/intel_pixel.c | 18 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/i915tex/intel_pixel_draw.c | 14 | 
2 files changed, 28 insertions, 4 deletions
| diff --git a/src/mesa/drivers/dri/i915/intel_pixel.c b/src/mesa/drivers/dri/i915/intel_pixel.c index 535cbfcb26..a52a81bf13 100644 --- a/src/mesa/drivers/dri/i915/intel_pixel.c +++ b/src/mesa/drivers/dri/i915/intel_pixel.c @@ -440,9 +440,21 @@ intelDrawPixels( GLcontext *ctx,        fprintf(stderr, "%s\n", __FUNCTION__);     if (!intelTryDrawPixels( ctx, x, y, width, height, format, type, -                            unpack, pixels )) -      _swrast_DrawPixels( ctx, x, y, width, height, format, type, -			  unpack, pixels ); +                            unpack, pixels )) { +      if (ctx->FragmentProgram._Current ==  +          ctx->FragmentProgram._TexEnvProgram) { +         /* don't want the i915 texenv program to be applied to DrawPixels */ +         struct gl_fragment_program *fpSave = ctx->FragmentProgram._Current; +         ctx->FragmentProgram._Current = NULL; +         _swrast_DrawPixels( ctx, x, y, width, height, format, type, +                             unpack, pixels ); +         ctx->FragmentProgram._Current = fpSave; +      } +      else { +         _swrast_DrawPixels( ctx, x, y, width, height, format, type, +                             unpack, pixels ); +      } +   }  } diff --git a/src/mesa/drivers/dri/i915tex/intel_pixel_draw.c b/src/mesa/drivers/dri/i915tex/intel_pixel_draw.c index 10a079896a..46480da1b1 100644 --- a/src/mesa/drivers/dri/i915tex/intel_pixel_draw.c +++ b/src/mesa/drivers/dri/i915tex/intel_pixel_draw.c @@ -363,5 +363,17 @@ intelDrawPixels(GLcontext * ctx,     if (INTEL_DEBUG & DEBUG_PIXEL)        _mesa_printf("%s: fallback to swrast\n", __FUNCTION__); -   _swrast_DrawPixels(ctx, x, y, width, height, format, type, unpack, pixels); +   if (ctx->FragmentProgram._Current ==  +       ctx->FragmentProgram._TexEnvProgram) { +      /* don't want the i915 texenv program to be applied to DrawPixels */ +      struct gl_fragment_program *fpSave = ctx->FragmentProgram._Current; +      ctx->FragmentProgram._Current = NULL; +      _swrast_DrawPixels( ctx, x, y, width, height, format, type, +                          unpack, pixels ); +      ctx->FragmentProgram._Current = fpSave; +   } +   else { +      _swrast_DrawPixels( ctx, x, y, width, height, format, type, +                          unpack, pixels ); +   }  } | 
