Bug 44699 - [Gtk] Reduce the size of the shadow buffer in the paths using the clip region
: [Gtk] Reduce the size of the shadow buffer in the paths using the clip region
Status: RESOLVED FIXED
Product: WebKit
Classification: Unclassified
Component: WebKit Gtk
: 528+ (Nightly build)
: PC Linux
: P2 Normal
Assigned To: Nobody
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2010-08-26 11:18 PDT by Alejandro G. Castro
Modified: 2010-09-13 12:06 PDT (History)
3 users (show)

See Also:


Attachments
Proposed patch (2.35 KB, patch)
2010-08-26 11:25 PDT, Alejandro G. Castro
kenneth: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alejandro G. Castro 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.
Comment 1 Alejandro G. Castro 2010-08-26 11:25:40 PDT
Created attachment 65587 [details]
Proposed patch
Comment 2 Martin Robinson 2010-08-26 14:09:54 PDT
Does this patch net any performance improvements on its own?
Comment 3 Alejandro G. Castro 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.
Comment 4 Martin Robinson 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.
Comment 5 Alejandro G. Castro 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.
Comment 6 Kenneth Rohde Christiansen 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.
Comment 7 Martin Robinson 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.
Comment 8 Alejandro G. Castro 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.
Comment 9 Alejandro G. Castro 2010-09-13 12:06:49 PDT
Landed r67402