It's a requirement of wlroots, since it uses it to get notified of
Xwayland readiness.
Having our threads use SIG_IGN would mean that they could still get
selected to get the signal and would just discard it, as opposed to
not being in the running at all. So the more threads we added, the
least chance we had of the notify function running consistently at
startup.
Now seems to consistently agree that XWayland is up every startup.
Add the concept of a cursor coordinate when that initializes when focusing
a surface.
Put some super primitive tap to left-click emulation in there for now.
If a window already has a buffer attached by the time we figure out it
exists and sets its role, we missed the initial commit and will never
get it. For windows that animate interactively, that's fine, as we'll
get another one soon enough, but 2D apps like launchers repaint on
demand, so it's not fine there.
If the base game is stuck before having rendered anything, we still want
to show overlay layers when they animate so the user can get out.
Let us composite and the empty texture should take care of it.
It's non-fatal, presumably we messed up source coordinates for that flip
but needs root-causing. Can happen in the very early loading of MGSV:TPP.
Fix a bug with the new flip lock where non-fatal flip errors would hang.
If we only take the first commit, we leave a bunch in the queue, which
makes us that much more likely to run out of FDs when importing the
myriad of buffer referenced coming from a non-vsynced client. Fixes
crashes with vblank_mode=0 glxgears after the recent changes.
We were always subject to such crashes, just getting lucky/fast before.
Use an empty dummy texture for unbound slots, as the driver can't know
what the shader will sample from.
Also remove any sort of implicit attempts at compaction of slots.
Import libliftoff as subproject and plumb our planes through it.
Wait for a flip to complete immediately after queuing it for now.
Also immediately wait for cursor image uploads, as we don't have to
do Vulkan rendering anymore after queuing an upload.
Cursor shows up with format hack, but is badly corrupt. We might need
to use a DRM dumb_fb rather than going through the same Vulkan image.
Alpha bits of surfaces are ignored again, need to make Steam select
an ARGB visual for overlay windows, probably.
Setting up the "alpha" plane property somehow makes overlays not
show up at all despite liftoff happily letting us go with scanout.