Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas
Dir : e17/libs/evas/src/lib/engines/common Modified Files: evas_pipe.c Log Message: a few things. 1. disable viewports other than 1:1 at 0,0 2. remove output space coorsds for pointer. 3. remove geom caching 4. make threaded pipelined engine a runtime detect if u have > 1 cpu. 5. pthread build default if u have pthread.h and sched.h =================================================================== RCS file: /cvs/e/e17/libs/evas/src/lib/engines/common/evas_pipe.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- evas_pipe.c 15 Nov 2006 16:44:34 -0000 1.2 +++ evas_pipe.c 16 Nov 2006 03:20:24 -0000 1.3 @@ -123,12 +123,14 @@ #ifdef BUILD_PTHREAD int i, y, h; + if (thread_num == 1) return; if (thread_num == 0) { int cpunum; cpunum = evas_common_cpu_count(); thread_num = cpunum; + if (thread_num == 1) return; pthread_barrier_init(&(thbarrier[0]), NULL, thread_num + 1); for (i = 0; i < thread_num; i++) { @@ -176,6 +178,7 @@ /* send startsignal */ // printf("START %i\n", i); } + /* tell worker threads to start */ pthread_barrier_init(&(thbarrier[1]), NULL, thread_num + 1); pthread_barrier_wait(&(thbarrier[0])); pthread_barrier_destroy(&(thbarrier[0])); @@ -191,26 +194,27 @@ if (!im->pipe) return; #ifdef BUILD_PTHREAD - /* FIXME: PTHREAD join all threads here (if not finished) or begin then join - * otherwise just process pipe */ + if (thread_num > 1) { + /* sync worker threads */ pthread_barrier_init(&(thbarrier[0]), NULL, thread_num + 1); pthread_barrier_wait(&(thbarrier[1])); pthread_barrier_destroy(&(thbarrier[1])); // printf("DONE\n"); } - -#else - /* process pipe - 1 thead */ - for (p = im->pipe; p; p = (RGBA_Pipe *)((Evas_Object_List *)p)->next) + else +#endif { - for (i = 0; i < p->op_num; i++) + /* process pipe - 1 thead */ + for (p = im->pipe; p; p = (RGBA_Pipe *)((Evas_Object_List *)p)->next) { - if (p->op[i].op_func) - p->op[i].op_func(im, &(p->op[i]), NULL); + for (i = 0; i < p->op_num; i++) + { + if (p->op[i].op_func) + p->op[i].op_func(im, &(p->op[i]), NULL); + } } } -#endif evas_common_cpu_end_opt(); evas_common_pipe_free(im); } ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs