[gnome-shell] perf-tool: Allow to run as a Wayland compositor



commit 68598f7c0c1119eba08f4eabcb3d1ccf5d00f3d4
Author: Olivier Fourdan <ofourdan redhat com>
Date:   Tue Jan 21 11:05:58 2020 +0100

    perf-tool: Allow to run as a Wayland compositor
    
    `gnome-shell-perf-tool` is initially designed to run on X11, using the
    `--replace` option which does not work when gnome-shell is a Wayland
    compositor.
    
    A solution would be to run `gnome-shell-perf-tool` in place of just
    `gnome-shell` to run the entire perf session under Wayland, but the
    script `gnome-shell-perf-tool` does not spawn `gnome-shell` as a Wayladn
    compositor, so that fails as well.
    
    Add a `--wayland` option to `gnome-shell-perf-tool` so that it can
    optionally spawn gnome-shell as a Wayland compositor so the whole perf
    tool can be starred from a console with:
    
    ```
      $ dbus-run-session -- gnome-shell-perf-tool --wayland
    ```
    
    Alternatively, for testing purposes, it can also be started nested with:
    
    ```
      $ dbus-run-session -- gnome-shell-perf-tool --nested
    ```
    
    Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/2139
    https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/941

 src/gnome-shell-perf-tool.in | 11 +++++++++++
 1 file changed, 11 insertions(+)
---
diff --git a/src/gnome-shell-perf-tool.in b/src/gnome-shell-perf-tool.in
index 050c66b30a..04072c4cdf 100755
--- a/src/gnome-shell-perf-tool.in
+++ b/src/gnome-shell-perf-tool.in
@@ -45,6 +45,13 @@ def start_shell(perf_output=None):
     if options.replace:
         args.append('--replace')
 
+    if options.wayland or options.nested:
+        args.append('--wayland')
+        if options.nested:
+            args.append('--nested')
+        else:
+            args.append('--display-server')
+
     return subprocess.Popen(args, env=env)
 
 def run_shell(perf_output=None):
@@ -284,6 +291,10 @@ parser.add_option("", "--version", action="callback", callback=show_version,
 
 parser.add_option("-r", "--replace", action="store_true",
                   help="Replace the running window manager")
+parser.add_option("-w", "--wayland", action="store_true",
+                  help="Run as a Wayland compositor")
+parser.add_option("-n", "--nested", action="store_true",
+                  help="Run as a Wayland nested compositor")
 
 options, args = parser.parse_args()
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]