diff options
| author | Eric Anholt <eric@anholt.net> | 2008-06-24 11:34:42 -0700 | 
|---|---|---|
| committer | Eric Anholt <eric@anholt.net> | 2008-06-24 11:34:42 -0700 | 
| commit | f23adc504d8202bbcc78121567a61c0b24819422 (patch) | |
| tree | e0aeb3d3a3dd4089922df3806ecbca1527a5ce3a | |
| parent | 90d33edf37d12495fcfb4876d1048f3ed5df2b9b (diff) | |
intel: Merge check_blit_fragment_ops between i915/i965.
Both had some useful bits for the other.
| -rw-r--r-- | src/mesa/drivers/dri/i965/Makefile | 1 | ||||
| l--------- | src/mesa/drivers/dri/i965/intel_pixel.c | 1 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/i965/intel_pixel_copy.c | 28 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/intel/intel_pixel.c | 7 | 
4 files changed, 9 insertions, 28 deletions
| diff --git a/src/mesa/drivers/dri/i965/Makefile b/src/mesa/drivers/dri/i965/Makefile index d46b3428f5..c561b744d1 100644 --- a/src/mesa/drivers/dri/i965/Makefile +++ b/src/mesa/drivers/dri/i965/Makefile @@ -19,6 +19,7 @@ DRIVER_SOURCES = \  	intel_regions.c \  	intel_screen.c \  	intel_span.c \ +	intel_pixel.c \  	intel_pixel_copy.c \  	intel_pixel_bitmap.c \  	intel_state.c \ diff --git a/src/mesa/drivers/dri/i965/intel_pixel.c b/src/mesa/drivers/dri/i965/intel_pixel.c new file mode 120000 index 0000000000..d733c5e874 --- /dev/null +++ b/src/mesa/drivers/dri/i965/intel_pixel.c @@ -0,0 +1 @@ +../intel/intel_pixel.c
\ No newline at end of file diff --git a/src/mesa/drivers/dri/i965/intel_pixel_copy.c b/src/mesa/drivers/dri/i965/intel_pixel_copy.c index 2f9c621dae..5725dff3ef 100644 --- a/src/mesa/drivers/dri/i965/intel_pixel_copy.c +++ b/src/mesa/drivers/dri/i965/intel_pixel_copy.c @@ -70,34 +70,6 @@ copypix_src_region(struct intel_context *intel, GLenum type)     return NULL;  } - - - -/** - * Check if any fragment operations are in effect which might effect - * glDraw/CopyPixels. - */ -GLboolean -intel_check_blit_fragment_ops(GLcontext * ctx) -{ -   if (ctx->NewState) -      _mesa_update_state(ctx); - -   return !(ctx->_ImageTransferState || -	    ctx->RenderMode != GL_RENDER || -            ctx->Color.AlphaEnabled || -            ctx->Depth.Test || -            ctx->Fog.Enabled || -            ctx->Stencil.Enabled || -            !ctx->Color.ColorMask[0] || -            !ctx->Color.ColorMask[1] || -            !ctx->Color.ColorMask[2] || -            !ctx->Color.ColorMask[3] ||	/* can do this! */ -            ctx->Texture._EnabledUnits || -	    ctx->FragmentProgram._Enabled || -	    ctx->Color.BlendEnabled); -} -  /* Doesn't work for overlapping regions.  Could do a double copy or   * just fallback.   */ diff --git a/src/mesa/drivers/dri/intel/intel_pixel.c b/src/mesa/drivers/dri/intel/intel_pixel.c index c0333969d0..72eb823bc4 100644 --- a/src/mesa/drivers/dri/intel/intel_pixel.c +++ b/src/mesa/drivers/dri/intel/intel_pixel.c @@ -99,6 +99,11 @@ intel_check_blit_fragment_ops(GLcontext * ctx)        return GL_FALSE;     } +   if (ctx->RenderMode != GL_RENDER) { +      DBG("fallback due to render mode\n"); +      return GL_FALSE; +   } +     return GL_TRUE;  } @@ -157,7 +162,9 @@ intelInitPixelFuncs(struct dd_function_table *functions)     if (!getenv("INTEL_NO_BLIT")) {        functions->Bitmap = intelBitmap;        functions->CopyPixels = intelCopyPixels; +#ifdef I915        functions->ReadPixels = intelReadPixels;        functions->DrawPixels = intelDrawPixels; +#endif     }  } | 
