Previously we'd call this only when we absolutely needed to, so it made
sense to always attempt to free a buffer, including ones on scanout or
pending flip.
However, it's useful to have a way to release the "next" only, so we can
do that before starting a render to free up the buffer that's never going
to be scanned out.
The time to live hop limit should not be named loopback and have a type that
can actuall hold the number of hops. It already was always uint8 in the code.
Just fix the eo file.
windows is nasty and defines the value to be set or retrieved as
'char *', which triggers a warning when we use another kind of
pointer.
Partially addresses D4357.
windows is nasty and defines the payload to be sent or received as
'char *', which triggers a warning when we use another kind of
pointer.
Partially addresses D4357.
On Windows SOCKET is unsigned, thus will cause sign errors when
formatting with "%d" or comparing with signed values.
On UNIX it was quiet and easy to miss, thus a new #define can be used
to check for those. It will use 'unsigned long' as SOCKET, thus will
complain out loud and not even work correctly when using pointers on
64bits UNIX on mistakes -- which should improve the situation.
This helped to fix lots of missing conversions, all fixed.
This partially addresses D4357.
Normally when debugging Eo with gdb you can just use any of the internal
eo functions to resolve the id to its internal pointer. However, when
loading a coredump you can't execute any code, not even the id resolve
code.
This change adds a gdb function that resolves the id to its pointer form
without executing any code in the process space. This plugin is
essentially the id resolve code written in python as a gdb function.
Usage:
Print the pointer:
(gdb) print $eo_resolve(obj)
$1 = (_Eo_Object *) 0x5555559bbe70
Use it directly (e.g. to print the class name):
(gdb) $eo_resolve(obj)->klass->desc.name
This plugin requires that the coredump would be loaded with the exact
same libeo.so binary (or at least one that hasn't changed eo internals),
and that the debug symbols for libeo.so would be available for gdb to
use.
Note:
This feature is incomplete and only resolves IDs that are owned by the
main thread and in the main domain. This is not a big issue at the
moment, because almost all of our IDs are like that.
@feature
Summary:
fix over writing file descriptor bug for reading.
when we paste data to entry very fast, source->fd is over wrote by latest fd.
It cause blocking of read function since the read function use invalid fd.
so I make memorizing valid fd and using it in read function.
@fix
Reviewers: Hermet, jpeg, cedric, devilhorns, ManMower, raster
Differential Revision: https://phab.enlightenment.org/D4410
this fixes T4904
dif e pops up menus it uses zoomap to zoom an existing object in and
out by forcing it to be mapped and controlling the map geom based on
smart obj geom. this will do a minimum update region for the case
where a map just got turned on or off for an obj since last frame and
cut this out.
@optimize
Summary:
elm_calendar already have minimum and maximum year set/get APIs.
I've added new APIs that exapanded from the year to the date.
These APIs help us not only set min/max month but also set min/max day.
If you set the minimum date, changing the displayed month or year if needed.
Displayed day also to be disabled if it is smaller than minimum date.
Reviewers: woohyun, Hermet, jpeg, CHAN, cedric
Reviewed By: CHAN, cedric
Subscribers: CHAN, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4226
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Summary:
This will eliminate unnecessary initialization of local variable in case the type is not EFL_UI_CLOCK_TYPE_YEAR.
Also, ELM_DATETIME_YEAR case is merged with the default case.
Reviewers: singh.amitesh, cedric
Subscribers: minkyu, jpeg
Differential Revision: https://phab.enlightenment.org/D4409
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
so hunting another callback issue i noticed some of THE most popular
callbacks are:
1411 tick
1961 move
4157 pointer,move
7524 dirty
8090 damage
13052 render,flush,post
13052 render,flush,pre
13205 render,post
13205 render,pre
21706 recalc
21875 idle
27224 resize
27779 del
31011 idle,enter
31011 idle,exit
60461 callback,del
104546 callback,add
126400 animator,tick
as you can see callback del, add and the general obj del cb's are
right up there... so it is very likely a good idea to CHECK to see if
anyone is listening before calling the callback for these very very
very common calls.
this is ifdef'd and turned on for now. it can be turned off. it
shouldnt use more memory due to the way memory alignment works (likely
all allocations will be multiples of 8 bytes anyway) so we're using
spare unused space. the only q is - is management of the counts AND
checking them worth it in general? it's really hard to tell given we
dont have a lot of benchmarks that cover a lot of use cases... it
doesnt seem to slow or speed anything up much in the genlist bounce
test... so i think i need something more specific.
@optimize
i found a massive slowdown that over time ended up with 10000's of
cb's in objects like the ecore loop object. this fixes that by
ACTUALLY flagging event deletions waiting to be true rather than false.
this is how you would possibly use prepare stages for objects like
image objects by pre-rendering them to a buffer. this is not complete
and it's actually disabled right now, but it's to show how it might be
done. some more exploring is needed, but this is to share how it
might/should work.
for gl noscale buffers are texture atlases that are fbo's. the point
is never to scale or transofmr them but to render them pixel for pixel
and just store pre-rendered data where its cheaper to do this than
rebuild every time. this is the enigne infra for sw and gl with the gl
code... it SHOULD work... in theory...
without spaces at the start of every line this ends up trying to deal
with this poorly, ensure at least 4 spaces at the start of every line
and wikis tend to format with fixed width monospace layout as a "code
sample blob" which is much more correct. at least this is a simple
always-on feature we can have so copy & paste turns out nicely in bug
reports. we could have multilpe formatting options like maybe -phab
which might output this as a wiki markdown "table". maybe -html so it
prodices raw html? either way... this is a basic improvement out of
the box.
This reverts commit dc7806e685.
NO. python does it out6 of the box by default. fix the error if you
have one and stop just "turning off the noise". the point of
having this is so that a REAL "why" can be provided by a user by
putting it through eina_btlog and you can see HOW the error happened
at least as a backtrace. turning it off "unless you sety environment
vars" is STUPID. especially for users of e who will likely be unable
to do this a they jusr use a display manager to launch e and cant just
"change environment vars" because they dont know how. you have just
made things worse for getting information fromt he people LEAST
capable of providing information which is where we need automated ways
of doing this "the most".
i use this backtrace all the time. every week or so i identify an
issue just by this built in trace so i know HOW we called that func
because the err complaint was utterly useless as it didnt tell me the
caller etc. which i needed to know "why". this also solves a valid
complain that if you are developibng with efl and e.g. use a legacy
func and pass in an invalid ob you need to know what CALLED the legacy
func. often the issue is several levels up. its the silent masses who
appreciate the feature and use it or then DONT complain. this allows
them to know what the SOURCE of the error is and notjust where it ends
up and this should be done by default out of the box regardless of it
being long because providing more informations is always better than
less. do you propose that kernel oopses should cease dumping all
registers and half a screen worth of junk because "well just set a
kernel boot param to turn it on next time". no. go propose that python
turn off their backtraces by default unless you set and env var. get
these groups to agree to do this, then i'll believe you that this is
TRULYU annoying and not useful and should be off.
you do this just because a few peolpe complain about an error happening
that "SHOULD NOT BE THERE". then FIX THE ERROR. the bt if provided should
nicely provde complete info on how you got there. just making the
error a 1 liner (and those lines are super long and for me 90% of the
time wrap 2 or 3 lines in a terminal) is just sticking your head in
the sand. if its not an error then dont use an eina ERROR use debug or
warn or something else...
preparing an object is a good idea. especially with gl. you want to do
texture uploads BEFORE using textures all in one batch. otherwise this
may mean the gl implementation has to make a copy of your data in a
tmp location then copy it in later when texture becomes "unused" as it
may be in use at the moment, or it may have to stall and wait.
i have seen somewhere around 7-10% speedups on nvidia and intel
drivers with this on given a very special test case i brewed up (1000
32x32 images where i change 1 pixel every frame). this should have
impact really when we are modifying textures a lot. this is all i've
implemented for now, but this should/would/could do much more like
re-order map, proxy renders to render FIRST in a pre-render list
instead of inline and to pre-render fbo/buffer content for complex
objects like text or textblock etc.
this will define EGL_WAYLAND_PLANE_WL and EGL_WAYLAND_BUFFER_WL if
missing as SOME older egl public headers dont expose them and yet we
still wans to compile and support the feature should the egl BINARY
etc. actually support this (or be upgraded to support it after efl
compilation).
@fix
this technically isn't needed. it does help in some cases hide driver
or other buffer swap bugs, but in and of itself is not needed, so
remove. at least the drm egl bugs still happen on my pi3 so its
something else...
During window deletion, decreasing modality depends on
the window visibility.
Because the visibility was set to false before treating the
modality, it was never decreased, leading to never have still
existing windows being reachable.
Now, we check window visibility before it is modified.
@fix
Moved rects caching into draw context to avoid the use of __thread
slot. Draw context are defined per thread anyway and should be just
fine. This doesn't really change the picture regarding glibc problem
when to many __thread are needed, but slightly improve the global
picture. Also this patch doesn't affect our performance in expedite
benchmark as far as I can tell.