Commit Graph

529 Commits

Author SHA1 Message Date
Cedric BAIL 0839ec65ea * Evas: Improve RGBA_Font_* cache using hash and stringshare correctly.
Note: This should not impact font rendering, but if you notice anything
	wrong, please don't hesitate to report this to me.


SVN revision: 41050
2009-06-15 15:07:13 +00:00
Cedric BAIL f63beb3edf * Evas: Remove allocation/free from the critical path.
SVN revision: 41048
2009-06-15 14:34:33 +00:00
Gustavo Sverzut Barbieri 600d560fc6 Cleanup llvm warnings.
By: michael bouchaud.


SVN revision: 41033
2009-06-14 20:48:37 +00:00
Gustavo Sverzut Barbieri 3e04e9ec3f cleanup llvm warnings by michael bouchaud.
By: michael bouchaud.


SVN revision: 41024
2009-06-13 00:04:25 +00:00
Carsten Haitzler c3b8b4ee14 revertg big R to L patches because they break cursors and selection.... BACK
boy BACK!



SVN revision: 40783
2009-05-22 21:12:32 +00:00
Iván Briano 5888d62400 Make fribidi truly optional
SVN revision: 40755
2009-05-20 03:14:29 +00:00
Vincent Torri 0c233cfcf3 missing declaration of evas_common_font_query_last_up_to_pos()
patch by Lars Munch (previous one too)


SVN revision: 40729
2009-05-18 17:33:54 +00:00
Carsten Haitzler e999c88e80 tasn's rtl pathes and improvements... continued!
SVN revision: 40715
2009-05-18 06:08:15 +00:00
Carsten Haitzler c830f68a06 1. fix scalecache to actually respect env vars set!
2. fix textblock cursor stuff in corner case.



SVN revision: 40617
2009-05-13 12:20:14 +00:00
Carsten Haitzler 47f6f036c1 fix load opts to only unload/reload if opts changed for cserve
SVN revision: 40573
2009-05-10 03:06:49 +00:00
Carsten Haitzler f79b4a4a2f 1. scalecache config env vars an use them
2. more api's related to cserve



SVN revision: 40548
2009-05-08 11:26:25 +00:00
Carsten Haitzler 85bff718d6 1. scale cache now allows you to hint at the object if its dynamic, static or
none (ie default) and the engines actually understand it and use it.
2. fixes to scalecache and cserver too. more toto's done and its now been
stress tested by me - and i think cserve is ready to go gold. just enable it
with export EVAS_CSERVE=1 in your env for any eflapps - and run evas_cserve
(cmd-line options avalable plus cmd-line tol to query settings change on the
fly and query statsitics and state)



SVN revision: 40536
2009-05-07 13:29:56 +00:00
Carsten Haitzler d92a6d99a7 more cserver work for sharede cache- improvements
SVN revision: 40524
2009-05-06 12:36:06 +00:00
Gustavo Sverzut Barbieri 8ef8b1e15a fix build of cserve with -fvisibility=hidden.
SVN revision: 40486
2009-05-02 15:53:48 +00:00
Carsten Haitzler 46e8aa1b0d shared cache server++
is it ok?

1. it can be --disabled in evas's configure, but i think it works WITHOUT
disabling it (runtime) as it falls back to the old way of loading
2. it may cause build problems on some platforms - without it being enabled
we won't find out, so enable.
3. it needs enabling runtime to make use of it so it should be safe for now
until you enable it.

what is it?

it is a SHARED cache server - that means images loaded are loaded BY the
cache server (not by the actual process using evas). images are shared via
shared memory segments (shm_open + mmap). this means only 1 copy is in all
ram at any time - no matter how many processes need it , and its only loaded
once. also if another app has already loaded the same data - and its in the
cache or active hash, then another process needing the same stuff will avoid
the loads as it will just get instant replies from the cache of "image already
there". as it runs in its own process it can also time-out images from the
cache too.

right now you enable it by doing 2 things

