Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • mutter mutter
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,148
    • Issues 1,148
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 119
    • Merge requests 119
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GNOMEGNOME
  • muttermutter
  • Merge requests
  • !1698

Headless native backend and virtual monitors

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Jonas Ådahl requested to merge jadahl/mutter:wip/headless-native-backend into master Feb 01, 2021
  • Overview 63
  • Commits 38
  • Pipelines 28
  • Changes 105

This merge requests adds three notable things:

  • Ability to run the native backend on top of only a render node (i.e. no mode setting) and without evdev (a.k.a. "headless")
  • Ability to create virtual monitors via command line arguments, primarily for debugging purposes
  • Ability to create virtual monitors PipeWire streams via a new org.gnome.Mutter.ScreenCast.Session.RecordVirtual D-Bus method.

Virtual monitors are not tied to the headless backend, but the only way to use the headless backend is by creating virtual monitors, which is why this merge requests introduces both.

An easy way to test is using the added command line arguments. To run mutter with two virtual monitors, one can run:

mutter --wayland --headless --virtual-monitor 1280x720 --virtual-monitor 1280x720

Both of these monitors can this way e.g. be screen casted via the existing RecordMonitor or RecordArea screen casting APIs.

I have added various tests that runs the headless backend, but sadly, they cannot be run as part of CI yet, until Infrastructure/GitLab#470 (closed) is fixed. These tests include "ref tests", which mantains a set of reference test images (as in repository PNG files), and aim to test that virtual monitors behave correctly.

These reference tests can eventually be expanded to test many other parts, including also the added currently very basic screen cast test client.

This merge request is currently marked as "Draft" as it includes !1697 (merged) and !1688 (merged).

Edited Feb 23, 2021 by Jonas Ådahl
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: wip/headless-native-backend