RESOLVED FIXED Bug 44699
[Gtk] Reduce the size of the shadow buffer in the paths using the clip region
https://bugs.webkit.org/show_bug.cgi?id=44699
Summary [Gtk] Reduce the size of the shadow buffer in the paths using the clip region
Alejandro G. Castro
Reported 2010-08-26 11:18:13 PDT
Currently we are creating shadows using the complete size of the element in the page, we can use the clip information to reduce that size.
Attachments
Proposed patch (2.35 KB, patch)
2010-08-26 11:25 PDT, Alejandro G. Castro
kenneth: review+
Alejandro G. Castro
Comment 1 2010-08-26 11:25:40 PDT
Created attachment 65587 [details] Proposed patch
Martin Robinson
Comment 2 2010-08-26 14:09:54 PDT
Does this patch net any performance improvements on its own?
Alejandro G. Castro
Comment 3 2010-08-26 15:06:20 PDT
(In reply to comment #2) > Does this patch net any performance improvements on its own? Yep, mostly when scrolling a webpage, we blur a rect as big as the scroll movement, and also for big pages we only blur the viewport part even if the page is bigger than that, for instance identi.ca.
Martin Robinson
Comment 4 2010-08-27 10:44:16 PDT
Is it possible to make calculateShadowBufferDimensions a non-static method and to do this there? That way we could benefit from this improvement at all call sites.
Alejandro G. Castro
Comment 5 2010-08-30 04:29:07 PDT
(In reply to comment #4) > Is it possible to make calculateShadowBufferDimensions a non-static method and to do this there? That way we could benefit from this improvement at all call sites. It is, I planned this patch just to make it the rects because they are the main issue nowadays. I'll review the patch.
Kenneth Rohde Christiansen
Comment 6 2010-08-31 03:12:32 PDT
Comment on attachment 65587 [details] Proposed patch Seems like a good optimization. Remember to add a dot at the end of comments.
Martin Robinson
Comment 7 2010-08-31 09:45:44 PDT
Do you mind creating a static function that take a rectangle and intersects it with the current Cairo clip? It could be passed an optional minimumSize argument. I think we may want to use this optimization in other places later on. IntRect intersectRectWithCurrentCairoClip(cairo_t*, IntRect, int minimumSize=0); Thanks.
Alejandro G. Castro
Comment 8 2010-09-13 11:53:38 PDT
Committing this patch after talking to martin we will leave the generalization for the contextshadow patch in the bug 45599.
Alejandro G. Castro
Comment 9 2010-09-13 12:06:49 PDT
Landed r67402
Note You need to log in before you can comment on or make changes to this bug.