a new shiny buildtool that currently completes in the total of ~ 4 min..
1 min. conf time
2:30 min. build time
Where autotools takes:
1:50 min. conf time
3:40 min. build time.
meson was taken because it went quite good for enlightenment, and is a traction gaining system that is also used by other mayor projects. Additionally, the DSL that is defined my meson makes the configuration of the builds a lot easier to read.
Further informations can be gathered from the README.meson
Right now, bindings & windows support are missing.
It is highly recommented to use meson 0.48 due to optimizations in meson
that reduced the time the meson call would need.
Co-authored-by: Mike Blumenkrantz <zmike@samsung.com>
Differential Revision: https://phab.enlightenment.org/D7012
Depends on D7011
Summary:
When we reset of texture for a valid object,
this object cache size become -1 x -1 with null texture.
Later, we reset a new texture of the object,
Its texture size could be -1 x -1.
That brings to incorrect result drawing.
Can't see any points of using cache size there.
This bug was introduced by 9e01cf2698
@fix
Reviewers: #committers, raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7077
Summary:
We're doing this all wrong.
We've asking for "at least 1 bit" of A, R, G, B color depth.
ARGB2101010 fits that nicely, so mesa on radeon gives it to us.
This only fixes the drop shadows though, it's entirely possible that
a fullscreen window without alpha would get ARGB2101010 instead of
XRGB8888, so this code probably needs a rethink for multiple engines.
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: devilhorns, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7022
It is now similar to how other modules are handled.
Differential Revision: https://phab.enlightenment.org/D7016
Signed-off-by: Derek Foreman <derek.foreman.samsung@gmail.com>
Summary:
Current preloading is too buggy since it's on thread-based.
This is a fundamental improvement to fix a bug.
The critical issue here is,
When preloading img object suddenly cancel its preloading,
the object possibly cannot render image next then because
renderer doesn't have any idea when async cancelling is
finished. Renderer just tries to render regardless of
image loading status, and this could occur no-texture(in gl case)
image object.
So, here improvement is, adding a notification for async cancelled
so that putting img objects to redraw images properly after their preloading is
cancelled.
The best scenario to reproduce this bug is this one.
Evas_Object *img2 = evas_object_image_filled_add(evas);
evas_object_image_file_set(img2, "test.jpg", NULL);
evas_object_image_preload(img2, EINA_FALSE);
evas_object_resize(img2, 200, 200);
evas_object_show(img2);
Evas_Object *img = evas_object_image_filled_add(evas);
evas_object_image_file_set(img, "test.jpg", NULL);
evas_object_image_preload(img, EINA_FALSE);
evas_object_move(img, 200, 200);
evas_object_resize(img, 200, 200);
evas_object_show(img);
evas_object_image_preload(img2, EINA_TRUE);
If you run this on gl backend, occasionally happens rendering fail.
Yet there other bugs on preloading feature....
@fix
Reviewers: #committers, raster
Subscribers: cedric, #reviewers, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6919
Summary:
Adding cache targets in other modules are inproper.
This can't be managed by cache module inside.
One representive scenario is,
when preload cancel is triggered, preload canceling sequence
can't be performed properly because cache targets implicitly were
increased by backend modules.
And then, Cache itself couldn't get notified it.
see this condition.
if ((!ie->targets) && (ie->preload) && (!ie->flags.pending))
in _evas_cache_image_entry_preload_remove()
Consequently, I move preloaded callbacks to sync with adding cache targets,
not to add by backed engines themselves.
This will bring Cache to manage cache targets properly.
Reviewers: #committers, raster
Subscribers: cedric, #reviewers, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6912
Summary:
That redundant code just made code complex.
This is one of intermediate patches for preload
Reviewers: raster, #committers
Subscribers: cedric, #reviewers, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6907
Summary:
While debugging a problem,
found a hole that upload texture twice unnecessary.
Here is the scenario.
Set up two objects with same image resource plus both preloading - obj1, obj2;
After image preloading,
_evas_cache_image_async_end() will be triggered.
=> ie->flags.update_data = true;
then first obj1 is gonna drawing,
Since it doesn't have any texture uploaded yet,
it will create a texture and upload texture data as well.
along with below sequence.
=> else if (!im->tex && !ie->load_error)
After it, second obj2 is gonna drawing.
But actually its texture is already readied after obj1,
it doesn't need to upload texture agin.
But still ie->flag.update_data == true, it will do dumbly.
Reviewers: #committers, devilhorns, raster
Subscribers: cedric, #reviewers, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6902
Summary:
this is more or less a dead project, having not been actively developed
in over 2 years and instead forcing people to expend more time and energy
to keep it compiling across refactors
fix T7227
Reviewers: stefan_schmidt, Hermet, ManMower, devilhorns
Reviewed By: Hermet, devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7227
Differential Revision: https://phab.enlightenment.org/D6878
Summary:
wayland transparent func was replaced with alpha's.
By this, transparent common attribute is no more valid,
ecore_evas_transparent_get() doesn't work.
This is a regression bug by 5af84afced
Reviewers: ManMower, devilhorns
Reviewed By: ManMower, devilhorns
Subscribers: cedric, #reviewers, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6856
Summary:
Map context missed setting texture target.
I guess this is one of regression bugs in gl backend.
When shader is flushed, it sets invalid texture target with map texture.
That caused blank map rendering, this could be observed temporary
because gl pipe contexts are reusable and missing texture target means,
it could use previous texture target values that mostly have GL_TEXTURE_2D.
@fix
Reviewers: #committers, ManMower
Reviewed By: #committers, ManMower
Subscribers: ManMower, cedric, #reviewers, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6818
Summary:
draw_block should only be unset if the event is triggered by the wm
or the window is an override, otherwise it prematurely begins rendering
the window at a size which may or may not be accurate
ref T7008
Reviewers: devilhorns, ManMower
Reviewed By: ManMower
Subscribers: ManMower, cedric, #reviewers, #committers
Tags: #efl_display_system
Maniphest Tasks: T7008
Differential Revision: https://phab.enlightenment.org/D6793
Summary:
The line prior to this damages the canvas and should result in a render
anyway.
Forcing a manual render here (without regard to the manual_render_set
state) will cause a post render callback to fire for clients that
think they've disabled automatic rendering.
fix T7275
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: devilhorns, cedric, #reviewers, #committers, zmike
Tags: #efl
Maniphest Tasks: T7275
Differential Revision: https://phab.enlightenment.org/D6809
Summary:
The animator timestamps were only getting the offset applied when they
came from page flips. The "early tick" logic failed to apply the offset.
This likely only changes behaviour on vmware's graphics stack, and
only the env var ECORE_EVAS_DRM_GPU_CLOCK_WRONG is set.
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: bu5hm4n, cedric, #reviewers, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6792
Summary:
When we BAIL from the configure callback with an immediate ack we don't
properly update state, commit the ack, or allow ecore_wl2 to process
a deferred ack_configure that happened during async rendering.
Using a commit here instead should update internal state properly.
ref T7243
Depends on D6783
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers, zmike
Tags: #efl
Maniphest Tasks: T7243
Differential Revision: https://phab.enlightenment.org/D6784
Summary:
This reverts commit a61f254f19.
and a follow up commit that removed some warnings
Apparently this is instrumental in enlightenment's window maximize
animation processing.
The removed bits would force an ack configure when an inbound
configure didn't result in a change that would cause a re-render.
Since this calculation needs knowledge of state ecore_wl2 doesn't
track, it does need to happen here.
ref T7243
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers, zmike
Tags: #efl
Maniphest Tasks: T7243
Differential Revision: https://phab.enlightenment.org/D6783
Summary:
We need to pass the entire pointer, not just 32-bits of it.
Fixes a crash with enlightenment sandbox gadgets where
ecore_wl2_window_alpha_get() is called with an invalid pointer while
trying to display a pop-up.
Reviewers: zmike, devilhorns
Reviewed By: zmike, devilhorns
Subscribers: devilhorns, cedric, #reviewers, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6775
Summary:
use the correct pointer when applying the passed parent object in order to
successfully set the parent
ref 78f27a3eff
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers
Tags: #efl_display_system
Differential Revision: https://phab.enlightenment.org/D6757
Summary:
If the compositor drops fullscreen or maximize for us the CSD to change
that state would become broken, as ecore_wl2 thought the window state
was whatever we last set it to from the client side.
Update that state on configure event.
fix T7211
Reviewers: devilhorns, zmike, eagleeye
Reviewed By: devilhorns, zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T7211
Differential Revision: https://phab.enlightenment.org/D6684
Summary:
when ecore_evas is resized, get evas' size,
but angle not checked, so put a check.
@fix
Signed-off-by: Umesh Tanwar <umesh.tanwar@samsung.com>
Reviewers: Hermet, devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6627
Summary:
Here opened eina file is just leaked.
close it properly.
@fix.
Reviewers: devilhorns, #committers, zmike
Reviewed By: #committers, zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6549
Summary:
In fixing T7099 I've also allowed the buffer queue to grow quite large,
so now we should prune it back if it's bigger than it needs to be for
a long time.
ref T7099
Depends on D6565
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T7099
Differential Revision: https://phab.enlightenment.org/D6566
Summary:
It's no longer needed in the header because it doesn't change
the size of the structures there anymore.
Depends on D6564
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6565
Summary:
Instead of allocating a fixed number of buffers immediately, allocate
buffers if needed to render to.
Normally we only need 2 buffers, but we've been allocating 3 to handle
worse case behaviour. As T7099 shows, this is not always enough. We
now cap at a max of 10.
For the normal case where we always use 2 this results in a slight
memory reduction (1 buffer) and a slight renering load reduction
because we pick the oldest buffer to render into.
A future patch will trim the buffer queue if it's been too large for
a long time.
fix T7099
Depends on D6563
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T7099
Differential Revision: https://phab.enlightenment.org/D6564
Summary:
This is just a step towards making it a variable length.
ref T7099
Depends on D6562
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T7099
Differential Revision: https://phab.enlightenment.org/D6563
Summary:
Use pointers instead of an array of structures, since we're going to
replace the array with a list shortly.
ref T7099
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T7099
Differential Revision: https://phab.enlightenment.org/D6562
this has been going on for a while. on nvidia drivers in gles mode on
x11 there is a massive perf drop to like a few fps with enough windows
if we build for egl/gles instead of opengl. it was the re-creating of
eglimages every frame. put a vendor specific workaround for this and
avoid it. it's not needed there anyway. framerate back to 60fps
smoothness afterwards.
@fix
Summary:
This is now totally trivial and needs not exist.
Depends on D6522
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6523
Summary:
There's no benefit to generating ids instead of just using the
Ecore_Wl2_Window pointer in events.
This has the added benefit of working around a really nasty hash collision
bug when multiple ecore_evas engines are used at once.
ref T7053
ref T6222
@beta_break
Depends on D6521
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T7053, T6222
Differential Revision: https://phab.enlightenment.org/D6522
Summary:
ecore_event_window_unregister(ee->prop.window) is actually *exactly*
the same as ecore_evas_input_event_unregister(ee)
So this sequence just uselessly tries to remove something from an empty
hash table.
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6521
Summary:
a common use case for mempools is that they get created by a thread but then
exist for the duration of the app's lifetime until shutdown() occurs in the
main thread. there is no reason to have an assert here which blocks that
use case
Depends on D6434
Reviewers: ManMower, bu5hm4n, devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6435
Summary:
drawing a non-override window before receiving a configure event results
in an unsized window, breaking spec. it also prevents ecore-evas resize
callbacks from triggering, yielding undefined returns from functions which
attempt to get the geometry of the ecore-evas
this patch improves upon the previous version by handling the case of windows
which are created with the correct initial size, bypassing an initial configure
event
there is still a lot of work to be done in this engine to improve/consolidate
resize-related code and ensure protocol correctness
ref T7008
fix T6907
Reviewers: devilhorns, ManMower
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T7008, T6907
Differential Revision: https://phab.enlightenment.org/D6275
This include is necessary according to POSIX. Without it, build
fails on certain platforms (QNX). It may already be included
implicitly in some of those files, but declare intent.
Fixes T6667.
Summary:
this case would guarantee a crash if the module was ever unloaded
and the event handlers were called, and it leaks otherwise
@fix
Reviewers: ManMower, devilhorns, bu5hm4n
Reviewed By: ManMower, bu5hm4n
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6296