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 /src/mesa/drivers/dri | |
parent | 90d33edf37d12495fcfb4876d1048f3ed5df2b9b (diff) |
intel: Merge check_blit_fragment_ops between i915/i965.
Both had some useful bits for the other.
Diffstat (limited to 'src/mesa/drivers/dri')
-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 } } |