This is reverts:
e4c641ed1e
build fix
19eb7b727fbf35620a13fb65b50d3056a484360e:
glx: Fix black windows in E on nvidia
For all extension functions, we need to match with the extension itself
since GetProcAddress() can return a non-NULL value even when the function
does not exist. Drivers can do a runtime mapping depending on the
context. So, we only trust the return value of GetProcAddress() when
we know for sure that the extension exists.
Thus, if a symbol exists we will always prefer it rather than relying
on GetProcAddress().
Also, glGetString(GL_EXTENSIONS) is now deprecated so we're lucky
it still works most of the time. glGetStringi() should be used
instead. This patch changes some of the use cases, but not all.
Fixes T3030 (again)
Fixes T4288
@fix
it serems some changes broke our buffer age querying - we were using
the wrong symbol... the EXT or ARGB onenot the core one which does
work. use that first. then we get buffer age.
@fix
There are several cases of failure:
- if regex is NULL, regfree(regex) may lead to segmentation fault
(undefined behaviour, as specified in POSIX.1)
- if regex is not NULL, there are cases of use-after-free.
@fix
Not sure how this got in there, but it looks like
gbm_surface_release_buffer was being called twice on the same buffer.
This should sort out the double-free mentioned in ref T4335
Signed-off-by: Chris Michael <cp.michael@samsung.com>
When trying to create a window, the WL EGL engine creates
an ecore_evas and connects to the wayland display. But if
EGL is not supported (in weston with nvidia for instance),
the egl initialization fails and the window must be detroyed
in order to fallback to wayland_shm.
This led to a double disconnect from the wayland display
as both the ecore_evas del and the error handling code
were trying to disconnect.
Also, use ref == 0 in two places rather than ref <= 0, as
it can prevent double frees in bad situations (ref < 0).
And reset a global variable to NULL on shutdown.
Simply add support for EVASGL native surfaces.
I removed all code related to OPENGL surfaces (deprecated stuff
from old Evas GL).
Fixes T2936
Note that here are still some missing features in Evas GL
support on Wayland (at least pbuffers support is not implemented).
make coverity happy with CID 1347410 - it's technically right that the
code assumes the im ptr is valid until then as it dereferences it
until then and then stores it under pd->image but then checks for
NULL.. it would have crashed already if it were, so rmemove the
pointless check.
This fixes an issue from 19eb7b727f where the code
would no longer compile due to not finding noext_glXCreatePixmap in
the structure. This was due to the fact that this field was not
compiled into the structure if gl_gles was defined.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This fixes calls to glXCreatePixmap that would consistently
fail on nvidia >= 360.
It seems glXCreatePixmapEXT was used instead of glXCreatePixmap,
and that function always returned 0.
One could assume always using the non-EXT version of the
function should be preferred. Unfortunately, doing so for all
the other functions brings back the black windows.
I'm taking a very careful approach by doing this only for drivers
>= 360.
Fixes T3030
@fix
restart e or have ibus input get destroyed and come back... the ibus
module will do bad things to its pants... because the wrong things
were passed to the signal callbacks... this fixers that along with
ensuring a freed string ptr is NULL.
@fix
so our sysv shm segments were both over-permissive (nothing bad
really, just other users could read and write to/from our pixel data
destined for the screen... they could do this to x11 directly anyway
so no real issue), but be more restrictive and use 0600 as xserver
runs as root so can read/write anyway and we only want our own uid
access. but even more - fix our shm segment flushing to not keep lots
of segments floating about like a bad smell when we don't need them.
we had a cache but it wasnt flushed when it should be since async
rendering turned up. this fixes that and we're back to agressively
flushing them out when idle.
@fix
This seems the only way to disable subtitles embedded in the video file.
WIthout this patch calling em_spu_mute_set/get do not work, thus I consider this a @fix
using map_bo/unmap_bo instead of gem_map_bo_gtt/gem_unmap_bo_gtt
results in a cacheable mapping and a large performance boost.
(dmabuf will still remain turned off by default for the release)
This removes the need for khronos_[u]int64_t as well as the special
typdef EvasGL[u]int64.
Hopefully this should work on all platforms (note: [u]int64_t is
used in Eina APIs, so it is already required for EFL apps).
Fixes T3200
When using a mix of vblank and pageflip events like we're stuck with now
a failed flip is going to happen sooner or later. We fix this by triple
buffering. We shouldn't turn off the custom ticker.
We need to be creating buffers with ARGB by default so that things
like Alpha/Transparency work when toggled. If we always create with
XRGB then toggling Alpha/Transparency state fails.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
Sometimes, In ipc_server_data, extn->ipc.server's data is different with e->server's data.
The case is as follows.
Process'A' has a server.
Process'B' has 'A's client(ee address : 0xB0).
Process'B's client die, and 'B's server created. and server's ee address is same with destroyed client's ee(0xB0).
At the same time, 'A's server send the message to 'B's client.
but 'B's client is died! so _ipc_server_data would manipulate 'B's server data.
Test Plan: Tizen Mobile Text.
Reviewers: raster, spacegrapher, jpeg, wonsik, dkdk
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D4158
Summary:
Now, if image is native, do not recreate texture when image size is changed.
Recreate next native surface set time. So during the time between image_size_set and native_surface_set, native image is fragile. Fix it.
Test Plan: Local Test
Reviewers: spacegrapher, jpeg, wonsik, dkdk, raster
Reviewed By: raster
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D4153
So ok. haha. Amusing. But this is inappropriate.
1. It's not an INTENDED effect in theme so unless the theme ius doing
it - it shouldn't happen.
2. There are places to do this and it's NOT inside an engine. There
are high level filter and other mechanisms.
3. Actually this shouldn't be even done client-side. It should be done
compositor-side when moving a window around. Knowing velocity vector
etc. is useful to a client so the protocol can stay but doing the
animation client-side is "wrong". Some windows wobble and others do
not based on toolkit? really? sure we have to live with the CSD
difference but this? The compositor can do this JUYST fine. leave it
to compositor... OR do this properly with filters client-side. e.g. a
2d displacement map with evas filters would do the job as long as it
interpolates. If you want a way of forcing ALL objects in the canvas
to redirect to an intermediate buffer then do it up there at the
canvas level. It then works in GL and software, as opposed to only GL.
Also.... this is now causing issues for users:
<memeka> hi, from
https://git.enlightenment.org/core/efl.git/commit/?id=fb76fe55a52ac212b6870f1d74470a79ea5c5246
i run EFL_WAYLAND_DISABLE_WWW=1 terminology -> but it crashes in
wayland_egl/www.c in the setup_shaders function .... HELP?
so the fun was fune until we do a release (now) and until this causes
problems for users. Back to tried and tested code.
If you want to do this... do it right at the portable layers above.
...
Revert "wayland-egl: Fix use after free"
Revert "wayland_egl: Fix redirect to texture"
Revert "evas-wayland-egl: Add www protocol handling to wayland-egl engine"
Revert "gl_common: Add API for redirecting render to texture"
This reverts commit 2760afbb0e.
This reverts commit c937248eac.
This reverts commit c67f50b40a.
This reverts commit 0f7f4b6de0.
map struct allocation was not handled right - we assumed successthen
later checked for failure with an if() after using the ptr. this
should fix CID 1353722
Fix using mkstemp directly without securely setting umask first by
making use of eina_file_mkstemp function which does set umask.
Fixes Coverity CID1357164
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
so. on linux signals are delivered to the main process thread/loop.
thats' where signal handlers are set up and always run. this is sane.
it's predicatble. but of course this is not the same in bsd land.
there "just send the signal to any old thread and call the signal
handler there" seems to tbe the order of the day. this explains why
wer are losing sigchld signals in edje_cc - it's heavily threaded and
bsd is just randombly picking a thread to call it on.
this fixes that. in theory. i hope. i can't test, but putting it in to
share
@fix
i've fixed almost all the eina init/shutdown pairs to do the right
thing now... except one (ecore_shutdown) with comment inline where
eo_shutdown is not called. if this is called we are in crash land.
this needs further inspection.