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.
Created attachment 120015 [details] Patch
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.
> Source/WebKit/efl/ChangeLog:3 > + [EFL] Added selective rendering to tiled backing store Need to be end with ".".
Created attachment 120021 [details] Updated.
LGTM.
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.
(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 ?
Created attachment 120161 [details] Updated. Changed API version
(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 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.
Created attachment 120284 [details] Updated according to suggestions
> 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. :)
Tomasz, Would you update this patch ? GyuYoung and Ryuan, Would you share your additional idea for this patch after the update ? :)
(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 ?