aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/evas/canvas/render2 (follow)
Commit message (Collapse)AuthorAgeFilesLines
* tests: Remove CPU affinity from all threadsJean-Philippe Andre2017-03-061-1/+1
| | | | | | | | | | | | I believe that all the threads created in our test suite should be spawned without any special CPU affinity. The default parameter is not 0 (corresponds to the first CPU, known as CPU 0) but -1. Similarily the default priority is NORMAL (1), not 0 (URGENT). This also affects two unused code paths: evas render2 and gl preload. @fix
* evas: Assume object is valid and avoid call to efl_isaJean-Philippe Andre2017-02-213-6/+4
| | | | | | | In an internal function we should be able to safely assume an object is indeed a smart object. @optimization
* evas & elm: Fix invalid uses of efl_data_ref(obj, NULL)Jean-Philippe Andre2017-02-151-1/+1
| | | | | | | The data class should be specified for debug purposes. Also, this fixes invalid uses inside the smart object implementation where it assumed that the smart data was part of the eo data. It may not (legacy objects).
* evas render - drop eo overhead by using ptrs we already haveCarsten Haitzler (Rasterman)2017-02-042-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | several calls, specifically evas_object_change_reset, evas_object_cur_prev, and evas_object_clip_changes_clean that are called directly or indirectly as part of evas render on at least every active object if not more, were doing full eo obj lookups when their calling functions already all had the eo protected data looked up. tha's silly and just adds overhead we don't need. my test dropped _eo_obj_pointer_get overhead in perf profiles from 4.48% to 2.65%. see: 4.48% libeo.so.1.18.99 [.] _eo_obj_pointer_get 4.23% libevas.so.1.18.99 [.] evas_render_updates_internal 2.61% libevas.so.1.18.99 [.] evas_render_updates_internal_loop 1.68% libeo.so.1.18.99 [.] efl_data_scope_get 1.57% libc-2.24.so [.] _int_malloc 1.42% libevas.so.1.18.99 [.] evas_object_smart_changed_get 1.09% libevas.so.1.18.99 [.] evas_object_clip_recalc.part.37 1.08% libpthread-2.24.so [.] pthread_getspecific 1.05% libevas.so.1.18.99 [.] efl_canvas_object_class_get 1.01% libevas.so.1.18.99 [.] evas_object_cur_prev 0.99% libeo.so.1.18.99 [.] _efl_object_event_callback_legacy_call 0.87% libevas.so.1.18.99 [.] _evas_render_phase1_object_ctx_render_cache_append 0.82% libpthread-2.24.so [.] pthread_mutex_lock 0.81% libevas.so.1.18.99 [.] _evas_render_phase1_object_process 0.79% libc-2.24.so [.] _int_free vs now the improved: 4.82% libevas.so.1.18.99 [.] evas_render_updates_internal 3.44% libevas.so.1.18.99 [.] evas_render_updates_internal_loop 2.65% libeo.so.1.18.99 [.] _eo_obj_pointer_get 2.22% libc-2.24.so [.] _int_malloc 1.46% libevas.so.1.18.99 [.] evas_object_smart_changed_get 1.04% libeo.so.1.18.99 [.] _efl_object_event_callback_legacy_call 1.03% libevas.so.1.18.99 [.] _evas_render_phase1_object_ctx_render_cache_append 0.97% libeina.so.1.18.99 [.] eina_chained_mempool_malloc 0.93% libevas.so.1.18.99 [.] evas_object_clip_recalc.part.37 0.92% libpthread-2.24.so [.] pthread_mutex_lock 0.91% libevas.so.1.18.99 [.] _evas_render_phase1_object_process 0.84% libc-2.24.so [.] _int_free 0.84% libevas.so.1.18.99 [.] evas_object_cur_prev 0.83% libeina.so.1.18.99 [.] eina_chained_mempool_free 0.80% libeo.so.1.18.99 [.] efl_data_scope_get of course other things "increase their percentage" as oe overhead now dropped, and things seem to move around a bit, but it does make sense to do this with no downsides i can see as we already are accessing the protected data ptr in the parent func.
* evas: Remove context from some engine functionJean-Philippe Andre2016-12-161-2/+1
| | | | This is for canvas_alpha_get. context is never used.
* evas render - cache object arrays rto avoid processing them in phase1Carsten Haitzler (Rasterman)2016-11-261-2/+1
| | | | | | | | | | | | | | evas render in phase1 in order to generate update rects, active, render etc. object arrays has to walk every object in our tree. this is a waste of time if we already have walked objects in a previous frame if they havent changed, so cache this data in render cache in smart objects to avoid re-walking and now just dumbly "memcpy" these cached arrays into the master array. i have seen cpu usage by e drop like about 15% in the sencarios i'm looking at "enlightenment compositor with some window updating animation all the time, but most other stuff being static). @optimize
* Eo: Finish the renaming of Eo to the EFL.Tom Hacohen2016-08-153-11/+11
| | | | | | | This renames all the rest of the API to the EFL namespace except for Eo_Event that will follow soon. Obviously breaks both API and ABI.
* Change the EFL to follow the new Eo rename.Tom Hacohen2016-08-112-6/+6
|
* evas render2 region - handle if src region is empty correctly on addCarsten Haitzler (Rasterman)2016-07-111-6/+1
| | | | fix coverity CID 1313542
* evas regions in render2 - work around coverity complaintsCarsten Haitzler (Rasterman)2016-07-081-2/+6
| | | | | CID 1352392 is a false positive as the ptr is not dereferenced, but not making coverity confused it good.
* efl: everyone should now rely on Eina MIN/MAX redefinition.Cedric BAIL2016-05-091-7/+0
|
* Automatic migration to Eo4.Tom Hacohen2016-03-032-6/+6
| | | | | | I just ran my script (email to follow) to migrate all of the EFL automatically. This commit is *only* the automatic conversion, so it can be easily reverted and re-run.
* evas render2 - move empty region data into const land so it is in RO memCarsten Haitzler (Rasterman)2016-03-011-12/+12
| | | | | this should ensure these constants are in read-only memory if possible iof they are marked as const as well as static
* evas - render2 - silence new gcc warnings about possibly freeing staticCarsten Haitzler (Rasterman)2016-03-011-1/+1
| | | | | | | | | | | | | | | | | | | | | This one is new: In file included from lib/evas/canvas/render2/evas_render2.c:5:0: In function ‘_region_break.isra.5’, inlined from ‘region_add’ at lib/evas/canvas/render2/region.c:847:41: lib/evas/canvas/render2/region.c:107:62: warning: attempt to free a non-heap object ‘_region_brokendata’ [-Wfree-nonheap-object] #define FREE_DATA(reg) if ((reg)->data && (reg)->data->size) free((reg)->data) ^ lib/evas/canvas/render2/region.c:184:4: note: in expansion of macro ‘FREE_DATA’ FREE_DATA(region); While it won't actually free is because if using brokendata the size is 0 and it'll skip it, add in a check to see if region->data is the brokendata static
* Evas render2: Fix always false comparisons.Tom Hacohen2015-12-081-2/+2
| | | | | | | | | This looks like a classic copy and paste error. It didn't make any sense before, and it seems like no one was going to take a look at it. This looks correct. If this breaks something (is render2 even used), someone should remove those lines. I wasn't entirely sure if I should just remove them, or correct them, as some of the code looked redundant anyway.
* evas - make new exact regions round up to 16x16 to keep count saneCarsten Haitzler (Rasterman)2015-09-241-6/+7
| | | | make region count sane by rounding to 16x16
* evas new region code - copy region size along with region mathCarsten Haitzler (Rasterman)2015-09-241-0/+4
|
* evas render2 - more work on fleshing it out a bitCarsten Haitzler (Rasterman)2015-09-114-28/+66
|
* efl - set thread names for internally created threads for debuggingCarsten Haitzler (Rasterman)2015-09-101-0/+1
| | | | @feature
* evas render 2 - tiled rouding of updates to keep number regions downCarsten Haitzler (Rasterman)2015-08-122-7/+36
| | | | | tile to 16x16 (we can cahnge) to keep number of update rects down/minimal with render2
* evas render2 work - no new feature - paralell bit of codeCarsten Haitzler (Rasterman)2015-07-245-19/+1498
| | | | | | | | | | *this does not affect any "stable" code paths - it's render2 and some added region code that i MAY have to use to fix some bugs/issues as i am noticing tilebuf being pretty silly and just doing bounding boxes. region code lifted from xserver (mit-x11 license thus compatible with evas bsd) and it's been stripped down and cleaned up with some tilebuf optimizations like remembering the last rect add/del to avoid work when repetedly adding/delling the same rects (very common).
* more evas render 2 work - should not affect normal behavior or codeCarsten Haitzler (Rasterman)2015-06-241-3/+15
| | | | paths unless turned on at runtime
* evas-render2: Fix Coverity CID1306141: Dereference null return valueChris Michael2015-06-181-1/+2
| | | | | | | | | | Summary: Coverity reports that eina_thread_queue_wait was returning NULL and thus msg variable being used here causes dereferencing a null pointer. @fix Signed-off-by: Chris Michael <cp.michael@samsung.com>
* evas render2 work - begin to make rectangles deal with render 2 basicCarsten Haitzler (Rasterman)2015-06-093-33/+315
| | | | infra
* Evas render2: Fix clang warningsJean-Philippe Andre2015-04-211-12/+4
| | | | More unused functions. Kept around for later debugging.
* evas render2 - restructure it to be an explicit api call - cleaner to doCarsten Haitzler (Rasterman)2015-03-205-0/+760