Control: retitle 1057620 doomsday: segfault in _XFlush() when Qt is using 
native Wayland

On Mon, 06 May 2024 at 00:31:31 +0200, Bernhard Übelacker wrote:
> Bug 1062969 / Bug 1065714 mentions a workaround
> to be able to run doomsday with wayland:
> 
> SDL_VIDEODRIVER=x11 QT_QPA_PLATFORM=xcb doomsday

Bug 1062969 is about a problem with SDL_JoystickName(), which is
fixed in unstable. The clone #1065714 is also about doomsday's use
of SDL_JoystickName(). Fixing those is unrelated to that workaround:
the only connection is that I had to use that workaround to avoid the
crash-on-startup before I was able to reproduce the joystick bug on
my system.

Bug 1057620 and its duplicate 1065709 are about the crash on startup that
can be worked around with "SDL_VIDEODRIVER=x11 QT_QPA_PLATFORM=xcb".
I'm copying the title from 1065709 to 1057620 to make its scope a bit
clearer.

> It looks like upstream removed the relevant code and relies just
> on SDL functions, but unfortunately did not release a new version yet.
> 
> https://github.com/skyjake/Doomsday-Engine/commit/5cc4995861

I haven't reviewed that change in detail, but letting SDL handle all of the
functionality within its scope is generally a good direction to go in.

The root cause of this bug is that doomsday uses both SDL and Qt, each
of which makes its own independent choice between an X11 backend or a
native Wayland backend, and then uses X11 directly itself and assumes
that both SDL and Qt have also chosen to use X11.

If Doomsday needs to use both SDL and Qt for graphics/windowing, probably
the right way to implement this would be to let one of those libraries
choose its backend (X11 or Wayland) according to its usual heuristic,
and then call configuration functions that force the other library to
make the same choice.

    smcv

Reply via email to