Skip to content
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

Untangle input ↔ graphics platforms #3071

Open
Saviq opened this issue Oct 11, 2023 · 6 comments
Open

Untangle input ↔ graphics platforms #3071

Saviq opened this issue Oct 11, 2023 · 6 comments

Comments

@Saviq
Copy link
Collaborator

Saviq commented Oct 11, 2023

Would evdev be selected if it didn't have access to input devices?
And you can always uninstall the evdev platform.

<alan_g>

$ apt rdepends mir-platform-input-evdev8
mir-platform-input-evdev8
Reverse Depends:
  Depends: mir-platform-graphics-eglstream-kms
  Depends: mir-platform-graphics-gbm-kms
  Depends: mir-platform-graphics-eglstream-kms
  Depends: mir-platform-graphics-gbm-kms
  Depends: mir-platform-graphics-eglstream-kms
  Depends: mir-platform-graphics-gbm-kms

<alan_g> tl;dr: in the current context, mir-platform-graphics-virtual should provide a stub input platform. But, for the future, that limits cases where we combine real displays using evdev input virtual ones.

We should be able to run with just the egl-generic rendering and virtual display platforms. *-kms platforms shouldn't force evdev usage, as you should be able to render to a virtual display only, taking input from whatever the remote display protocol happens to be.

@Saviq
Copy link
Collaborator Author

Saviq commented Oct 11, 2023

In my view we should (by default) load all platforms supported on a given piece of hardware.

  --platform-display-libs arg           Libraries to use for platform output   
                                        support (default: autodetect)         
  --platform-rendering-libs arg         Libraries to use for platform rendering
                                        support (default: autodetect)                                                              
  --platform-input-lib arg              Library to use for platform input                                                          
                                        support (default: input-stub.so)       

And here are the platforms we're looking at now:

# graphics
        mir:wayland
        mir:egl-generic
        mir:x11
        mir:gbm-kms
        mir:eglstream-kms
        mir:virtual
        mir:stub-graphics
        throw-on-creation
# input
        input-evdev.so.8
        input-stub.so

Of those, the only really special ones I find are wayland and x11, which are nested, and so make sense to be the only display / input platforms used. So it looks to me like we should come up with a way for those platforms to state they are that, try and load them first, and stop loading others when those work?

Excluding those two, all other permutations seem plausible to me? Headless ++GPU, headless --GPU, extra virtual screens on a headed setup.

@AlanGriffiths
Copy link
Collaborator

We have the following input platforms (by the names returned in ModuleProperties):

  • mir:evdev-input
  • mir:stub-input
  • mir:wayland
  • mir:x11-input

I agree about the hosted platforms (Wayland and X11) being "special" and, probably, exclusive.

@mattkae
Copy link
Contributor

mattkae commented Oct 11, 2023

This ticket is related, but can be done separately: #3073

@mattkae
Copy link
Contributor

mattkae commented Oct 11, 2023

We should also update the "default" text as part of this task (stubbed platform is not default now, or probably ever)

@AlanGriffiths
Copy link
Collaborator

We should also update the "default" text as part of this task (stubbed platform is not default now, or probably ever)

The default text is from the default option.

@Saviq
Copy link
Collaborator Author

Saviq commented Oct 12, 2023

and so make sense to be the only display / input platforms used

Though virtual should also be allowed, shouldn't it…

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants