Merge lp:~hikiko/unity/unity.scale-expo-lowgfx-and-mmon-fix into lp:unity

Proposed by Eleni Maria Stea on 2016-06-30
Status: Rejected
Rejected by: Marco Trevisan (Treviño) on 2016-07-05
Proposed branch: lp:~hikiko/unity/unity.scale-expo-lowgfx-and-mmon-fix
Merge into: lp:unity
Diff against target: 18 lines (+9/-0)
1 file modified
plugins/unityshell/src/unityshell.cpp (+9/-0)
To merge this branch: bzr merge lp:~hikiko/unity/unity.scale-expo-lowgfx-and-mmon-fix
Reviewer Review Type Date Requested Status
Marco Trevisan (Treviño) 2016-06-30 Disapprove on 2016-07-05
PS Jenkins bot continuous-integration Pending
Review via email: mp+298740@code.launchpad.net

Description of the Change

- Set expo and scale animations to none in low gfx mode to get rid of redraws and improve performance.
- Fix for multimonitor: Replaced paintDisplay with paintOutput to avoid drawing content that falls outside the currently drawn output (clips to output size instead of screen size because compiz draws 1 output at the time).

**Note**: It needs this compiz branch: lp:~hikiko/compiz/compiz.expo-scale-options-skip-anim-steps for expo and scale to work.

To post a comment you must log in.
Marco Trevisan (Treviño) (3v1n0) wrote :

Change for paintOutput looks quite good. Although there's some code duplication when it comes to painting the Switcher thumbnails and legacy tray icons.

Please move that code in two different functions and call these in both paintOutput and paintDisplay.

Also, please split the branch so that this only contains this change, while manage all the settings changes for animations and effects in a different one.

I'm reviewing that part in the lp:~hikiko/unity/unity.menus-anim-lowgfx MP instead.

review: Needs Fixing
Eleni Maria Stea (hikiko) wrote :

The reason that the fixes are in 1 branch is our recent IRC conversation where you said you prefer the changes in 1 branch with different commit messages for the SRU. I can split it if you changed your mind.

4133. By Eleni Maria Stea on 2016-07-02

reverted the multimonitor fix changes - will be a separate MP

Eleni Maria Stea (hikiko) wrote :

See lp:~hikiko/unity/unity.multimonitor-speed-up for the multi-monitor change.

Marco Trevisan (Treviño) (3v1n0) wrote :

This is done now with profile, so we can avoid this.

review: Disapprove

Unmerged revisions

4133. By Eleni Maria Stea on 2016-07-02

reverted the multimonitor fix changes - will be a separate MP

4132. By Eleni Maria Stea on 2016-06-30

Fix for multimonitor:
Compiz renders the content on each output (monitor),
it doesn't draw everything in all outputs at once.

For that, we don't need to ask nux to paint (and make calculations for)
the whole screen content everytime we are going to paint an output.

Replacing the paintDisplay function with paintOutput that uses the output
size for the rendering buffers etc instead of the screen size (where
screen = total drawing area across all monitors) makes rendering faster
because instead of drawing the N monitors' content N times (render the whole
screen content when a glPaintOutput function is called) we render
the N monitors' content 1 time (we render 1 output when glPaintOutput is
called).

4131. By Eleni Maria Stea on 2016-06-10

unity in low gfx mode should use the new scale and expo options
to avoid the intermediate fade steps that require multiple redraws

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'plugins/unityshell/src/unityshell.cpp'
2--- plugins/unityshell/src/unityshell.cpp 2016-06-21 01:28:26 +0000
3+++ plugins/unityshell/src/unityshell.cpp 2016-07-02 16:33:16 +0000
4@@ -4172,6 +4172,15 @@
5 launcher_controller_->options()->scroll_inactive_icons = optionGetScrollInactiveIcons();
6 launcher_controller_->options()->minimize_window_on_click = optionGetLauncherMinimizeWindow();
7
8+ if (unity_settings_.GetLowGfxMode())
9+ {
10+ CompOption::Value vscale(true);
11+ CompOption::Value vexpo(3);
12+
13+ screen->setOptionForPlugin("expo", "expo_animation", vexpo);
14+ screen->setOptionForPlugin("scale", "skip_animation", vscale);
15+ }
16+
17 ScheduleRelayout(0);
18 }
19