summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2008-06-24 11:34:42 -0700
committerEric Anholt <[email protected]>2008-06-24 11:34:42 -0700
commitf23adc504d8202bbcc78121567a61c0b24819422 (patch)
treee0aeb3d3a3dd4089922df3806ecbca1527a5ce3a
parent90d33edf37d12495fcfb4876d1048f3ed5df2b9b (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/Makefile1
l---------src/mesa/drivers/dri/i965/intel_pixel.c1
-rw-r--r--src/mesa/drivers/dri/i965/intel_pixel_copy.c28
-rw-r--r--src/mesa/drivers/dri/intel/intel_pixel.c7
4 files changed, 9 insertions, 28 deletions
diff --git a/src/mesa/drivers/dri/i965/Makefile b/src/mesa/drivers/dri/i965/Makefile
index d46b3428f59..c561b744d1b 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 00000000000..d733c5e8745
--- /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 2f9c621dae7..5725dff3ef4 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 c0333969d0c..72eb823bc47 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
}
}