Skip to content

Feature Request: Wayland support #18513

Open
@DrogonMar

Description

Describe the solution you'd like
Support the Wayland display protocol in O3DE,
I've been working on Wayland support for O3DE on my own fork here.
Some benefits of this change is HDR support which is being worked on here and proper DPI scaling for high resolution displays.

The editor might require extra work, the discussion on this can be seen here, my main concern is about NativeEventFilter since I cant find any reference to it in the Qt Wayland QPA plugin.
I don't know much about Qt, but one idea I have is that instead of reusing the platform input device, the editor should just use a QtInputDevice that uses whatever abstraction Qt has for the mouse and keyboard. If you know Qt, I would love to know if this is even possible.

This fork right now is very confusing to build as you need to build first the Asset Processor and Editor with XCB then build with PAL_TRAIT_LINUX_WINDOW_MANAGER set to wayland.

Some of the CVars in the fork to help with debugging:

  • wl_blocklist : ',' seperated list of protocols to block for testing.
  • wl_accel : set this to false if you want to enforce unaccelerated values for the mouse.
  • wl_resize : enforce resize to be true, has to be set on boot.
  • wl_fullscreen : bool to set main window's fullscreen state, you can use this anytime.

Additional context
Here's the GameLauncher working with Wayland.
mpv-shot0002

Tasks

Preview Give feedback

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

feature-need/important-soonFeature: Must be staffed / worked on either currently or very soon ideally in time for next releasekind/enhancementEnhancement to an existing feature.priority/majorMajor priority. Work that should be handled after all blocking and critical work is done.sig/platformCategorizes an issue or PR as relevant to SIG Platform.triage/acceptedIndicates an issue or PR is ready to be actively worked on.

Type

No type

Projects

  • Status

    🏗 In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions