Commit Graph

424 Commits

Author SHA1 Message Date
Chris Michael 76cea1712c Avoid potential memleak on rotation of tilebuf.
Port of 70f443d8a8 to wayland egl

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-29 08:24:10 +01:00
Chris Michael ce716ff052 Avoid potential memleak on rotation of tilebuf.
Port of 70f443d8a8 to wayland_shm

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-29 08:21:36 +01:00
Chris Michael a9853f96f7 Port 1f82fbe14d to wayland shm engine
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-29 08:11:16 +01:00
Chris Michael b43421ae5b Fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-29 08:05:47 +01:00
Carsten Haitzler 70f443d8a8 evas - avoid memleak on rotation of tilebuf in engine for gl and sw possibly. 2013-08-29 14:58:09 +09:00
Rafael Antognolli f69cde8107 evas/gl_x11: eng_window_use will not always force makecurrent.
If the egl_surface is different from the current one, it may be that the
it has been destroyed already. Removing the below check (and just
checking for different contexts) will avoid calling makecurrent when
destroying a window.  That was always failing anyway.

Should fix https://phab.enlightenment.org/T311 for gl_x11 too.
2013-08-29 17:25:40 -03:00
Carsten Haitzler 1f82fbe14d evas - unify partial update in sw engine swapper so it is like gl 2013-08-27 17:21:10 +09:00
Rafael Antognolli 5d053bf19b evas/wayland_egl: eng_window_use will not always force makecurrent.
If the egl_surface is different from the current one, it may be that the it has
been destroyed already. Removing the below check (and just checking for
different contexts) will avoid calling makecurrent when destroying a window.
That was always failing anyway.

Should fix https://phab.enlightenment.org/T311 for wayland_egl.
2013-08-23 16:19:42 -03:00
Rafael Antognolli 3a654f795c evas/gl: Don't look for EXT and ARB extensions when on GLES.
At least on recent mesa (since commit 9f07ca11c17), it will find the
mentioned symbols but they won't really work, leading to error messages,
and possibly some other errors. So far, I just ifdef'ed the
glGenFramebuffer and glBindFramebuffer functions, but it may require
others to be ifdef'ed too.

This is just a workaround, to fix https://phab.enlightenment.org/T246.
2013-08-21 12:39:17 -03:00
Cedric Bail 468eb14635 evas: fix comment to actually compile if you use them. 2013-08-06 15:44:43 +09:00
Sung W. Park 5ac17a52d5 Evas: Fix Evas_GL engine shutdown error.
It was trying to use access a struct for egl_disp after the struct
was freed..
2013-07-30 19:45:40 +09:00
Chris Michael 43e60f3f83 Check that we have both Rects and Count is > 0 during buffer attach.
NB: When trying to attach a buffer to a surface, there was a corner
case that could fail in that if we just had 'rects' but count was 0,
then the surface would not get damaged (essentially a call to
wl_surface_damage would get passed 0,0 as the size). This fixes that
problem in that if count is <= 0 now, then we'll damage the whole
surface.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-25 15:45:55 +01:00
Chris Michael d112487e84 When we destroy the shm_pool, reset the swapper used_size to zero.
Remove FIXME and resize the the shm_pool if it is too small for the
new buffer.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-25 09:13:08 +01:00
ChunEon Park 231d619c8c evas - found a inccorect check while reading the code. 2013-07-25 16:05:56 +09:00
ChunEon Park f4377b316c evas - skip the map rendering if all points are transparent. 2013-07-25 16:01:49 +09:00
Chris Michael 3482b91624 No longer necessary to set the surface user_data to be equal to the
buffer.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-23 07:15:20 +01:00
Sung W. Park 7aa516c01a Evas: adding image dump debug feature for wayland_egl backend
Porting commit f10c108283d9b76708418ba172b9ff0b28a09cd6 to wayland
engine.

Added a feature to dump out a png image before calling SwapBuffers.
To turn on the feature, use the following env vars.

EVAS_GL_SWAP_BUFFER_DEBUG_DIR="dir_name" sets the name of the directory
that the files will be output to and enables the debug mode.

EVAS_GL_SWAP_BUFFER_DEBUG_ALWAYS=1 will enable the writing of the
files every frame.  This in effect turns on the swap_buffer_debug
variable, which can be set on or off in gdb for debugging.  This will
allow dumping of certain frames without having to dump out a ton of
files to track down one frame.
2013-07-23 10:27:28 +09:00
Sung W. Park 3074280217 Evas: adding image dump debug feature for gl_x11 backend
Added a feature to dump out a png image before calling SwapBuffers.
To turn on the feature, use the following env vars.

EVAS_GL_SWAP_BUFFER_DEBUG_DIR="dir_name" sets the name of the directory
that the files will be output to and enables the debug mode.

EVAS_GL_SWAP_BUFFER_DEBUG_ALWAYS=1 will enable the writing of the
files every frame.  This in effect turns on the swap_buffer_debug
variable, which can be set on or off in gdb for debugging.  This will
allow dumping of certain frames without having to dump out a ton of
files to track down one frame.
2013-07-23 10:27:28 +09:00
Cedric Bail 906d7adad7 evas: put the test after we had a chance to update the texture. 2013-07-15 19:12:01 +09:00
Carsten Haitzler 3c891b4058 evas gl: cover some more cannot-allocate-texture cases. 2013-07-15 10:59:29 +09:00
Carsten Haitzler edd39272bd evas gl: if img src size == dst on draw, turn smooth off to avoid ghosting 2013-07-11 17:39:08 +09:00
Carsten Haitzler 199fb6523e evas gl engine - paranoia: check max texture size limits on texture alloc 2013-07-11 12:39:44 +09:00
Cedric Bail f54a09ef83 Revert "evas: use Eina_Tiler for GL backend."
This reverts commit 87b49cf103.
2013-07-09 10:42:01 +09:00
Cedric Bail 87b49cf103 evas: use Eina_Tiler for GL backend.
This is a start to leverage more on our infrastructure so that later
optimizing Eina_Tiler will be more usefull.
2013-07-09 09:48:09 +09:00
Chris Michael 6229a871de When printing this debug message, check for valid extension string get
function First.

NB: Fixes Coverity CID1039394

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-08 14:30:41 +01:00
Chris Michael 1140dbceeb Add missing eina_lock_release when we exit
Since we take the lock at the start of the function, we should release
the mutex lock if we are going to return.

NB: Fixes Coverity CID1039381

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-08 14:10:44 +01:00
Chris Michael 6198351629 Fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-08 14:09:50 +01:00
Chris Michael 1ea718c283 Fix memleak reported by Coverity.
NB: Fixes Coverity CID1039654

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-08 08:38:54 +01:00
Chris Michael 72347e539b Fix copy/paste error in gl_common_context_push. (I beleive that texm
texture was wanted here, not tex texture).

MB: Fixes Coverity 1039670

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-08 08:26:08 +01:00
Cedric Bail 913d56da9e evas: make it possible to disable preload for buggy driver. 2013-07-05 15:39:44 +09:00
Cedric Bail 0f153be0e5 evas: fix bugin Enlightenment triggering a path where data are loaded, but flags is not set.
This fix T187.
2013-07-03 12:48:38 +09:00
Carsten Haitzler 22ad827274 evas gl: fix origin of swapbufferswithdamage to be BOTTOM-LEFT based... 2013-07-03 12:11:18 +09:00
Carsten Haitzler 1f2c19749f in drm_shutdown set tried to false... 2013-07-02 17:26:18 +09:00
Jean-Philippe Andre 90d8647c02 evas/cserve2: fix crash with YUV tests in expedite.
Signed-off-by: Cedric Bail <cedric.bail@samsung.com>
2013-07-02 16:58:10 +09:00
Chris Michael f9348a5015 Fix klockwork possible memleak report:
If we get an error trying to "make current" an allocated surface, then
we should free that allocated surface.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-28 14:23:57 +01:00
Daniel Willmann dd76f4cd05 evas gl_x11: Fix uninitialized use of re in eng_output_flush()
In case of render_mode == EVAS_RENDER_MODE_ASYNC_INIT we're jumping
directly to end which then calls
evas_gl_preload_render_unlock(eng_preload_make_current, re);

Make sure re is initialized with the render engine data so we don't
dereference junk.

Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-06-26 14:42:10 +01:00
Daniel Willmann adcde1f87e evas gl_common: Fix incorrect number of parameters in functions
_evgl_tls_resource_get() and _surface_context_list_print() don't take
parameters.

Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
2013-06-26 14:42:10 +01:00
Tom Hacohen 182dfb82d4 Evas gl: Fixed double-free when failing gl init. 2013-06-26 10:40:44 +01:00
Cedric Bail d64c808a73 evas: check wether we do have a data or not. 2013-06-26 11:49:16 +09:00
Chris Michael 0ae7282869 Port cedric's async uploading GL texture commit to wayland_egl engine.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-24 10:14:21 +01:00
Chris Michael 712a528025 Make gl_x11 compile again
eglSwap|BuffersRegion was replaced with eglSwapBuffersWithDamage.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-24 09:27:14 +01:00
Cedric Bail d06a0982ef evas: add support for asynchronously uploading GL texture.
NOTE: when using Evas_Object image preload infrastructure the GL texture
upload was uploaded from the main loop during the rendering stage. This
could lead to some frame drop during fast animation due to the time needed
to upload that texture.

This patch fix this problem by uploading a small texture quickly (16x16)
and waiting for going back to the main loop to be able to use the same GL
context from another thread to do the texture upload asynchronously without
blocking the main loop.
2013-06-24 12:04:18 +09:00
Carsten Haitzler 7c65f576df evas: remove segv added by cedric fastpath optimization 2013-06-22 10:58:03 +09:00
Sebastian Dransfeld 336f6ec328 efl: formatting 2013-06-20 13:28:18 +02:00
Sebastian Dransfeld 068f1ddc62 efl: formatting 2013-06-20 13:08:36 +02:00
Sebastian Dransfeld 51023d2d4f evas: Keep sane name for public header
Evas_Common.h should be used for the public header, and rather rename
evas_common.h internal header to another name.

Sa:
Evas_Common_Header.h -> Evas_Common.h
evas_common.h -> evas_common_private.h

Shouldn't have both Evas_Common.h and evas_common.h because of case
insensitive filesystems.
2013-06-20 12:53:29 +02:00
Cedric Bail 6adb604dae evas: fix texture allocation bugs. 2013-06-20 17:36:24 +09:00
Cedric Bail c9c77a4004 evas: fast path for map with same color on all corner. 2013-06-20 17:35:04 +09:00
Chris Michael f6349ef9f9 Ooops, missing on "get_pixles" --> "pixels_get" conversion
Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-06-17 23:37:18 +01:00
Chris Michael 0700e9dcc0 Fix render engine function "get_pixels" to be "pixels_get" (EFL
prefers verbs to be last for function declarations).

Also, remove unnecessary if block which was checking for the
Render_Engine pixels_get function as it was previously checked for in
the 'if' above.

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-06-17 23:33:49 +01:00
Chris Michael dba0a5ea1f Formatting fixes
Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-06-17 23:32:20 +01:00
Sung W. Park 8e6f0aa11c Evas: add partial rendering support for evasgl direct rendering
Evas_GL Direct rendering is an optimization path that renders
directly to the window if conditions are met.  Because evas gl
backend used to re-render the entire screen, evas_gl direct
rendering didin't have to concern with partial region rendering.
Now that partial rendering/swapping has been applied to evas gl-
backend, evas_gl direct rendering also had to take into account
clip regions. in order to properly apply it, some adjustments
were made to the engine functions and etc.
2013-06-17 18:32:00 +09:00
Sung W. Park 316be3e6c7 Revert "Saving evasgl direct partial rendering fix temporarily"
This reverts commit e6359132de.
2013-06-17 18:22:15 +09:00
Sung W. Park 62e146f2fc Revert "Touch for evas gl direct rendering partial rendering/swap fix."
This reverts commit 382ffbb4f5.
2013-06-17 18:22:04 +09:00
Sung W. Park d5d5a0125d Revert "Added Wayland fix for evas_gl direct fix"
This reverts commit e1c238b1be.
2013-06-17 18:21:55 +09:00
Sung W. Park e1c238b1be Added Wayland fix for evas_gl direct fix 2013-06-17 17:52:16 +09:00
Sung W. Park 382ffbb4f5 Touch for evas gl direct rendering partial rendering/swap fix. 2013-06-17 17:52:16 +09:00
Sung W. Park e6359132de Saving evasgl direct partial rendering fix temporarily 2013-06-17 17:52:16 +09:00
Chris Michael 509090bafc Port wayland_egl changes for swapbufferswithdamage to gl_x11
Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-06-14 12:30:17 +01:00
Chris Michael 0926ed612f eglSwapBuffersWithDamage actually returns an EGLBoolean (unsigned
int), so fix.

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-06-14 12:26:11 +01:00
Chris Michael 4d86f508ae Formatting fix for 80 columns...Spankies !! ;)
Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-06-14 11:41:55 +01:00
Jean-Philippe Andre 82584a85fb evas/cserve2: Check for errors in evas sw engine 2013-06-14 16:38:18 +09:00
Jean-Philippe Andre 6f548d59af evas/cserve2: Fix crash in expedite test 23
Test 23: load lots of scaled images and draw them
Problem: cs2 fails to load more images at some point. (root cause to be fixed!)
After that, client expects some data, but there is none, so it segfaults.
2013-06-14 16:38:18 +09:00
Cedric Bail 1403b3a9ad evas: preliminary work on texture destruction for async preload of texture. 2013-06-14 16:38:18 +09:00
Cedric Bail 1073084807 evas: change cache API to forward Eo object. 2013-06-14 16:38:18 +09:00
Cedric Bail ab9c734b7f evas: cleanup GL texture allocation with some code refactoring. 2013-06-14 16:38:18 +09:00
Carsten Haitzler 745ce709a0 evas: wayland_egl - mirror changes for qcom tile begin/end in wayland egl. 2013-06-14 15:34:51 +09:00
Carsten Haitzler 7a9f40b5ee evas: wayland egl - mirror changes to gl_x11 for swapbufferswithdamage 2013-06-14 15:32:39 +09:00
Carsten Haitzler c1190d4539 evas: gl engine: chg eglswapbuffersregion to swapbufferswithdamage extn instead. 2013-06-14 14:42:03 +09:00
Eduardo Lima (Etrunko) d3292a7ae9 Split .gitignore into multiple files
Signed-off-by: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
2013-06-11 18:18:50 -03:00
Carsten Haitzler fdabe06989 evas - partial rendering support now for qualcomm extn too. 2013-06-11 18:12:07 +09:00
Chris Michael 6b1e8905f8 Ok ... Big Wl Egl Overhaul...(evas portion)
- Setenv for egl_platform before we init gl/egl, etc
 - Ignore check for NULL surface to indicate destroying (this is all
not need now).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-07 15:42:53 +01:00
Chris Michael b951b98d47 Set render_engine info to new information in eng_setup before we do
comparisons.
Add comment about NULL surface being passed in.

Fix segfault when we close windows...uartie, this one's for you ;)

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-06-06 03:51:57 +01:00
Chris Michael 4d505eed1c When checking for engine info changes, use the New engine info passed
in to us for the checks (not the old existing engine info).

NB: Fixes T134 and T135 buggers

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-05 13:24:09 +01:00
Carsten Haitzler d32758e2de evas: mirror partial swap fix in wl egl and move to alloca for rect buf. 2013-06-05 18:11:46 +09:00
Carsten Haitzler 0b8815a7e1 evas: fix partual swap rect output list - coords wrong. 2013-06-05 18:11:46 +09:00
Carsten Haitzler 20834f0925 match egl changes in x11 with wl. 2013-06-04 15:46:24 +09:00
Carsten Haitzler 2bfe58887d evas gl: do not assume querying extension strings are extns in glx and egl. 2013-06-04 15:35:15 +09:00
Cedric Bail 080ce9316b evas: refactorize gl texture creation code. 2013-06-04 15:04:19 +09:00
Cedric Bail ad5d75dfcd evas: add support for engine specific extention during thread task. 2013-06-04 11:20:25 +09:00
Chris Michael b524b31256 Add new wayland_egl engine that does buffer age, double/triple
buffering, etc, and uses evas gl_common (so glview/simple tests in elm work).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-31 09:43:23 +01:00
Chris Michael 30bd7c27e0 Add evas_wl_main file.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-31 09:43:23 +01:00
Chris Michael c5355d32ee Add start of new wayland_egl engine code.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-31 09:43:23 +01:00
Chris Michael ae9246beae Add evas_engine header file
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-31 09:43:23 +01:00
Chris Michael a6dcda0adc Add new Evas_Engine_Wayland_Egl header.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-31 09:43:23 +01:00
Chris Michael a0ed1b5b5d Remove old wayland_egl engine code in prep for rewrite to use gl_common.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-31 09:43:23 +01:00
Carsten Haitzler 6a4cdea904 fix evas partial swapotkeep the full re-render in the rects if it switches to full mode. 2013-05-29 21:38:11 +09:00
Chris Michael 23fc3b3da7 Fix possible memory leak reported by klockwork.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-29 13:11:54 +01:00
Carsten Haitzler c8256f5fae fix evas gl engine partial swap to do full swap in full mode. 2013-05-29 17:30:42 +09:00
Chris Michael e232b629a7 At this stage of engine shutdown, the eina log domain has been removed
and is not valid, so don't use ERR to print a message.

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-05-24 21:36:05 +01:00
Chris Michael 5f5ab9d9c6 minor formatting fixes.
Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-05-24 21:34:33 +01:00
Chris Michael bfc7e7cfd1 Set the surface user data to be the current buffer.
NB: This is needed because some compositors (Weston) are expecting
wl_surface_get_user_data to return a buffer.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-21 10:51:15 +01:00
Rafael Antognolli 99be49551e evas/gl: Use GL_FRAMEBUFFER_BINDING, which is available on both.
Instead of a define from GL_DRAW_FRAMEBUFFER_BINDING to the above one,
just use it directly since it's available on gles and full gl.
2013-05-20 14:21:56 -03:00
Carsten Haitzler 0532a992d9 remove about 16m mem for mesa for extra evgl context
only creating the extra evasgl context on demand when/if needed and
thus save 16m of memory allocations corresponding to the extra context
2013-05-20 18:09:50 +09:00
Chris Michael c727ab8088 Fix antognolli build break when --with-opengl=es.
Basically, EGL does not define a GL_DRAW_FRAMEBUFFER_BINDING so we
test for that and if not found then define it to be
GL_FRAMEBUFFER_BINDING

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-05-19 07:13:03 +01:00
Chris Michael 31b1e11d8d Revert this, there is no build break apparently. Give cookie back to
antognolli

Revert "include evas_gl_common.h"

This reverts commit 81cee894e1.
2013-05-18 17:52:32 +01:00
Chris Michael 81cee894e1 include evas_gl_common.h
(Bad antognolli, No cookie !!)

NB: Fixes build break !!! If we are going to use defines from glext.h,
let's be sure to have the necessary header included Yes ?? ;)

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-05-18 15:56:13 +01:00
Carsten Haitzler e7349e8005 disable all the waiting on gl - squeeze some more performance out of gl. 2013-05-18 10:04:37 +09:00
Rafael Antognolli 8254bbc5e3 evas/gl: Restore framebuffer after texture creation.
If we don't do this, the framebuffer object used on shader_array_flush()
will be wrong.

NOTE: shader_array_flush() should take care of setting the fbo
correctly.
2013-05-17 20:31:06 -03:00
Eduardo Lima (Etrunko) 4c3242ca62 evas/wayland-egl: Don't crash when re->win is NULL
Signed-off-by: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
2013-05-16 15:04:55 -03:00