Commit Graph

892 Commits

Author SHA1 Message Date
Carsten Haitzler 3f915e1e3f oops dont enable copy path!
SVN revision: 66727
2012-01-02 03:32:57 +00:00
Carsten Haitzler 8e4391d38b make some more notes for partial swap (copy gabk to front) but still
doesnt work.. just sits there and does nothing. wtf.



SVN revision: 66726
2012-01-02 03:30:23 +00:00
Carsten Haitzler 4273f5846c found nvidia eat-cpu-bug. glXWaitGL() spins using all cpu it can find,
though nvidia fixed the spinning on glXSwapBuffers() long ago, they
didn't fix this one.



SVN revision: 66710
2012-01-01 06:47:16 +00:00
Christopher Michael 26fcca18b7 Evas: Add Wayland EGL engine (still experimental).
SVN revision: 66541
2011-12-26 23:13:52 +00:00
Christopher Michael b6b9744f19 Evas (Wayland Shm Engine): Cleanup of commented out code. Fix
calculation of update region.



SVN revision: 66540
2011-12-26 23:12:50 +00:00
Christopher Michael b560f1fc1a Evas (Wayland_Shm Engine): Check for valid RGBA_Image before trying to
use it. Use correct stride calculation for bytes.



SVN revision: 66539
2011-12-26 23:12:05 +00:00
Michael BOUCHAUD aec13b5d41 evas: forget to overide this in gl, fix evas_object_image_region_support_get
SVN revision: 66480
2011-12-23 12:00:52 +00:00
Sanghee Park 550b8417c7 From: Sanghee Park <sh15.park@samsung.com>
Subject: Drawing objects by pixman

        * Extend pixman support to allow other operations to use
          pixman when doing software rendering. On x86 this isn't useful
          but on ARMv7 with NEON pixman happens to do better with image
          blending and nearest scale blending.
        * Add tiled rotator for 32bit display as an option.



SVN revision: 66478
2011-12-23 11:50:29 +00:00
Carsten Haitzler dbc5afdee2 sorry sungwoo - going to have to back this dlopen/dlsym styuff out.
intel drivers don;'t like it for some odd reason - i'm trying to track
it down but i can't sanely try middlegrounds right now (eg dont
dlopen/dlsym but actually directly assign symbols etc.), so back out
and let's figure this out before it goes back in :(



SVN revision: 66308
2011-12-18 05:03:24 +00:00
Christopher Michael cbbe439629 Evas: Gl_X11: Fix typo? for __UNUSED__ param.
SVN revision: 66224
2011-12-14 18:52:42 +00:00
Christopher Michael 0fccea0dee Evas: Add a Wayland Shared Memory engine (similar to the buffer &
framebuffer engines). Add Evas framespace set/get functions.



SVN revision: 66223
2011-12-14 18:44:20 +00:00
Christopher Michael b3d6859de5 Evas: Software_Generic: Fix typo? for __UNUSED__.
SVN revision: 66222
2011-12-14 18:27:29 +00:00
Michael BOUCHAUD 33eb1e5e79 evas: Add api to know if an evas_object_image could support region
SVN revision: 66170
2011-12-13 16:58:20 +00:00
Christopher Michael 9935288eaa Evas (gl engine): Remove incorrect __UNUSED__ on paramaters that are
actually used.



SVN revision: 65928
2011-12-06 00:44:25 +00:00
Carsten Haitzler c75637b6bf remove warnings!
SVN revision: 65896
2011-12-05 09:26:04 +00:00
Carsten Haitzler e477ff0629 remove warning - bug ready to happen with fastpath. didnt pass
sharedlist or direct down.



SVN revision: 65895
2011-12-05 09:18:05 +00:00
Carsten Haitzler 9f5a8809c7 fix gles/egl bugs/issues in sungwoo's new patch
SVN revision: 65894
2011-12-05 09:05:04 +00:00
Carsten Haitzler 5967841988 I'm attaching a patch for the initial version of the GL Fastpath
addition to evas gl backend.

Working on different mobile devices, we've noticed that the cost of context
switch (MakeCurrent) in GL can be very expensive depending on the driver
implementation.  To minimize the poorly written driver's context switch
overhead, I've implemented a state tracking layer on top of the driver
implemented GL.

Essentially, this layer wraps all the GL/Glue(GLX/EGL) APIs and manages its own
state changes.  Internally, only one real GL context is created and logical
contexts are created every time a user requests context creation.  The logical
contexts keep track of its states and sets only the necessary states
(the ones that are different than the current ones)
when there is a MakeCurrent request.  The real MakeCurrent gets called when
there is a Surface/Window change request.

The GL library is dlopened and all the APIs are dlsym'ed and wrapped
accordingly.  All the GL functions are in evas_gl_core.{h,c}.

Here's a very simply flow of the code.
   - all the APIs are exported as function pointers (*glsym_glBegin),
     (*glsm_eglCreatContext), and etc.
   - all the native GL/Glue(GLX/EGL) APIs are dlsym'ed as _sym_glBegin,
     _sym_eglCreateContext, and etc.
   - all the fastpath APIs are implmemnted as fpgl_glBegin,
     fpgl_eglCreateContext, and etc.
   - if faspath is seletected, the exported APIs are set accordingly
     ie. glsym_glBegin = fpgl_glBegin;
   - default mode is the regular gl symbols are directly set.
     ie. glsym_glBegin = _sym_glBegin;
             
I have an Environment variable where you can set it to three different Modes

EVAS_GL_FASTPATH = 0    // Default mode. Regular GL symbols are directly loaded
EVAS_GL_FASTPATH = 1    // Fastpath mode. Takes the path described above.
EVAS_GL_FASTPATH = 2    // Wrapped mode.  All the regular GL functions are
                           wrapped once.  This can be used for various
purposes

Since all the GL symbols are now loaded in this library, I took out all
the gl symbol loading parts in the evas gl backend as you'll see in the patch.
The changes to the engine and the backend itself is pretty minor.

There are still some known issues to hammer out but I thought we're at a good
place for an initial version so that my source doesn't diverge too much.

Known Issues and To Do's
* Current GL Fastpath version doesn't support multiple threads. Instead of
  having one global real context, I would need to do it for each thread. I'll
  get on this soon.
  
  * Issues running Evas GL on certain conditions.  When running the elementary
  test (with gl engine), if you run ELMGLview test that runs in ON_DEMAND mode,
  everything works fine. BUT, when you run the ELMGLView test in ALWAYS
    mode, the subsequent elm tests shows blank screen. When you destroy the
  GLView window, everything else comes on fine.
  
  * Resource protection code.  This actually applies to Evas GL code in general
  as well. Since all the resources are shared among all the contexts that get
  created, I would like to eventually have a resource protecting mechanism that
  prevents access to resources outside of its context unless specifically
  specified.
  
  I'm attaching three files
     - evas_gl_core.h, evas_gl_core.c, fastpath.patch
     
  To get the code running...
     - copy evas_gl_core.{c,h} to src/modules/engine/gl_common/
     - apply the fastpath.patch
     - compile/install evas
     - to run with fastpath GL (ie. % EVAS_GL_FASTPATH=1 ./evasgl_sample1)



SVN revision: 65891
2011-12-05 08:54:14 +00:00
Christopher Michael f0b80715e4 Evas: Add missing __UNUSED__ in buffer engine.
SVN revision: 65614
2011-11-27 16:27:02 +00:00
Cedric BAIL 889b6c749f evas: warning--
SVN revision: 65432
2011-11-20 13:52:18 +00:00
Carsten Haitzler 27705ad95b fix dyn image data return due to change i made a little bit ago
SVN revision: 65159
2011-11-14 09:27:29 +00:00
Cedric BAIL e0df29b4f2 evas: upload the right texture size whatever rounding the hardware require.
SVN revision: 65138
2011-11-13 22:21:58 +00:00
Carsten Haitzler 34988a54e4 ooh aznd other part of dyn img patch goes in.
SVN revision: 65053
2011-11-11 07:47:25 +00:00
Carsten Haitzler f6b826fde9 oops - typo in dyn image fix. fix!
SVN revision: 65052
2011-11-11 07:43:38 +00:00
Carsten Haitzler dcb34d789b handle refcounting of dyn img data to allow for get, get, set, set
pairs.



SVN revision: 65051
2011-11-11 07:36:15 +00:00
Jiyoun Park c049c0e12b remove white space and tab
SVN revision: 65009
2011-11-10 08:59:09 +00:00
Youness Alaoui c21427071b Evas: Add a psl1ght engine for the PS3
SVN revision: 64779
2011-11-05 17:49:37 +00:00
Jiyoun Park fb44314af1 Currently, only software engine checks animation flag during rendering.
I add animation check code to gl engine.


SVN revision: 64704
2011-11-03 15:20:30 +00:00
Nicolas Aguirre 7f39765a08 evas: gl_cocoa fix installation of Evas_Engine_Gl_Cocoa header
SVN revision: 64663
2011-11-02 20:15:42 +00:00
Nicolas Aguirre bdfeb1df14 evas: Add gl_cocoa engine
SVN revision: 64653
2011-11-02 18:23:54 +00:00
Vincent Torri 346eba9259 declare the variables at the beginning of the block
SVN revision: 64516
2011-10-30 05:02:05 +00:00
Mike Blumenkrantz 80b018b790 add missing variable from r64139
direct all spankies to raster and Sung W. Park


SVN revision: 64514
2011-10-30 02:04:50 +00:00
Sung W. Park a3a5a85d92 From: "Sung W. Park" <sungwoo@gmail.com>
Subject: [E-devel] [E-Devel][Patch] Evas GL Color Format Enum change
(and ElmGLview changes accordingly)

I'm submitting a patch that changes the color format for Evas GL.

When I first wrote Evas_GL, I just had EVAS_GL_RGB_8 and EVAS_GL_RGBA_8 and etc
but it was misleading for some people.  It was more of a filler since I couldn't decide on
a name.  I'm finally changing it to make it more clear.



SVN revision: 64491
2011-10-28 11:08:23 +00:00
Carsten Haitzler e92b545bee we can't limit sizes on load because of "i'm just loading the header
to find out the size" tricks. :(



SVN revision: 64410
2011-10-26 08:33:41 +00:00
Carsten Haitzler a75ecced08 warn--
SVN revision: 64388
2011-10-25 12:14:48 +00:00
Carsten Haitzler 4483c0ef6f warning--
SVN revision: 64387
2011-10-25 12:07:56 +00:00
Carsten Haitzler bc10321643 disable getting of xft.dpi - always been an option but it just leads
to inconsistent rendering.



SVN revision: 64386
2011-10-25 12:01:44 +00:00
Carsten Haitzler fb447485e8 oh dear.. lewft and right pixle duplication for interpolation had the
WRONG PIXELS!!! amazing it never crashed! fix fix! (also handle
opengls that doesnt support unpack row length)



SVN revision: 64377
2011-10-25 09:27:54 +00:00
Rafael Antognolli 78410d7e8f evas/fb: use virtual sizes to describe the fb mode geometry.
This was causing the fb engine to draw incorrectly when the virtual size
was different from the size (xres != xres_virtual). For example, it
happens an additional monitor is plugged into a notebook.
Patch for SiT.



SVN revision: 64259
2011-10-21 16:21:09 +00:00
Cedric BAIL ce3a658ef7 evas: coorectly dirty YUV data.
SVN revision: 64254
2011-10-21 14:06:42 +00:00
Carsten Haitzler a4bb9db2fa hmm gles doesnt have internal format fetching.
SVN revision: 64253
2011-10-21 12:03:41 +00:00
Carsten Haitzler f8f5ad72ef note on detecting texture alloc fail. need to percolate that back
SVN revision: 64250
2011-10-21 10:03:17 +00:00
Carsten Haitzler f95a1783a7 debug for future. for now found the problem.
SVN revision: 64248
2011-10-21 09:59:13 +00:00
Carsten Haitzler 11409eb48e have evas engine also to update rect math so we can exclude useless
updates when obscured objects change



SVN revision: 64246
2011-10-21 08:58:00 +00:00
Carsten Haitzler 1541b0e97e add call to get maximum image size (eg max texture size)
SVN revision: 64244
2011-10-21 08:17:14 +00:00
Carsten Haitzler f63b1d9ecd if image biger than max texture size... report allocation errors.
SVN revision: 64241
2011-10-21 06:10:15 +00:00
Carsten Haitzler a396da70de we dont need the dirty at the end either.
SVN revision: 64173
2011-10-19 09:50:55 +00:00
Cedric BAIL 519750e778 evas: simplify code at the same time.
SVN revision: 64169
2011-10-19 09:04:18 +00:00
Carsten Haitzler 6f3529fe65 nono - we dont dirty images when we set data...
SVN revision: 64168
2011-10-19 08:59:29 +00:00
Jiyoun Park bfbd9abf9d From: Jiyoun Park <jy0703.park@samsung.com>
Subject: [E-devel] [Patch] modify gl engine's animated function
related with cache entry

I modified the gl engine code related with animated images
This is very trivial.  Evas image object passes images to the engine. 
In the software engine, it is a cache entry , but in the GL engine, it is 
an Evas_GL Image. So I modified the gl engine code to get the cache entry
from the gl image.



SVN revision: 64143
2011-10-18 09:10:26 +00:00