Commit Graph

74 Commits

Author SHA1 Message Date
Cedric BAIL c1dee13b8e evas: use new Eina_Thread API.
SVN revision: 78232
2012-10-19 07:18:11 +00:00
Carsten Haitzler ae3f83a212 use eina barrier in evas.
SVN revision: 78101
2012-10-17 03:55:50 +00:00
Carsten Haitzler 800279c23b pthread stuff is no longer optional at all in evas - smae with preload
and async events, but pthread_attr_setaffinity_np is optionally
detected and used if there. it's an opti8mization anyway.



SVN revision: 78041
2012-10-16 08:57:18 +00:00
Carsten Haitzler c601c066af move thinfo struct inot evas_pipe.c as its not needed elsewhere.
SVN revision: 74891
2012-08-06 00:22:31 +00:00
Cedric BAIL a99bf2c9b6 evas: fix clipping issue with pipe rendering.
SVN revision: 73322
2012-07-05 03:11:47 +00:00
Cedric BAIL 849caf7b54 evas: more compiler fix.
SVN revision: 73278
2012-07-04 12:29:14 +00:00
Cedric BAIL 001c11207a evas: move evas_common_pipe_init out of the #if.
SVN revision: 73274
2012-07-04 12:17:18 +00:00
Cedric BAIL c8c36eae47 evas: fix back line and polygon draw with pipe rendering.
SVN revision: 73266
2012-07-04 10:32:38 +00:00
Cedric BAIL 1d415b796b evas: add more infrastructure to the prepare stage of pipe rendering.
NOTE: this improve some test by 10 to 15% some other are down by 5%.
Their is still more tunning and improvement possible now (Particularly
with Map), but it will do for now.


SVN revision: 73264
2012-07-04 09:39:23 +00:00
Cedric BAIL 67a8db57b1 evas: let's have an O(1) check instead of O(N).
SVN revision: 72266
2012-06-17 04:32:54 +00:00
Cedric BAIL c9cd50983f evas: make pipe rendering faster by forcing it to update region that fit in CPU cache.
NOTE: for people using Evas pipe rendering infrastructure. I am interested in reporting
expedite test before and after this patch with the associated type of CPU (number, thread,
cache). Thanks.


SVN revision: 71887
2012-06-10 04:58:24 +00:00
Cedric BAIL dd84715cc8 evas: fix YUV video prepare issue with pipe rendering.
SVN revision: 71771
2012-06-07 04:01:46 +00:00
Cedric BAIL ef3e42033b evas: Don't wake up prepare thread when there is nothing to do.
SVN revision: 71543
2012-05-30 08:15:42 +00:00
Cedric BAIL b0d3526d89 evas: another improvement part of the previous lock less font rendering patch.
Now evas will in all case do the layout during the prepare stage. It will do that
once and as long as the text didn't change. This does improve by a factor of at
least 2.3 in all expedite test case except the text change that only get a 30%
increase (I expect a drop in performance on non pipe rendering for text change
expedite test only, but this case is not common in real life).

This also fix the issue that show random size glyph when using pipe rendering.


SVN revision: 71220
2012-05-18 02:16:54 +00:00
Cedric BAIL f9650433ed evas: apparently i am not the only user of the pipeline rendering.
SVN revision: 71104
2012-05-15 11:11:33 +00:00
Cedric BAIL 4494035fa7 evas: detect properly when we wippe out font information.
SVN revision: 70923
2012-05-11 01:50:40 +00:00
Cedric BAIL f046fa4c46 evas: remove unused parameter.
SVN revision: 70550
2012-04-30 09:42:42 +00:00
Cedric BAIL 377cc2368a evas: remove EVAS_FRAME_QUEUING.
NOTE: This should be part of evas_render itself and not
delegated to the engine. So cleaning things to make it easier
during evas_render rewrite.


SVN revision: 70503
2012-04-26 09:53:03 +00:00
Cedric BAIL 5965fb4282 evas: remove EVAS_SLI code path, it was to slow and unused for years.
NOTE: other things that may join it in the near futur EVAS_FRAME_QUEUE,
EVAS_METRIC_CACHE and maybe EVAS_WORD_CACHE also. This is all part of
cleaning up our rendering path so we can actually improve it more easily.


SVN revision: 70499
2012-04-26 08:41:39 +00:00
Cedric BAIL 0a5c840c48 evas: lock less font rendering.
SVN revision: 70497
2012-04-26 08:18:51 +00:00
Christopher Michael 9257cdc055 Evas: Fix 'reset_time_interval' may be used uninitialized warning.
SVN revision: 59908
2011-06-03 00:26:19 +00:00
Christopher Michael 9b649530bd Evas: Fix more shadow declarations of variables.
SVN revision: 59715
2011-05-27 01:47:58 +00:00
Cedric BAIL b15093851e evas: fix evas_pipe and use eina_condition.
SVN revision: 59291
2011-05-09 11:05:04 +00:00
Tom Hacohen e93f10b8aa Evas font-engine: Remove passing of strings to font_draw.
This is not needed anymore because we have working string objects.

SVN revision: 59133
2011-05-02 15:33:46 +00:00
Cedric BAIL a613126be4 evas: don't forget to init eina_threads when using threads.
SVN revision: 58908
2011-04-25 17:11:58 +00:00
Carsten Haitzler 3b9219748d warnings--
SVN revision: 57877
2011-03-19 03:56:35 +00:00
Carsten Haitzler c743e4f56c methinks nash you missed doing the pipe pipeline for map changes.
SVN revision: 56805
2011-02-08 12:10:58 +00:00
Tom Hacohen 7a90712518 Evas font-engine: Fixed the issue of text not showing when using pipe-rendering. For some reason I put the parameters as "src, dst" instead of "dst, src" and I also missed the compilation warning about the passing const as non-const.
SVN revision: 56796
2011-02-08 08:12:55 +00:00
Tom Hacohen ff18fa8399 Evas: Multiple changes that all relate to the Harfbuzz integration:
1. Started feeding Evas_Text_Props to the font engine instead of Evas_BiDi_Props because no we have more general text properties as well - i.e, OpenType stuff.
2. Full Harfbuzz integration which gets compiled in by default (if harfbuzz is present) but only works if the environment variable EVAS_USE_OT is set to 1 (because OT is way slower than regular text rendering).
3. Cleaned the font querying/drawing functions.
4. Added font_shaped function to all of the engines, which by default calls teh harfbuzz stuff (default on linux that is).
5. Moved some source files around a bit to make more sense.

SVN revision: 56455
2011-01-30 10:36:39 +00:00
Carsten Haitzler 3a9d3268d2 fix warnings in async render code.. and well.. warn about it - it
crashes for me in expedite with 4 cores on x86 at random points. looks
like it's bitrotting. though it was relatively tentative to begin with.



SVN revision: 53856
2010-10-25 11:27:17 +00:00
Carsten Haitzler 69fa1e6386 fix async enabled evas on a single core system.
SVN revision: 51876
2010-09-04 04:12:46 +00:00
Tom Hacohen 5e433f1956 Evas bidi: Changed the design a bit so it'll be easy to implement async-rendering with it.
Fixed a couple of issues with unwanted cleans and generally data corruption.
Cleaned up async-rendering.

SVN revision: 51806
2010-09-01 13:15:04 +00:00
Carsten Haitzler 075531cc54 aaah... so.. if we have a fribidi lock.. shall we.. hmrrrm maybe use
it? and... lets not just throw pointer onto pipelines just for the
hell of it.. as like.. hmm the object owning the pointer might be
freed before pipelien finishes.. or hell. it might change pointer
contents? :) need to nwo dup bidi intl_props. probably a better plan..
tasn looking at you... is to fix up evas bidi utils and make the intl
props a new/free thing (and sharable eh?) with reference counts to
avoid dups (just ref up most of the time - and if u change, make a new
intl prop - dont change current one) etc. etc. for now dup - this
gives a perf hit tho. at least async rendering works now.



SVN revision: 51736
2010-08-30 03:21:15 +00:00
Lucas De Marchi 5a8a8c9014 Convert (hopefully) all comparisons to NULL
Apply badzero.cocci, badnull.coci and badnull2.cocci

This should convert all cases where there's a comparison to NULL to simpler
forms. This patch applies the following transformations:

code before patch               ||code after patch
===============================================================

return a == NULL;                 return !a;

return a != NULL;                 return !!a;

func(a == NULL);                  func(!a);

func(a != NULL);                  func(!!a);

b = a == NULL;                    b = !a;

b = a != NULL;                    b = !!a;

b = a == NULL ? c : d;            b = !a ? c : d;

b = a != NULL ? c : d;            b = a ? c : d;


other cases:

a == NULL                         !a
a != NULL                         a