1. run evas_cserve (it has cmd-line options to configure cache etc.
2. export EVAS_CSERVE=1 (im the environment of apps that should use the cache
server).

it works (for me) without crashes or problems. except for the following:

1. preloading doesnt work so its disabled if cserve is enabled. thisis
because the load threads interfere withthe unix comms socket causing
problems. this need to really change and have the cserve know about/do
preload and let the select() on the evas async events fd listen for the
unsolicited reply "load done". but it's not broken - simple preloads are
syncronous and forced if cserve is enabled (at build time).
2. if cserve is killed/crashes every app using it will have a bad day. baaad
day. so dont do it. also cserve may be vulnerable to apps crashing on it - it
may also exit with sigpipe. this needs fixing.
3. if the apps load using relative paths - this will break as it doesnt
account for the CWD of the client currently. will be fixed.
4. no way to change cache config runtime (yet)
5. no way to get internal cache state (yet).
6. if cache server exist - it wont clean up the shmem file nodes in /dev/shm
- it will clean on restart (remove the old junk). this needs fixing.

if you fine other issues - let me know.

things for the future:

1. now its a separate server.. the server could do async http etc. loads too
2. as a server it could monitor history of usage of files and images and
auto-pre-load files it knows historically are loaded then whose data is 
immediately accessed.
3. the same infra could be used to share font loads (freetype and/or 
fontconfig data).
4. ultimately being able to share rendered font glyphs will help a lot too.
5. it could, on its own, monitor "free memory" and when free memory runs
load, reduce cache size dynamically. (improving low memory situations).
6. it should get a gui to query cache state/contents and display visually.
this would be awesome to have a list of thumbnails that show whats in the
cache, how many referencesa they have, last active timestamps etc.

blah blah.

please let me know if the build is broken asap though as i will vanish
offline for a bit in about 24hrs...



SVN revision: 40478
2009-05-01 07:11:07 +00:00
Mike Frysinger 0041222bb0 pull in evas_common.h for evas_string_char_len_get() decl
SVN revision: 40428
2009-04-28 05:06:48 +00:00
Iván Briano 554dccdb0b some formatting
SVN revision: 40343
2009-04-24 04:35:52 +00:00
Iván Briano 6c7831c3ab Build against newer Fribidi
SVN revision: 40341
2009-04-24 00:21:26 +00:00
Carsten Haitzler 99ccf484f8 snapworth quality - distchecked. sonames bumped. rev's bumped. tarballs
uploaded.



SVN revision: 40284
2009-04-22 14:07:05 +00:00
Vincent Torri cc2916b58f add evas_intl_utils.h to extra dist (fix make distcheck)
reported by Albin Tonnerre


SVN revision: 40243
2009-04-19 22:06:59 +00:00
Carsten Haitzler 38811d99c5 cleanup on shutdown better
SVN revision: 40242
2009-04-19 20:40:41 +00:00
Iván Briano 994190d144 Don't leak, and be consistent with return values.
SVN revision: 40101
2009-04-16 04:52:33 +00:00
Carsten Haitzler ce6094df3f move fribidi link to main lib
SVN revision: 40082
2009-04-15 12:01:05 +00:00
Carsten Haitzler 2f0458439a and actually enable th RTL code!
SVN revision: 39981
2009-04-11 13:11:10 +00:00
Carsten Haitzler e279ba4bbe more files!
SVN revision: 39974
2009-04-11 08:11:47 +00:00
Carsten Haitzler 02f87aeaf5 and add files!
SVN revision: 39973
2009-04-11 08:06:50 +00:00
Carsten Haitzler c89a71c6c2 TAsn: patch from tasn. use libfribid for Right-to-left text.
this (apparently) makes right-to-left work for display. that means:

hebrew
yiddish
arabic
persian
...

i don't read (or write ... or speak) an of these...

so.. i'll leave it up to others to find bugs/problems and send patches.
thanks a huge amount to TAsn for the patch!



SVN revision: 39972
2009-04-11 07:51:20 +00:00
Carsten Haitzler b0b043f443 scalecache tracks normal cache size etc. etc. etc.
SVN revision: 39907
2009-04-09 13:20:00 +00:00
Carsten Haitzler d5cfffc3c2 add - in theory rgb24+32 666 support (ezx).
SVN revision: 39836
2009-04-03 01:00:54 +00:00
Carsten Haitzler 9c4c129125 hmm some more generous params for sc.
SVN revision: 39808
2009-03-31 04:12:09 +00:00
Carsten Haitzler 44dc876479 remove accounting info not used atm.
SVN revision: 39766
2009-03-28 02:50:19 +00:00
Carsten Haitzler 9dbf47682d oops and fix the flags!
SVN revision: 39762
2009-03-27 14:11:27 +00:00
Carsten Haitzler 28034d840b cover not good speedup case.
SVN revision: 39760
2009-03-27 13:46:53 +00:00
Carsten Haitzler df68d791b5 enable cache again
SVN revision: 39745
2009-03-27 07:34:45 +00:00
Carsten Haitzler 5f0c7389a2 fix non-scalecache mode
SVN revision: 39744
2009-03-27 07:22:46 +00:00
Carsten Haitzler 66cc98b0f4 also be able to free orig data now (and reload)
SVN revision: 39743
2009-03-27 06:06:45 +00:00
Carsten Haitzler e0a8a97b6d now enough logic to know when to unload original... now just need to make
unloaidng possible without instant-reload.



SVN revision: 39742
2009-03-27 03:50:03 +00:00
Carsten Haitzler 1a224311d6 make pipe renderer separate to thread support - off by default.
SVN revision: 39740
2009-03-27 01:48:58 +00:00
Carsten Haitzler 3335fef2aa found it! i was building without threading for realistic testing. lock issue.
fixed.



SVN revision: 39739
2009-03-27 00:30:41 +00:00
Gustavo Sverzut Barbieri 02d715fa7c brokes e17, canola and most things?
dunno why, but at least it does for me and some users at #e/#edevelop,
e17 freezes at start, so does canola and other evas apps, maybe due
64-bits? No time to investigate right now (at a conference).



SVN revision: 39738
2009-03-26 21:48:24 +00:00
Carsten Haitzler 29216b4a78 for now... enable scalecache. i havent seen it crash e or expedite or
elementary nor leak... so .. let's see. not 100% done yet. but good.



SVN revision: 39724
2009-03-26 12:47:44 +00:00
Carsten Haitzler a3f68ea9d9 1. a bunch of neon asm infra and some asm, but only the neon that works is
enabled. the blending is not working/complete. the neon for fills and copies
isnt actually faster though currently :(
2. scalecache infra - disabled for now. working on it.



SVN revision: 39723
2009-03-26 07:14:08 +00:00
Gustavo Sverzut Barbieri 74ece51f0b warnings--
SVN revision: 39593
2009-03-19 19:29:05 +00:00
Cedric BAIL f6a3045ce3 * evas: Add forgottent file needed for make dist.
SVN revision: 39583
2009-03-19 16:21:09 +00:00
Gustavo Sverzut Barbieri 1213744f42 fix image_data_put on software 16 bits engine.
SVN revision: 39537
2009-03-17 20:57:02 +00:00
Sebastian Dransfeld 8d40d92f83 Check whether functions exist before executing them.
SVN revision: 39521
2009-03-17 13:39:23 +00:00
Carsten Haitzler 09176167bd more neon infra - just for "copies" right now. only 1 func filled in.
SVN revision: 39502
2009-03-16 10:50:37 +00:00
Carsten Haitzler eba0aaffd6 preliminary neon asm support. do NOT use!
SVN revision: 39474
2009-03-14 06:48:25 +00:00
Carsten Haitzler 6bc4266805 patch from Tiago Falcão - unroll loops in evas a bit.
SVN revision: 39467
2009-03-13 15:18:39 +00:00
Cedric BAIL ed6e29a5dc * evas: Add some const.
SVN revision: 39345
2009-03-03 14:38:24 +00:00