intel: Merge check_blit_fragment_ops between i915/i965.
Both had some useful bits for the other.
This commit is contained in:
@@ -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 \
|
||||
|
||||
+1
@@ -0,0 +1 @@
|
||||
../intel/intel_pixel.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.
|
||||
*/
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user