SVN revision: 51487
2010-08-21 13:52:25 +00:00
Cedric BAIL 05e8154f8b * evas: remove gradient and gradient2.
SVN revision: 51219
2010-08-16 15:14:49 +00:00
Cedric BAIL 302e9e942e * evas: unbreak pipe rendering.
SVN revision: 51202
2010-08-16 12:12:13 +00:00
Lucas De Marchi 0a4617ae38 FORMATTING
* Remove vim modelines:
 find . -name '*.[chx]' -exec sed -i '/\/\*$/ {N;N;/ \* vim:ts/d}' \{\} \;
 find . -name '*.[chx]' -exec sed -i '/\/[\*\/] *vim:/d' \{\} \;

* Remove leading blank lines:
 find . -name '*.[cxh]' -exec sed -i '/./,$!d'

If you use vim, use this in your .vimrc:
set ts=8 sw=3 sts=8 expandtab cino=>5n-3f0^-2{2(0W1st0



SVN revision: 50816
2010-08-04 16:57:32 +00:00
Christopher Michael 28a5e44f7d Make evas build again (here at least).
Added missing unicode & bidi opts to necessary places.
Fixes lots of compiler warnings.

NB - Not all engines tested. If you spot a problem wrt any specific
engine, please report it.



SVN revision: 50601
2010-07-28 17:57:18 +00:00
Tom Hacohen a6d428334f Evas: Changing the font engine to work with Eina_Unicode instead of utf8.
Changing textblock and text objects to work with Eina_Unicode instead of utf8 (internally, API remains intact).
Started relying on new fribidi 0.19.2 instead of the old fribidi.
A lot of fixes to the font engine.
Renaming of evas_common_font_utf8_* to evas_common_encoding_utf8_*
This relies on new Eina changes and types: Eina_Unicode, Eina_UStrbuf and Eina_UStringshare.

SVN revision: 50595
2010-07-28 12:00:41 +00:00
Cedric BAIL 8006ed3753 * evas: METRIC and WORD cache require stringshare use in thread, so
enable it.


SVN revision: 50378
2010-07-20 12:07:51 +00:00
Cedric BAIL 8bd358c65e * evas: unbreak pipe rendering, that was a long break.
SVN revision: 50374
2010-07-20 09:32:28 +00:00
Gustavo Sverzut Barbieri 7521047f09 Fix invalid access if using async-render
Ouch, that was nasty! src/lib/cache/evas_cache_image.c was assuming
all Image_Entry were RGBA_Image (why?!?!?), thus doing the cast and
having mutexes and other to operate on garbage (possibly crashing due
segv). This happened to be the case with Soft16_Image used by
software_16 engines.

I'm not sure, but this may fix problems that people noticed with
async-render hanging their systems even if not explicitly enabled
during runtime.

I also found it quite strange the number of locks required by this
code! Clearly we could use macros to simplify and avoid bugs, but
maybe some atomic_inc/dec code should be used to remove half of the
mutexes in that code?

/me wonders what kinds of bug more we can expect from this code :-/



SVN revision: 50300
2010-07-16 22:52:04 +00:00
Carsten Haitzler a08e99cd82 warnings--
SVN revision: 49765
2010-06-20 06:32:05 +00:00
Gustavo Sverzut Barbieri 446b0040a4 make it easier to debug if it was enabled, and how :-)
minor style fixes.



SVN revision: 49100
2010-05-21 14:14:54 +00:00
Carsten Haitzler eaad0eb095 big patch from Samsung SAIT (Advanced research group) for async multi-frame
rendering. to turn on:

1.
configure with --enable-async-render
2.
export EVAS_RENDER_MODE=non-blocking
  
presto. necessitates some api swizzling (thus the expedite. ecore etc. changes)

the kind of results you get on a desktop:

http://www.rasterman.com/files/evas-async-vs-none.html



SVN revision: 49087
2010-05-21 07:10:45 +00:00
Cedric BAIL 3d27a7b9e4 * evas: improve thread rendering by moving image loading in worker thread.
SVN revision: 47434
2010-03-24 19:07:59 +00:00
Cedric BAIL 1a51c662bf * evas: make map work with threaded rendering.
SVN revision: 47429
2010-03-24 16:39:39 +00:00
Cedric BAIL 80901b0abe * evas: fix build with thread rendering on and scale cache off.
SVN revision: 47427
2010-03-24 14:46:28 +00:00
Cedric BAIL a859e60140 * evas: Make evas_object_move on Evas_Object_Polygon work.
TODO: Make evas_object_resize work also.


SVN revision: 47291
2010-03-16 13:23:37 +00:00
Cedric BAIL 8984a75799 * evas: Cleanup move to eina log.
Patch from Mathieu Taillefumier.


SVN revision: 43200
2009-10-22 15:22:22 +00:00