-
-
Notifications
You must be signed in to change notification settings - Fork 21.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
wayland cannot work with weston #90612
Comments
above is weston out put |
All right. I've taken a look at it, collected some data and I'm working on a fix. I'll try to explain the situation in short. For context, to implement certain features, we need to load certain extensions (named "protocols" in Wayland jargon). Currently, we load only very specific versions of them and bail out when we can't find some of them, while we should instead be as flexible as possible. For example, certain extensions aren't strictly needed to play, e.g. a platformer game, so we should not error out, or we might get an older protocol that does not implement everything that we want and we should instead handle the situation more gracefully. I was already aware of this issue, but I didn't either have the time or had other priorities. Now that the backend is (mostly) working I had a chance to look at it into detail. Here follows the list of interfaces ("globals") that get accepted by the client, along with whether we bail out or not, in rough order of importance:
Note: extensions newer than the max version load fine but any new features are obviously non-working. Taking a look at this list, it becomes more obvious why you get this error:
I'll push a PR soon to lower the requirement for all globals (adding any compatibility code as needed), making the list of mandatory protocols as small as possible ( Thank you for your patience. |
Well, the PR got merged. I can now run the engine on Weston so I'll consider the issue fixed but if it isn't the case for you, please let me know, I'd be glad to help further :D |
Great news, the new code is now working under Weston with Wayland. The window is successfully displayed without any errors related to Wayland. However, since my board only supports OpenGL ES 3.2, I'm unable to run a particular demo. Next, I need to investigate how to switch to OpenGL ES under Wayland's driver. Of course, that's another issue altogether. Does anyone have any good suggestions on this?
|
We should now actually support OpenGL ES on Linux desktop too, but I'm not sure it's selected automatically if needed. On the other hand, it doesn't seem to be exposed for Wayland, only X11, which might be an oversight? @Riteo
Interestingly, despite not being listed as an option for
On the other hand it works with
|
Yup, indeed. It got added later and I didn't realize for some reason that it had to be plumbed in by Wayland too. Shouldn't take too much. Perhaps a new ticket might be useful, as I look at the tracker for big things to do, if I'm not misusing it :P |
Done: #91371 |
Tested versions
Godot Engine v4.3.dev4.official.df78c0636 - https://godotengine.org/
System information
ubuntu 2204 with weston
Issue description
cannot open edit with weston, cmdline out is:
`Godot Engine v4.3.dev4.official.df78c0636 - https://godotengine.org/
WARNING: Can't obtain the XDG decoration manager. Libdecor will be used for drawing CSDs, if available.
at: init (platform/linuxbsd/wayland/wayland_thread.cpp:3493)
WARNING: Can't obtain the XDG activation global. Attention requesting won't work!
at: init (platform/linuxbsd/wayland/wayland_thread.cpp:3500)
wl_registry@2: error 0: invalid version for global xdg_wm_base (22): have 1, wanted 2
ERROR: Wayland protocol error 0 on interface wl_registry@2.
at: _poll_events_thread (platform/linuxbsd/wayland/wayland_thread.cpp:2540)
================================================================
handle_crash: Program crashed with signal 4
Engine version: Godot Engine v4.3.dev4.official (df78c06)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] /lib/x86_64-linux-gnu/libc.so.6(+0x42520) [0x7f3a4fa42520] (??:0)
[2] godot4_3() [0x47e587] (??:0)
[3] godot4_3() [0x3c9fbe5] (??:0)
[4] godot4_3() [0x48e4963] (??:0)
[5] /lib/x86_64-linux-gnu/libc.so.6(+0x94ac3) [0x7f3a4fa94ac3] (??:0)
[6] /lib/x86_64-linux-gnu/libc.so.6(+0x126850) [0x7f3a4fb26850] (??:0)
-- END OF BACKTRACE --
================================================================`
Steps to reproduce
godot --display-driver wayland
3.it crashes
Minimal reproduction project (MRP)
no
The text was updated successfully, but these errors were encountered: