Commit Graph

2895 Commits

Author SHA1 Message Date
Jean-Philippe Andre c68a409874 evas gl: Add a hack for GLES 3.1 with NVIDIA + GLVND
I believe there's a limitation in libglvnd where it doesn't
propagate the calls to eglGetProcAddress() properly to the vendor
library.

See also 265c851a8f
2017-03-14 17:01:24 +09:00
Jean-Philippe Andre c15fee9bcc evas gl: Fix usage of OSMesa
It seems OSMesa was recently updated to not expose symbols statically,
so dlsym() returns invariably NULL. GetProcAddress must be used. Note
though that the extension "EGL_KHR_get_all_proc_addresses" is not
present (OSMesa is OpenGL, not GLES), and there is anyway no list
of extensions in OSMesa (at the WSI level, glGetString() returns a
ton of GL extensions as expected).

My OSMesa version is 11.2.0 (mesa 17.0.1).

This fixes make check.

@fix
2017-03-14 15:03:25 +09:00
Mike Blumenkrantz 9d8bc92c4a ecore-evas-wayland: update no-op configure commit case for new acking method
ref 1b9970658f
ref 5e7456a315
2017-03-10 16:11:19 -05:00
Mike Blumenkrantz 57412cba94 ecore-evas-x: set flag for maximized state
fixes initial maximize state
2017-03-10 15:54:21 -05:00
Mike Blumenkrantz 1b9970658f ecore-evas-wayland: commit on no-op configure events
this handles the case of a window configure not triggering any visible change

fix T5192
2017-03-10 15:54:21 -05:00
Carsten Haitzler 09f132b556 evas - gl - remove warning for unused var with opengl vs gles 2017-03-10 10:56:19 +09:00
Jean Guyomarc'h c1604cdac8 ecore_evas_cocoa: better debugging log 2017-03-09 23:16:16 +01:00
Derek Foreman aedf55073a ecore_wl2: Rename badly named API
Oops, I broke naming convention with this, but it's unreleased and beta so
I hope nobody notices as long as I change it now...
2017-03-09 12:21:09 -06:00
Derek Foreman a1b90cf4d7 Revert "ecore-evas-wayland: Fix issue of apps not starting up in fullscreen mode"
This reverts commit dfb1877500.

This did fix the problem of "rage -f" not starting properly, but it
broke toggling between fullscreen and !fullscreen for other apps.

They'd resize to a large, but not quite fullscreen, size, then render with decor
present, and big black bars on the right/bottom edges (which were offscreen due
to the client size and position)

This isn't really the right place to fix this - it's a protocol usage bug, not
a canvas bug.
2017-03-09 12:21:08 -06:00
Jean Guyomarc'h 27a62edd68 gl_cocoa: use triple buffering
Interestingly enough, this makes some graphical artifacts vanish...
2017-03-09 00:57:56 +01:00
Jean Guyomarc'h f6a44e6bc1 ecore_evas_cocoa: fix invalid initial requested width 2017-03-09 00:57:56 +01:00
Jean Guyomarc'h 863077ce9a ecore_evas_cocoa: use ecore_event to match windows 2017-03-09 00:57:55 +01:00
Jean Guyomarc'h 79e7e2628a ecore_evas_cocoa: remove more pointless code 2017-03-09 00:57:55 +01:00
Youngbok Shin f83ce20e1c evas: clean up GL images for emojis when GL context is free'd
If GL context is free'd before processing font shutdown,
textures for emoji glyph's GL images will be free'd without clean
up its GL images. It causes eina mempool infinite loop issue when
emoji's GL images are free'd in shutdown process.

So, the patch will make a list for emoji's GL images in context and
clean up them when the context is free'd. Just like font textures in
context.

@fix

Differential Revision: https://phab.enlightenment.org/D4695

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2017-03-08 19:35:03 +09:00
Jean Guyomarc'h b9ab5f68af ecore_evas_cocoa: remove a lot of useless code
I still don't know what's going on with the rendering problems, but
at least now  I have less dead code in my way...
2017-03-08 08:59:59 +01:00
Jean Guyomarc'h 1c772ddd3d ecore_evas_cocoa: set the render func at initialization 2017-03-08 08:59:59 +01:00
Jean-Philippe Andre 265c851a8f evas gl: Fix version detection for GLES 3.1
It was assumed that GLES 3 would only work with EGL but in fact
OpenGL 4.3 & 4.5 are supersets of GLES 3.0 & 3.1 respectively. So
GLX should also support GLES 3.0 or GLES 3.1 for evas gl, if the
driver supports it, of course.

Of course while doing this patch things didn't go like they were
supposed to go. I'm currently using NVIDIA's proprietary driver,
that conveniently provides EGL with GLES 3.2. But wait, there's
a catch: GL_VERSION is "OpenGL ES 3.2 NVIDIA" except that none
of the functions of GLES 3.1 or GLES 3.2 are actually supported.
Those functions are only present in the GLX/OpenGL variant of the
driver. Thanks so much for making my life easier...

So yeah, this patch contains a hack for those invalid versions
of GLES 3.x. What was supposed to be a small fix became a huge
mess.

Also add a comment about the possibly invalid auto-upgrade from
GLES 2 to GLES 3.

This adds a test case in elm_test, but only to verify that
elm_glview_version_add(3) actually works. We need a proper GLES 3
test case, eventually (and 3.1, 3.2 of course).
2017-03-08 15:44:39 +09:00
Jean Guyomarc'h 566b23dcb8 ecore_evas/x: don't mark as unused a used parameter 2017-03-07 20:23:12 +01:00
Jean Guyomarc'h 6f80616a4d ecore_evas/cocoa: fix cursor's visibility
Fixes T5238
2017-03-07 20:23:12 +01:00
Jean-Philippe Andre 38446d8daf tests: Remove CPU affinity from all threads
I believe that all the threads created in our test suite should
be spawned without any special CPU affinity. The default parameter
is not 0 (corresponds to the first CPU, known as CPU 0) but -1.

Similarily the default priority is NORMAL (1), not 0 (URGENT).

This also affects two unused code paths: evas render2 and gl preload.

@fix
2017-03-06 17:03:47 +09:00
Jiyoun Park a6c0e9b067 ecore_evas_extn: add shared lock mode to the ecore_extn.
Currently, ecore_evas_extn only use exclusive lock.
so if there are many ecore_extn_plugs , there is competition among the ecore_extn_plugs.
since the ecore_extn_plugs dont need to use exclusive lock, add the shred lock mode.
2017-03-06 12:39:53 +09:00
Derek Foreman 3c3808acc5 ecore_evas_wayland: fix session recovery crash with async render
We need a display unset path for software render to prevent an async
render completing after a disconnect from posting a frame and crashing
us.

As of this commit both software and gl session recovery work for me.

fix T5005

 #SessionRecoveryWorksHere
2017-03-03 13:30:01 -06:00
Derek Foreman 706a1a33a4 ecore_evas_wayland: Use surface from engine info
Calling ecore_wl2_window_surface_get() has the side effect of creating
a new wayland surface if we don't already have one.  If we do that
during a session recovery, we can try to create a new surface while
we have no connection to a compositor - that's Bad.

So we just use the one we already have stored - which we NULL out on
disconnect.
2017-03-03 13:30:01 -06:00
Derek Foreman f53f873b58 wayland_egl: recreate outbuf on session restore
If we get an eng_update with no outbuf, try to create one.
2017-03-03 13:30:00 -06:00
Derek Foreman 18224858f3 wayland_egl: Destroy the outbuf when we lose our surface
This way we properly shut down when we get disconnected from the
compositor, and can reconnect later.
2017-03-03 13:30:00 -06:00
Derek Foreman eacd67498c wayland_egl: Don't crash when asked to dump with no outbuf
Another session recovery corner case.
2017-03-03 13:30:00 -06:00
Derek Foreman 1639e99305 wayland_egl: Don't crash if gl context queried when no outbuf
We can get here on session restore when we haven't had a chance
to recreate the outbuf yet.
2017-03-03 13:30:00 -06:00
Derek Foreman 49e7932c86 gl_generic: Add null checks in some cache functions
When wayland session recovery happens, we can end up down this path
with no gl context when elm reprocesses its config file.

That callback fires long before we've re-set up our wayland connection
so we can't possibly have a valid gl context yet.

Prevent that from crashing.
2017-03-03 13:30:00 -06:00
Jiyoun Park ffa2d37462 ecore_evas_wayland: remove useless code 2017-03-03 12:44:35 +09:00
Jiyoun Park 89c6a316f6 ecore_evas_wayland: remove useless code 2017-03-03 11:28:52 +09:00
Jiyoun Park fb730c1fd7 ecore_evas_wayland: fix bug ee's width and height were updated wrong place.
ecore evas manages the width and height using the ee->w/h and ee->req.w/h.
but sometimes only ee->req value can be updated.
2017-03-03 11:06:50 +09:00
Jihoon Kim 591db71120 ecore_imf/xim: Fix memory leak
64 bytes in 1 blocks are definitely lost in loss record 152 of 258
   at 0x4C2AB80: malloc (vg_replace_malloc.c:296)
   by 0xC786A77: ??? (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0)
   by 0xC78747B: _XimDecodeIMATTRIBUTE (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0)
   by 0xC77A7EF: ??? (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0)
   by 0xC767771: XGetIMValues (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0)
   by 0x113CFE09: ???
   by 0x113D08F7: ???
   by 0x83DD329: ecore_imf_context_client_window_set (ecore_imf_context.c:240)
   by 0x530779D: _edje_entry_real_part_init (edje_entry.c:2937)
   by 0x5311C20: _edje_object_file_set_internal (edje_load.c:1079)
   by 0x5328665: _edje_object_efl_file_mmap_set (edje_smart.c:438)
   by 0x775BD3A: efl_file_mmap_set (in /usr/local/lib/libefl.so.1.18.4)
2017-03-03 10:12:30 +09:00
Carsten Haitzler 9f535a3f3c emotion - fix empty video data frame update when using vdpau accel
fixes a segfault when using vdpau+gst and where the first frame seems to
be empty/zero.

@fix
2017-03-02 15:31:07 +09:00
Jihoon Kim 777b9beb23 ecore_imf/ibus: Fix memory leak allocated by ibus_bus_new 2017-03-02 10:19:53 +09:00
Derek Foreman b7f1c66d3a ecore-evas-wayland: Fix yet another wayland session recovery break
commit 81783ec75c combined two "identical"
pieces of code that weren't identical.  The removed code never checked
if the evas was visible before performing operations to make it so,
the code left behind would bail if the evas was visible.

Reset the visible status during disconnect to make sure we properly show
windows after a session recovery.

ref https://phab.enlightenment.org/T5005

@fix

Session works on the software engines at this point.  Use this as a bisect
point next time someone fubars it.

GL still broken.  Window geometry seems like it doesn't get updated right
either, but at least clients reconnect again.

 #SessionRecoveryWorksHere
2017-03-01 14:47:21 -06:00
Chris Michael ce65b59d5a Revert "ecore-evas-wayland: Don't register animators until window gets shown"
Reverting this as apparently it broke session recovery for some odd
ass reason...

This reverts commit 38f3854f45.
2017-03-01 13:13:46 -05:00
Chris Michael 81783ec75c ecore-evas-wayland: Remove duplicated code
As we already call the same functions inside
_ecore_evas_wl_common_show, there is no need to duplicate the same
code when we have defer_show set...just call the show function.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-03-01 11:43:11 -05:00
Chris Michael dfb1877500 ecore-evas-wayland: Fix issue of apps not starting up in fullscreen mode
Calls to make a window fullscreen do require the window to already
have a shell surface with which to fullscreen. If an app sets the
window fullscreen property when the window is not shown yet, then the
app would never startup fullscreen. This patch fixes that issue by
adding a 'defer_fullscreen' flag to Ecore_Evas (wayland) so that when
the window does finally get shown, we can show it in fullscreen.
Addresses part of the T5044 ticket...

ref T5044

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-03-01 11:30:15 -05:00
Chris Michael e6b26d2279 ecore-imf-wayland: Reduce calls to set_cursor_rectangle
Avoid calls to zwp_text_input_v1_set_cursor_rectangle if we do not
need to. Previous code here would always call this function even if
the cursor rectangle was in the same position. Now we set a flag on
the cursor_location field to let us know that it needs updating.

ref T5226

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-02-28 10:22:58 -05:00
Chris Michael f877c46ad8 ecore-imf-wayland: Remove duplicate header include
wayland_imcontext.h already includes this header, so no need to
re-include. Also add missing (void) to function declaration

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-02-28 09:28:24 -05:00
Chris Michael 6d4357d943 ecore-imf-wayland: Formatting fixes
NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-02-28 09:16:22 -05:00
Jean-Philippe Andre 02bff22d8f evas: Reset state to GL_TEXTURE_2D
This should fix an ERR message under gl_drm and probably an
actual bug.

This reverts 8f2cfdf490.

I don't think the texture target should be part of the context
information. It should instead be a property of the texture.

Fixes T5171
2017-02-28 13:07:13 +09:00
Jihoon Kim 82188e12b5 ecore_imf/ibus: fix memory leak 2017-02-28 11:24:39 +09:00
Cedric BAIL 5420ebaf32 emile: rename emile_image_register to emile_image_callback_set.
This fix ABI report according to discussion on the mailing list.
2017-02-27 15:05:35 -08:00
Chris Michael 38f3854f45 ecore-evas-wayland: Don't register animators until window gets shown
Small patch to not call _ecore_evas_register unless we are showing the
window. This stops creation of rogue animators on cursors until the
window is actually going to be shown.

Fixes T5209

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-02-27 11:33:57 -05:00
Jihoon Kim 73ff3e07a2 ecore_imf/ibus: Fix memory leak 2017-02-27 21:32:07 +09:00
Jihoon Kim a1da126220 ecore_imf/wayland: Fix memory leak in immodule
==1321== 156 bytes in 1 blocks are definitely lost in loss record 7,687 of 9,703
==1321==    at 0x4847E64: calloc (vg_replace_malloc.c:623)
==1321==    by 0x92EA7E9: wayland_im_context_new (wayland_imcontext.c:1094)
==1321==    by 0x92E66DD: im_module_create (wayland_module.c:132)
==1321==    by 0x4D521E7: ecore_imf_module_context_create (ecore_imf_module.c:152)
==1321==    by 0x4D51EF7: ecore_imf_context_add (ecore_imf_context.c:141)
2017-02-27 21:31:07 +09:00
Carsten Haitzler 473d431241 evas gl common - fix nv12 text upload with upack row length
we segv'd because our testure width was wrong... i was row span
length in bytes and we use luminance+alpha texture... this fixes it.

@fix
2017-02-26 11:44:38 +09:00
Carsten Haitzler 7d4e417ea8 emotion XXX - make nv12 709 streams work even with slightly off colors
ther eis no 709 nv12 support support in evas but there is 601, so use
that for now until we add the feature of 709 nv12 support.
2017-02-23 11:46:53 +09:00
Jiyoun Park 78feb9decb ecore_evas_wayland_common: fix bug that window is not rotated when app request rotate.
In landscape mode, width & height of evas are different with ecore's.
so diff is checked differently according to the  portrait & landscape mode.
2017-02-20 11:15:59 +09:00