we were losing refs to buffers when clients quit and surface were
deleted thus causing junk and errors in binding these now deleted
buffers as fds now were invalid. keep them around longer until hide
anim is done. this is callback-hell...
@fix
we didnt properly do formats/modifiers. this meant that qwhen
something like the rpi4 started using interesting ones we ended up
with garbage pixels. this fixes that - uses new evas gl feature so
will need efl git master and eventiually efl 1.26 (already do anyway)
@fix
no others subtrace the base... weston doesnt.. no input events cb's
do... this is a mistake with what is a wrong timeline as a result. fix
and use the same timeline as everyone else
@fix
follow on form 4c7b798b45 - really
remove from the alias hash. the alias id is different and should ave
been stored in the pixmap and be deleted when pixmap is freed. i had
it right to remove from the aliases hash too, but i used the wrong id
- i used the "core" pixmap id, not alias. this tracks and uses that
alias.
this means internal windows are reliable now and dont crash...
@fix.
on pixmap free only the pixmaps entry was deleted not the pixmaps hash
one. this led to lookup of stale pixmaps in the aliases hash... and
then a crash.
also use the correct local type with the correct byte order as well.
this has probably been an issue for a while but now internal windows
should work much better without crashes.
@fix
XWayland likes to set a buffer on the cursor surface then delete it before
we release it. I'm pretty sure when a client does that we're within spec
to just kill it, but users will likely find this response ungratifying.
So, instead, just gracefully fail to render the undefined surface.
@ref T5593
Weston's dmabuf implementation continues to be modular enough that we can
pull it in with minimal change.
This updates us to version 3 of the protocol - required by recent mesa to
use dmabuf buffers instead of wl_drm ones.
Currently only contains stubs for format query.
Hardware plane support is inactive unless a scanout handler is set, this
patch adds a scanout handler and uses it when the env var
E_USE_HARDWARE_PLANES is set.
In the future this env var will go away when hardware plane support is
stable enough to enable it everywhere.
Hardware planes are going to make E_Comp_Wl_Buffer lifetimes harder to
manage, so we need to let the E_Comp_Wl_Buffer object outlive the
resource attached to it.
We already track a busy count, so we just have to use it to prevent
deleting a busy buffer.
this is usually called before the surface commits, so ensure that the
most likely case is returned as the default until the commit occurs
fixes black rect flickerings around the cursor