diff --git a/js/ui/scripting.js b/js/ui/scripting.js index 07da7649d..0addd5424 100644 --- a/js/ui/scripting.js +++ b/js/ui/scripting.js @@ -148,6 +148,23 @@ function _collect(scriptModule, outputFile) { Shell.write_string_to_stream(out, '"events":\n'); Shell.PerfLog.get_default().dump_events(out); + let monitors = global.get_monitors() + let primary = global.get_primary_monitor() + Shell.write_string_to_stream(out, ',\n"monitors":\n['); + for (let i = 0; i < monitors.length; i++) { + let monitor = monitors[i]; + let is_primary = (monitor.x == primary.x && + monitor.y == primary.y && + monitor.width == primary.width && + monitor.height == primary.height); + if (i != 0) + Shell.write_string_to_stream(out, ', '); + Shell.write_string_to_stream(out, '"%s%dx%d+%d+%d"'.format(is_primary ? "*" : "", + monitor.width, monitor.height, + monitor.x, monitor.y)); + } + Shell.write_string_to_stream(out, ' ]'); + Shell.write_string_to_stream(out, ',\n"metrics":\n[ '); let first = true; for (let name in scriptModule.METRICS) { diff --git a/src/gnome-shell.in b/src/gnome-shell.in index a0d23c9b5..a1998c061 100644 --- a/src/gnome-shell.in +++ b/src/gnome-shell.in @@ -313,9 +313,10 @@ def run_performance_test(): finally: os.remove(output_file) - # Grab the event definitions the first time around + # Grab the event definitions and monitor layout the first time around if i == 0: events = output['events'] + monitors = output['monitors'] if options.perf_warmup and i == 0: continue @@ -344,6 +345,7 @@ def run_performance_test(): report = { 'date': datetime.datetime.now().isoformat(), 'events': events, + 'monitors': monitors, 'metrics': metric_summaries, 'logs': logs }