Vincent Torri [Thu, 22 Oct 2015 20:54:18 +0000 (22:54 +0200)]
ecore_audio: do not compile elua file if ecore_audio is disabled
@fix
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Carsten Haitzler (Rasterman) [Sun, 25 Oct 2015 02:23:04 +0000 (11:23 +0900)]
eo - make null object silent if eo id is off
with eo id indirection on, a nul object is silently ignored as anok
error case (like free(NULL)). but if you turne eoid off in build its
all complaints to here and the black stump. fix this by making the eo
id "off" path match eo id on by making null objects silent.
@fix
Carsten Haitzler (Rasterman) [Sat, 24 Oct 2015 03:23:53 +0000 (12:23 +0900)]
eo - move cache lookup into the hot path if as it only is valid there
minor speedup ... really minor - but correct.
Carsten Haitzler (Rasterman) [Sat, 24 Oct 2015 03:23:38 +0000 (12:23 +0900)]
eo header - remove 2 errant spaces to clean formatting
Carsten Haitzler (Rasterman) [Fri, 23 Oct 2015 02:02:56 +0000 (11:02 +0900)]
evas gl - rect draws didnt obey cutout max like font and img - fix
this fixes cutout handling consistency for gl common
Cedric BAIL [Fri, 23 Oct 2015 19:34:53 +0000 (12:34 -0700)]
efreet: make sure that we use the right directory and ef for the cache.
Cedric BAIL [Fri, 23 Oct 2015 19:32:02 +0000 (12:32 -0700)]
eina: make sure to cleanup the right string.
Jean-Philippe Andre [Fri, 23 Oct 2015 07:29:40 +0000 (16:29 +0900)]
Evas render: Fix rendering of snapshot objects
I added a quick check that the clip was not 0x0 but forgot
to check that we actually use the clip info.
Fixes T2792
Cedric BAIL [Thu, 22 Oct 2015 23:57:24 +0000 (16:57 -0700)]
efl: fix path parsing to actually check the value returned by strtol.
CID1328665
Cedric BAIL [Thu, 22 Oct 2015 23:56:39 +0000 (16:56 -0700)]
emile: fix typos catched by coverity.
CID1328666
Shinwoo Kim [Thu, 22 Oct 2015 19:28:51 +0000 (12:28 -0700)]
ecore: use recursive lock for _ecore_glib_select
Summary: Fix a deadlock caused by recursive call of _ecore_glib_select.
Test Plan:
Delete elm_image on the glib callback(ref: g_source_set_callback).
The _elm_image_evas_object_smart_del calls ecore_thread_wait.
Reviewers: raster, jpeg, woohyun, jaehwan, Hermet, seoz, cedric
Reviewed By: cedric
Differential Revision: https://phab.enlightenment.org/D3202
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Srivardhan Hebbar [Thu, 22 Oct 2015 19:25:37 +0000 (12:25 -0700)]
eet: handling memory leak on realloc fail.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Differential Revision: https://phab.enlightenment.org/D3208
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Vivek Ellur [Thu, 22 Oct 2015 19:23:00 +0000 (12:23 -0700)]
eina_quaternion: add test cases for interpolation functions.
Summary:
Added test cases for quaternion_lerp, quaternion_slerp and quaternion_nlerp
functions
Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>
Reviewers: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3209
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Srivardhan Hebbar [Thu, 22 Oct 2015 19:19:01 +0000 (12:19 -0700)]
emile: handling memory leak on realloc.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Differential Revision: https://phab.enlightenment.org/D3210
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Vivek Ellur [Thu, 22 Oct 2015 19:17:17 +0000 (12:17 -0700)]
eina: add test cases for f16p16 quaternion interpolation functions
Summary:
Added test cases for f16p16 lerp, slerp and nlerp functions
Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>
Reviewers: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3216
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Vivek Ellur [Thu, 22 Oct 2015 19:15:30 +0000 (12:15 -0700)]
evil: fix memory leak issue in evil module
Summary:
@Fix
Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>
Reviewers: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3217
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Cedric BAIL [Thu, 22 Oct 2015 18:29:36 +0000 (11:29 -0700)]
emile: prevent segv when rotation is asked and there is no opts provided.
Thanks Vivek for pointing the problem.
@fix
Carsten Haitzler (Rasterman) [Thu, 22 Oct 2015 10:19:50 +0000 (19:19 +0900)]
efl tests - ecore fb - disable as it basically is more pain than gain
this means make check is more useful to people.
Carsten Haitzler (Rasterman) [Thu, 22 Oct 2015 06:12:26 +0000 (15:12 +0900)]
evas - software render async - fix async render to actually be all async
so the evas thread renderer didnt START rendering until evas FINISHEd
walking all objects generating a render queue. this means all the cpu
time spend generating commands couldn't allow a parallel thread
actually go and DO the rendering.
this flushes the render thread every render command thus waking up the
render thread to work in parallel to the mainloop generating commands.
this actually means int he traces i see the render thread finished byt
he time evas_render completes thus brinign forward the frame display
by quite a bit.
thanks to evlog for pointing this out.
@fix
Jihoon Kim [Thu, 22 Oct 2015 05:23:43 +0000 (14:23 +0900)]
Ecore evas: Correct function name in magic failure of ecore_evas_rotation_with_resize_set ()
Jaehwan Kim [Thu, 22 Oct 2015 00:36:35 +0000 (09:36 +0900)]
Revert "edje: add edje signal emit about swallow, text"
This reverts commit
b1fa1c5aadc71881cb1e4e264d680ea5efa79a69.
This feature will be commited to the next version.
Carsten Haitzler (Rasterman) [Thu, 22 Oct 2015 00:35:11 +0000 (09:35 +0900)]
efl eo - pass test suite function overrides again after adding cache
removing the klass member meant removing hooks and keeping cache small
but that meant not using it. this meand if the object is not an obj...
i removed the:
call->obj = _eo_class_id_get(call->klass);
line - seemed harmless/pointless. apparently not. so put it back but
use the klass there in local vars and not in call as it's not there
(and not needed).
fix.
Srivardhan Hebbar [Wed, 21 Oct 2015 21:01:38 +0000 (14:01 -0700)]
ecore_x: remove useless assignment.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Differential Revision: https://phab.enlightenment.org/D3206
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Srivardhan Hebbar [Wed, 21 Oct 2015 20:50:17 +0000 (13:50 -0700)]
eet: handling memory leak on realloc fail.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Differential Revision: https://phab.enlightenment.org/D3207
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Srivardhan Hebbar [Wed, 21 Oct 2015 20:35:17 +0000 (13:35 -0700)]
evas: handling memory leak on realloc failure.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Differential Revision: https://phab.enlightenment.org/D3212
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Cedric BAIL [Wed, 21 Oct 2015 18:11:39 +0000 (11:11 -0700)]
efl: fix copy & paste typo while parsing SVG elliptical arc command.
@fix
CID 1328426
Mike Blumenkrantz [Wed, 21 Oct 2015 18:06:47 +0000 (14:06 -0400)]
ee-wayland: remove attempt to optimize canvas resizing
in the case of operations which change framespace, rejecting resizes
at this point will cause the canvas to fail at resizing and result in a
partially-rendered canvas; the real canvas geometry must be calculated by
running the entire function in order to determine whether the resize is valid
fixes toggling borderless state of windows
Vitor Sousa [Wed, 21 Oct 2015 17:14:22 +0000 (18:14 +0100)]
eolian: Test recognition of struct types used in methods
Summary:
Add code to unit test to check if Eolian correctly recognize a struct
name as a struct type when it is used in a method.
Add new method to struct.eo to create this test.
Update struct_ref.c accordingly.
Reviewers: tasn, q66
Differential Revision: https://phab.enlightenment.org/D3213
Carsten Haitzler (Rasterman) [Wed, 21 Oct 2015 13:27:06 +0000 (22:27 +0900)]
eo - oops remove warning cpp i accidentally put in!
Carsten Haitzler (Rasterman) [Wed, 21 Oct 2015 13:23:18 +0000 (22:23 +0900)]
eo resolv cache - remove params passed to resolv func for efficiency
we pass both the callcache and the op id - both are static and filled
in at runtime, so merge them into the same struct. this should lead to
better alignment/padding with the offset array and the next slot and
op fields, probably saving about 4-8 bytes of rame per method with no
downsides. also pass in only cache ptr, not both cache ptr and opid -
less passing of stuff around and should be better.
Jaehwan Kim [Wed, 21 Oct 2015 12:51:54 +0000 (21:51 +0900)]
edje: add edje signal emit about swallow, text
Add the edje signal "swallow", "unswallow", "text,set", "text,unset".
In edc file, the part name take a role of source.
If the layout should be changed when any object is swallowed or any
text is set, use this signal.
@feature
Stefan Schmidt [Wed, 21 Oct 2015 12:32:44 +0000 (14:32 +0200)]
ephysics: add missing break in switch to avoid override variable with other cases
Due to the missing break we would fall into the next case here which might lead
to variables overridden with wrong values.
CID: 1261441, 1261440, 1261438
Stefan Schmidt [Wed, 21 Oct 2015 12:23:08 +0000 (14:23 +0200)]
emile: remove dead code
This seems to come from some intention to fetch dh from openssl somewhow but
it was never implemented. fh always stays 0 since its init and thus we can
remove the code it guards.
CID: 1288930
Carsten Haitzler (Rasterman) [Wed, 21 Oct 2015 12:01:59 +0000 (21:01 +0900)]
eo - shut clang up because otherwise i have to argue with peolpe
so. clang is wrong. end of story. it complains that i should add
braces to:
static Eo_Call_Cache ___callcache = { 0 };
WRONG. that is correct c99. 100%. you can add more {}'s and init every
field separately like {{0},{0},{0}} etc. or make it 1 or any value -
it doesn't matter... clang complains. clang is wrong. plain and
simple. this warning should just never exist. it is pointless.
but... peolpe won't shut up about clang warnings until i "fool" clang
into being silent by assuming the default 0 value of static storage.
this silences clang
Carsten Haitzler (Rasterman) [Wed, 21 Oct 2015 11:06:23 +0000 (20:06 +0900)]
efl - eo - massively improve eo cal resolv and data scope get with cache
BEWARE! this breaks eo ABI. _eo_call_resolve and _eo_data_scope_get
are 2 of the biggest cpu users in eo. they easily consume like 10-15%
cpu between them on tests that drive a lot of api - like simply
scrolling a genlist around. this is a lot of overhead for efl. this
fixes that to make them far leaner. In fact this got an overall 10%
cpu usage drop and that includes all of the actual rendering, and code
work, so this would drop the eo overhead of these functions incredibly
low. using this much cpu just on doing call marshalling is a bug and
thus - this is a fix, but ... with an abi break to boot. more abi
breaks may happen before release to try and get them all in this
release so we don't have to do them again later.
note i actually tested 4, 3, 2, and 1 cache slots, and 1 was the
fastest. 2 was very close behind and then it got worse. all were
better than with no cache though.
benchmark test method:
export ELM_ENGINE=gl
export ELM_TEST_AUTOBOUNCE=1
while [ 1 ]; do sync; sync; sync; time elementary_test -to genlist;
sleep 1; done
take the 2nd to the 8th results (7 runs) and total up system and user
time. copmpare this to the same without the cache. with the cache cpu
time used is 90.3% of the cpu time used without - thus a win. at least
in my tests.
@fix
Carsten Haitzler (Rasterman) [Wed, 21 Oct 2015 11:01:26 +0000 (20:01 +0900)]
efl - edje - fix edje calc to avoid eo calls when object doesnt change
in many cases edje dumbly calls eo_do() or evas_object_xxxx on objects
to set up their porperties when the part never uses that thing at al -
eg filters. the obnject never had filters and will not have them n3ext
- why always set filter to null every time? skip when not needed for
speedups.
so this fixes over-zealous calling whihc adds overhead that is not
needed causing battery drain and cpu usage, heat creation etc. etc.
@fix
Subhransu Mohanty [Fri, 28 Aug 2015 01:12:44 +0000 (10:12 +0900)]
efl/gfx: fix svg path parsing logic.
1. according to svg path specification, path string may or may not contain ',' as the separator
with current parsing logic we were expecting a ',' after each segment.
2. relative cubic bezier parsing was wrong as we were not adding the current value to all 4 points.
3. refactored the parse_pair, parse_six and parse_quad to use same helper function
path1: "M7.279,2h35.442C45.637,2,48,4.359,48,7.271v35.455C48,45.639,45.637,48,42.723,48H7.279C4.362,47.997,2,45.639,2,42.727V7.271C2,4.359,4.362,2,7.279,2z"
path2: "M-2.073-7h36.147C36.796-7,39-4.793,39-2.073v36.146C39,36.796,36.796,39,34.074,39H-2.073C-4.793,39-7,36.796-7,34.072V-2.073C-7-4.793-4.793-7-2.073-7z"
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Mike Blumenkrantz [Tue, 20 Oct 2015 21:51:22 +0000 (17:51 -0400)]
ecore-wayland: plug some trivial leaks
Srivardhan Hebbar [Tue, 20 Oct 2015 19:27:01 +0000 (12:27 -0700)]
ector: handling memory leak on error.
Summary:
Memory leak was caused by using the USE macro. So move the macro before
doing any allocation.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Differential Revision: https://phab.enlightenment.org/D3183
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Srivardhan Hebbar [Tue, 20 Oct 2015 19:24:49 +0000 (12:24 -0700)]
ecore_x: removing useless assignment variable.
Summary:
Assigning to NULL has no effect in the function calling this. So changed it to void.
Some compiler complain about this kind of construct. It is better to use the (void)
construct for silencing unused parameter with different kind of configure option.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Differential Revision: https://phab.enlightenment.org/D3180
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Subodh Kumar [Tue, 20 Oct 2015 18:51:17 +0000 (11:51 -0700)]
evas: fix memory leak.
Summary:
Fix memory leak
Delimiter string is being saved using
eina_stringshare_replace without any del or free
when object is deleted.
@fix
Test Plan: NA
Reviewers: cedric, tasn, herdsman
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3201
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Mike Blumenkrantz [Tue, 20 Oct 2015 20:41:28 +0000 (16:41 -0400)]
ee-wayland: use frame callbacks exclusively to determine render timing
when running in a wayland compositor, the ideal mode of operation is to
only prepare/send frames when the compositor has finished with the previous
frame
to achieve this, manual rendering can be toggled upon creating and completing
a frame callback, ensuring that a canvas never has multiple pending buffers at
any given time
fix T2784
Chidambar Zinnoury [Tue, 20 Oct 2015 16:58:18 +0000 (18:58 +0200)]
ecore fb: Unbreak ecore_evas_fb.
The ecore_evas_fb module uses ecore_fb_ts_* functions which are only available to EFL internals and not for the general API.
However, EAPI not being defined in ecore_fb_private.h made the symbols not being exported at all, which in return made execution-time linking not finding them and thus failing.
Chidambar Zinnoury [Tue, 20 Oct 2015 16:56:47 +0000 (18:56 +0200)]
ecore fb: We shall look for the Ecore_Fb.h header only where needed.
Carsten Haitzler (Rasterman) [Tue, 20 Oct 2015 09:07:21 +0000 (18:07 +0900)]
edje - fix some horrible misleading indenting in edje calc.
just whitespace fixups
Vincent Torri [Tue, 29 Sep 2015 21:37:46 +0000 (23:37 +0200)]
efreet: use eina_file_mkstemp() for portability and fix a bug on Windows
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Vincent Torri [Sun, 27 Sep 2015 08:25:33 +0000 (10:25 +0200)]
ecore_exe: terminate threads also in destructor
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Mike Blumenkrantz [Mon, 19 Oct 2015 20:20:45 +0000 (16:20 -0400)]
ecore-wayland: only do deferred shell surface creation when a surface exists
Mike Blumenkrantz [Mon, 19 Oct 2015 20:13:50 +0000 (16:13 -0400)]
ecore-wayland: defer shell surface creation for windows if shell is not bound
in the case where a surface is created before the compositor binds its shell(s),
a shell surface would never be created
fixes case where internal windows would not create frames in enlightenment
@fix
Subodh Kumar [Mon, 19 Oct 2015 18:34:38 +0000 (11:34 -0700)]
evas textblock: fix memory leak
Summary:
Fix memory leak
Delimiter string is being saved using
eina_stringshare_replace without any del or free
when object is deleted.
@fix
Test Plan: N/A
Reviewers: tasn, herdsman
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3175
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Srivardhan Hebbar [Mon, 19 Oct 2015 18:24:49 +0000 (11:24 -0700)]
ecore_x: removing useless assignment.
Summary:
The assigned value has no effect outside the function. So removing it.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Differential Revision: https://phab.enlightenment.org/D3181
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Srivardhan Hebbar [Mon, 19 Oct 2015 18:21:22 +0000 (11:21 -0700)]
ecore_x: handling realloc failure.
Summary:
If realloc fails, lst would be NULL. So handling it.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Differential Revision: https://phab.enlightenment.org/D3182
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Srivardhan Hebbar [Mon, 19 Oct 2015 18:17:22 +0000 (11:17 -0700)]
ector: removing useless assignement.
Summary:
Null assignment has no effect in the caller function. So removed it.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Differential Revision: https://phab.enlightenment.org/D3184
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Shilpa Singh [Mon, 19 Oct 2015 18:12:23 +0000 (11:12 -0700)]
edje: comparision with non-scaled min values issue fix.
Summary:
In a different scaling environment, wrong comparison of min values causes resize issue as original size is compared instead of scaled size.
Signed-off-by: Shilpa Singh <shilpa.singh@samsung.com>
Signed-off-by: Subodh Kumar <s7158.kumar@samsung.com>
@fix
Test Plan:
Create a layout with some min size and swallow a resizable layout inside the layout.
the parent layout will not expand even when the height has crossed its min size.
Reviewers: cedric, tasn, raster
Subscribers: subodh6129
Differential Revision: https://phab.enlightenment.org/D3185
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Srivardhan Hebbar [Mon, 19 Oct 2015 18:08:13 +0000 (11:08 -0700)]
edje: fix memory leak on realloc.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Differential Revision: https://phab.enlightenment.org/D3186
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Jee-Yong Um [Mon, 19 Oct 2015 18:01:22 +0000 (11:01 -0700)]
evas table: fix miscalcuation in cells with span and padding
Summary:
In evas table that homogeneous mode is turned off,
the size of items in cells, whose rowspan or colspan is larger than 1
and horizontal or vertical padding exists, are miscalculatd.
T2655
@fix
Test Plan: elementary_test "Table Padding"
Reviewers: Hermet, cedric
Subscribers: cedric, DaveMDS, Hermet
Differential Revision: https://phab.enlightenment.org/D3192
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
perepelits.m [Mon, 19 Oct 2015 18:00:22 +0000 (11:00 -0700)]
evas: fix memory leak
Summary:
Fix of memory leak in evas_3d_utils.c
@fix
Reviewers: raster, Hermet, cedric
Reviewed By: cedric
Subscribers: artem.popov
Differential Revision: https://phab.enlightenment.org/D3196
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Jean-Philippe Andre [Mon, 19 Oct 2015 11:04:20 +0000 (20:04 +0900)]
Evas GL shaders: Simplify a bit the shaders code
Following raster's change, the Program_Source struct is useless.
This is a big commit, again, but really all is auto-generated.
Daniel Kolesa [Mon, 19 Oct 2015 10:52:03 +0000 (11:52 +0100)]
elua: remove non-portable lconv fields (breaks windows)
Jean-Philippe Andre [Mon, 19 Oct 2015 10:31:10 +0000 (19:31 +0900)]
Evas GL: Try to fix automated tests
I forgot the #ifdef in the shaders. This might be it. @stefan,
try again please.
Stefan Schmidt [Mon, 19 Oct 2015 09:36:51 +0000 (11:36 +0200)]
release: Update NEWS and bump version for 1.16.0-beta2 release
Carsten Haitzler (Rasterman) [Mon, 19 Oct 2015 08:06:06 +0000 (17:06 +0900)]
evas gl common - remove unused struct fields from shader src to save mem
we use a bit more memory than we need by having unused fields for
shaders. the old binary data ptrs and size fields we just have not
used for years now as we dont compile in shader binaries anymore as no
living drivers need this anymore. so this removes that with no actual
side-effects.
Carsten Haitzler (Rasterman) [Sun, 18 Oct 2015 09:45:11 +0000 (18:45 +0900)]
evas gl - fix big endian fully by adding a host of new img shaders
no shortcuts. we used the same img sharder for pixles as for native
surf. so need new shaders to do the swiszzling. add them all,
generation scripts metadata and enums etc.
@fix (along with previous 3 commits)
Carsten Haitzler (Rasterman) [Sun, 18 Oct 2015 06:49:23 +0000 (15:49 +0900)]
evas bigendian fix - only fix img shaders as only these src pixels
Carsten Haitzler (Rasterman) [Sun, 18 Oct 2015 03:49:11 +0000 (12:49 +0900)]
evas gl fix color on bigendian with gl engine
this fixes rendering on ppc (bigendian) where we have thnigs swizzled
oddly. not bgra -> argb but rgba -> grab ...
so generate a bigendian shader file and use if on bigendian.
this should fix T2721
it fixes it in the visual screenshots i can get remotely.
Carsten Haitzler (Rasterman) [Sat, 17 Oct 2015 02:42:46 +0000 (11:42 +0900)]
eo - another 1.5 percent speedup in eo_bench eo_do by removing err handl
so we do a bit of error handling like does a stack fail to allocate,
does setting the tls var fail, have the stack frames been nulled or
not allocated, etc. - these acutally cost every call because they mean
some extra compare and branches, but ore because they cause a lot fo
extra code to be generated, thus polluting instruction cache with code
and cacheline fetches of code that we rarely take - if ever.
every if () and DBG, ERR etc. does cost something. in really hotpath
code like this, i think it's best we realize that these checks will
basically never be triggered, because if a stack fails to grow... we
likely alreayd blew our REAL stack for the C/C++ side and that can't
allocate anymore and has already just crashed (no magic message there -
just segv). so in this case i think this checking is pointless and
just costs us rather than gets us anything.
Carsten Haitzler (Rasterman) [Sat, 17 Oct 2015 02:19:06 +0000 (11:19 +0900)]
evas - clean if check to be a single return point for clarity
if (a) return;
if (b) return;
->
if ((a) || (b)) return;
Mike Blumenkrantz [Fri, 16 Oct 2015 19:51:06 +0000 (15:51 -0400)]
ecore-evas-wayland: add frame callback listener during render
when a render occurs, frame callbacks must be managed in order to ensure
successful rendering for future frames. the best place to do this is in the
engine here, since this is the lowest-level place which has access to both
the wl_surface as well as the evas rendering state
ref T2784
Mike Blumenkrantz [Fri, 16 Oct 2015 19:49:30 +0000 (15:49 -0400)]
Revert "ecore-wayland: Redo window animators to not use Custom source animators"
This reverts commit
bd83d4c03ab9f6f6ae225976b9595a1dfde61237.
adding an animator (and then not managing its ticks) causes the animator
to fire constantly. in this case, it was causing 100% cpu usage and forcing a
compositor re-render for every frame regardless of damages
Tom Hacohen [Fri, 16 Oct 2015 15:23:48 +0000 (16:23 +0100)]
Eo do: Reuse stack fetching across eo functions.
This causes a significant speed up (around 10% here) and is definitely
worth it. The way it's done lets the compiler cache the value across
different eo_do calls, and across the parts of eo_do. Start and end.
This breaks ABI.
Tom Hacohen [Fri, 16 Oct 2015 11:21:25 +0000 (12:21 +0100)]
Eo do: optimise getting the thread call stack for the main loop thread.
This may look like an insignificant change, but it doubles the speed of
this function, and since this function is called so often, it actually
improves my benchmarks by around 8%.
Tom Hacohen [Fri, 16 Oct 2015 12:01:01 +0000 (13:01 +0100)]
Eo: Move mainloop checks inside Eo.
This breaks ABI in a harmless way, and it will give us the ability to
drastically improve Eo in the future without breaking ABI again, thus
allowing us to declare Eo stable for this release if we choose to.
Tom Hacohen [Fri, 16 Oct 2015 10:42:37 +0000 (11:42 +0100)]
Eo events: Add a struct member marking if it's a legacy event or not.
My previous patch to this piece of code
(
37f84b7e966372384e2dfe5d191a6f907a17962e), caused a significant
performance regression. This is such a hot path, that even accessing the
strings when we don't have to slows things down drastically. It makes
more sense to just store it in the structure.
This commit breaks ABI (though most people probably won't even need to
recompile anything else because of the memory layout).
It was discussed on IRC and was decided this is a big enough issue to
warrant a fix during the freeze.
@fix
Jean-Philippe Andre [Fri, 16 Oct 2015 01:48:40 +0000 (10:48 +0900)]
Evas GL: SW engine CID fixes
Following previous changes, there was unreachable code.
- CID 1327421
- CID 1327420
Jean-Philippe Andre [Thu, 15 Oct 2015 11:09:11 +0000 (20:09 +0900)]
Evas: Fix image orientation with GL engine
Fixes T2738
Not sure what to do if yinvert is true. How to handle image
orientation then? Flip vertically on top of the current orientation?
Carsten Haitzler (Rasterman) [Thu, 15 Oct 2015 23:27:10 +0000 (08:27 +0900)]
evas - add another layer->evas check in addition to layer
fixes T7215
Carsten Haitzler (Rasterman) [Thu, 15 Oct 2015 08:58:17 +0000 (17:58 +0900)]
evas - was missing evlogs for the threaded rendering handling - fix
Amitesh Singh [Thu, 15 Oct 2015 09:34:23 +0000 (15:04 +0530)]
edje: load - use evas_object_clipees_has instead of evas_object_clipees_get
evas_object_clipees_has is far cheaper than evas_object_clipees_get in case of checking if
clipees exist or not. This should improve the performance in case of large set of clipees.
@fix
Amitesh Singh [Thu, 15 Oct 2015 09:30:11 +0000 (15:00 +0530)]
evas: render - use evas_object_clipees_has instead of evas_object_clipees_get
evas_object_clipees_has is far cheaper than evas_object_clipees_get in case of checking if
clipees exist or not. This should improve the performance in case of large set of clipees.
@fix
Vincent Torri [Thu, 15 Oct 2015 05:47:04 +0000 (07:47 +0200)]
Tests: use eina_environment_tmp_get()
Jean-Philippe Andre [Thu, 15 Oct 2015 07:02:02 +0000 (16:02 +0900)]
Evas GL: Add more tests
- glReadPixels
- FBO test
- PBuffer test (only GL engine)
- surface formats test (up to depth=24, stencil=8)
Jean-Philippe Andre [Wed, 14 Oct 2015 13:08:55 +0000 (22:08 +0900)]
Evas GL: Add test case for surfaceless contexts
Jean-Philippe Andre [Wed, 14 Oct 2015 12:46:34 +0000 (21:46 +0900)]
Evas GL: Add EGL_KHR_surfaceless_context since it is supported
See
3e39bf36389fdbc8a3f845214.
Surfaceless contexts are supported even if the driver does not
support them.
Jean-Philippe Andre [Wed, 14 Oct 2015 12:35:09 +0000 (21:35 +0900)]
Evas GL: Error out on surfaceless make_current with OSMesa
While OSMesa may support surfaceless contexts, we don't support
them yet in the SW engine. Instead of switching to NULL, NULL,
let's error out and do nothing instead.
Jean-Philippe Andre [Wed, 14 Oct 2015 12:32:11 +0000 (21:32 +0900)]
Evas GL: Don't call eglMakeCurrent if already null
If the current context & surface are already null, avoid
calling eglMakeCurrent again, since it can return an error
(EGL_FALSE but with no error code, thanks Nvidia).
Seunghun Lee [Thu, 15 Oct 2015 05:16:55 +0000 (14:16 +0900)]
ecore_imf/wayland: Add NULL check for text_input_manager.
Summary: this patch fixes crash caused by accessing the text_input_manager in wayland_im_context_add().
Test Plan: N/A
Reviewers: jihoon
Reviewed By: jihoon
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3176
Cedric BAIL [Wed, 14 Oct 2015 22:54:41 +0000 (15:54 -0700)]
evas: no need to compute clippees list if we just want to know if there is any.
This is a partial fix for a terrible performance scenario where application take
forever to close with a large number of edje object.
@fix
Tom Hacohen [Wed, 14 Oct 2015 19:42:19 +0000 (20:42 +0100)]
Eo: Fix confusing indentation and style.
Chris Michael [Wed, 14 Oct 2015 18:56:17 +0000 (14:56 -0400)]
ecore-evas-wayland: Don't use custom animators for frame callbacks
Summary: As we now have per-window timer-based animators in
ecore_wayland for frame callbacks, we no longer should be using Custom
animators to handle surface frame callbacks
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Wed, 14 Oct 2015 18:54:54 +0000 (14:54 -0400)]
ecore-wayland: Redo window animators to not use Custom source animators
Summary: This moves window animators (for frame callbacks) to not use
a custom animator source but rather use a timer-based source. This
also moves animators to be per-window based (in that an animator is
created per-window).
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Cedric BAIL [Wed, 14 Oct 2015 17:57:53 +0000 (10:57 -0700)]
ecore: fix usage eina_condition_timedwait to use relative time instead of absolute time.
This could lead to some very long and unexpected pause as the timeout passed
to eina_condition_timedwait was passed as a absolute time instead of relative.
Hopefully we don't build rocket.
Amitesh Singh [Wed, 14 Oct 2015 15:34:52 +0000 (21:04 +0530)]
evas filter: silent coverity on self assignment
This is a false alarm. Just to make coverity happy, use eo_do
instead of eo_do_ret
CID: 1316017
Chris Michael [Wed, 14 Oct 2015 13:43:12 +0000 (09:43 -0400)]
edje_edit: Fix clang warning of unused variables
Summary: clang reports that these static variables are not being used
anywhere (and grep confirms this), so remove them.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Wed, 14 Oct 2015 13:39:52 +0000 (09:39 -0400)]
ecore-evas-wayland-egl: Fix clang warning about extra parentheses
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Wed, 14 Oct 2015 13:37:20 +0000 (09:37 -0400)]
ecore-drm: Add missing field initializers for vt_mode
Summary: clang reports missing field initializers for usage of vt_mode
structure, so add the missing initializers
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Wed, 14 Oct 2015 13:28:47 +0000 (09:28 -0400)]
evas: Fix clang warning for missing field 'async' in default_state
Evas_Object_Filter_Data has a bool for 'async' at the end of the
struct. This field was missing from the initialization of
'default_state'
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Jean-Philippe Andre [Wed, 14 Oct 2015 10:42:49 +0000 (19:42 +0900)]
Evas GL: Fix support for the SW engines (OSMesa)
Since @raster changed the behaviour of the dirty flag on images,
damages must be added to redraw the GL surface. Evas_Image checks
if it is an Evas GL surface by looking at its native surface.
But in case of SW engine, there was no native surface information
for Evas GL surfaces. Also, the OPENGL surface type was awfully
abused for OSMesa support. Luckily EVASGL surface type lets us
pass arbitrary pointers :)
Jean-Philippe Andre [Wed, 14 Oct 2015 08:43:36 +0000 (17:43 +0900)]
Evas GL: Improve ERR log (direct rendering failed)
Jean-Philippe Andre [Wed, 14 Oct 2015 08:30:25 +0000 (17:30 +0900)]
Evas GL: Add a test case for Evas GL (make check)
For now this only covers SOME of Evas GL's functions.
It will try to run with opengl_x11 and buffer (OSMesa). It'll also
try to fail silently if the engine initialization failed, or if
OSMesa could not be found. If the engines work, then Evas GL must
work properly.
Jean-Philippe Andre [Wed, 14 Oct 2015 08:27:53 +0000 (17:27 +0900)]
Evas GL: Implement glGetString wrapper for OSMesa
This is only one step into making the software engine actually
work the same as a proper GL engine from Evas GL APIs point of view.
This is necessary for the test suite (coming next).