From f79b2ceea4722b5059563be1eb55de617fecc004 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Thu, 4 Mar 2010 19:52:58 +0000 Subject: [PATCH] drm/i915: Discard redundant solitary clips during fill --- src/drm/cairo-drm-i915-surface.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/drm/cairo-drm-i915-surface.c b/src/drm/cairo-drm-i915-surface.c index 3071ee38b..08eef5840 100644 --- a/src/drm/cairo-drm-i915-surface.c +++ b/src/drm/cairo-drm-i915-surface.c @@ -1343,6 +1343,16 @@ i915_surface_fill (void *abstract_dst, if (_cairo_clip_contains_rectangle (clip, &extents)) clip = NULL; + if (extents.is_bounded && clip != NULL) { + cairo_clip_path_t *clip_path; + + if (((clip_path = _clip_get_solitary_path (clip)) != NULL) && + _cairo_path_fixed_equal (&clip_path->path, path)) + { + clip = NULL; + } + } + if (clip != NULL) { clip = _cairo_clip_init_copy (&local_clip, clip); have_clip = TRUE;