Bug 74925 - [EFL] Added selective rendering to tiled backing store
Summary: [EFL] Added selective rendering to tiled backing store
Status: RESOLVED INVALID
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit EFL (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P3 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-12-20 05:46 PST by Tomasz Morawski
Modified: 2012-06-10 23:44 PDT (History)
5 users (show)

See Also:


Attachments
Patch (17.93 KB, patch)
2011-12-20 05:48 PST, Tomasz Morawski
no flags Details | Formatted Diff | Diff
Updated. (17.92 KB, patch)
2011-12-20 06:27 PST, Tomasz Morawski
no flags Details | Formatted Diff | Diff
Updated. Changed API version (18.23 KB, patch)
2011-12-21 01:56 PST, Tomasz Morawski
no flags Details | Formatted Diff | Diff
Updated according to suggestions (18.24 KB, patch)
2011-12-22 00:57 PST, Tomasz Morawski
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Tomasz Morawski 2011-12-20 05:46:08 PST
The selective rendering allows to render and update tiles during scrolling without blocking of UI. This is
especially useful on mobile devices comparing to the old implementation of tiled backing store where UI can be
blocked for long time when there was a lot of tiles to update.
Comment 1 Tomasz Morawski 2011-12-20 05:48:45 PST
Created attachment 120015 [details]
Patch
Comment 2 KwangHyuk 2011-12-20 06:05:55 PST
Need small fix.

> Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp:1804
> +    PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv, EINA_FALSE);

check EINA_FALSE.

> Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp:1819
> +    PRIV_DATA_GET_OR_RETURN(ewkBackingStore, priv, EINA_FALSE);

Ditto.
Comment 3 KwangHyuk 2011-12-20 06:07:13 PST
> Source/WebKit/efl/ChangeLog:3
> +        [EFL] Added selective rendering to tiled backing store

Need to be end with ".".
Comment 4 Tomasz Morawski 2011-12-20 06:27:35 PST
Created attachment 120021 [details]
Updated.
Comment 5 KwangHyuk 2011-12-20 06:45:58 PST
LGTM.
Comment 6 Raphael Kubo da Costa (:rakuco) 2011-12-20 07:43:07 PST
Comment on attachment 120021 [details]
Updated. 

View in context: https://bugs.webkit.org/attachment.cgi?id=120021&action=review

How does this relate to the rendering suspension code?

> Source/WebKit/efl/ewk/ewk_view.h:186
> -#define EWK_VIEW_SMART_CLASS_INIT(smart_class_init) {smart_class_init, EWK_VIEW_SMART_CLASS_VERSION, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
> +#define EWK_VIEW_SMART_CLASS_INIT(smart_class_init) {smart_class_init, EWK_VIEW_SMART_CLASS_VERSION, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}

Whenever you change the public structure, you need to bump EWK_VIEW_SMART_CLASS_VERSION.
Comment 7 KwangHyuk 2011-12-20 20:25:26 PST
(In reply to comment #6)
> (From update of attachment 120021 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=120021&action=review
> 
> How does this relate to the rendering suspension code?
> 
> > Source/WebKit/efl/ewk/ewk_view.h:186
> > -#define EWK_VIEW_SMART_CLASS_INIT(smart_class_init) {smart_class_init, EWK_VIEW_SMART_CLASS_VERSION, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
> > +#define EWK_VIEW_SMART_CLASS_INIT(smart_class_init) {smart_class_init, EWK_VIEW_SMART_CLASS_VERSION, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
> 
> Whenever you change the public structure, you need to bump EWK_VIEW_SMART_CLASS_VERSION.

Good point. :)
Update of this field can be useful for preventing unexpected crash.

Tomasz, 
would you update the version too ?
Comment 8 Tomasz Morawski 2011-12-21 01:56:18 PST
Created attachment 120161 [details]
Updated. Changed API version
Comment 9 Tomasz Morawski 2011-12-21 02:10:21 PST
(In reply to comment #6)
> (From update of attachment 120021 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=120021&action=review
> 
> How does this relate to the rendering suspension code?
Selective rendering partially neutralizes rendering suspension in some conditions and allows to render some tiles in diffrent way. But still enabled rendering suspension doesn't allow to call some code inside _ewk_tiled_backing_store_smart_calculate function (change matrix model).
Comment 10 KwangHyuk 2011-12-21 16:46:44 PST
LGTM.
Comment 11 Gyuyoung Kim 2011-12-21 18:48:58 PST
Comment on attachment 120161 [details]
Updated. Changed API version

View in context: https://bugs.webkit.org/attachment.cgi?id=120161&action=review

> Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp:94
> +        bool selective_rendering : 1; // Set if selective tile rendering should be used. This setting allows to create a new tiles when are needed.

Do not use efl coding style for internal implementation.
Comment 12 Tomasz Morawski 2011-12-22 00:57:53 PST
Created attachment 120284 [details]
Updated according to suggestions
Comment 13 KwangHyuk 2012-01-11 06:11:02 PST
> Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp:1586
> +    // disable selective rendering if zooming

You may check comment rule #2 on webkit coding style.

> Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp:1641
> +        // disable selective rendering if zooming

Ditto.

> Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp:1810
> +    // update pending updates now

Ditto.

> Source/WebKit/efl/ewk/ewk_view.h:174
> +#define EWK_VIEW_SMART_CLASS_VERSION 4UL

Need to rebase and update version again. :)
Comment 14 KwangHyuk 2012-01-26 20:40:36 PST
Tomasz, 
Would you update this patch ?

GyuYoung and Ryuan,
Would you share your additional idea for this patch after the update ? :)
Comment 15 KwangHyuk 2012-02-01 05:07:16 PST
(In reply to comment #14)
> Tomasz, 
> Would you update this patch ?
> 
> GyuYoung and Ryuan,
> Would you share your additional idea for this patch after the update ? :)

Any update ?