zmike pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4329b88df4712c8c44794d1fe94de333d9bbfab1
commit 4329b88df4712c8c44794d1fe94de333d9bbfab1 Author: Cedric BAIL <[email protected]> Date: Fri Oct 25 15:45:14 2019 -0400 evas: disable Eina Cow Garbage Collection on dynamic content. Summary: Dynamic content are likely to trigger an image state change at pretty much every frame. This lead to unecessary attempt by Eina_Cow to deduplicate/cleanup data that are changing all the time. This reduce memory consumption in Expedite tests that in some small amount. The gain get bigger the more animation you get on screen. There might be other potential gain for heavy animated case. Reviewers: zmike, Hermet, bu5hm4n, smohanty Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T8302 Differential Revision: https://phab.enlightenment.org/D10532 --- src/lib/evas/canvas/evas_image_private.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_image_private.h b/src/lib/evas/canvas/evas_image_private.h index 2d468184eb..6d18205d1f 100644 --- a/src/lib/evas/canvas/evas_image_private.h +++ b/src/lib/evas/canvas/evas_image_private.h @@ -231,7 +231,10 @@ void _evas_image_load(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, Evas EINA_COW_WRITE_BEGIN(evas_object_image_state_cow, Obj->cur, Evas_Object_Image_State, Write) # define EINA_COW_IMAGE_STATE_WRITE_END(Obj, Write) \ - EINA_COW_WRITE_END(evas_object_image_state_cow, Obj->cur, Write) + eina_cow_done(evas_object_image_state_cow, ((const Eina_Cow_Data**)&(Obj->cur)), Write, \ + Obj->content_hint == EFL_GFX_IMAGE_CONTENT_HINT_DYNAMIC ? EINA_FALSE : EINA_TRUE); \ + } \ + while (0); # define EINA_COW_PIXEL_WRITE_BEGIN(Obj, Write) \ EINA_COW_WRITE_BEGIN(evas_object_image_pixels_cow, Obj->pixels, Evas_Object_Image_Pixels, Write) --
