Merge lp://qastaging/~smspillaz/unity/unity.less-paint-insanity into lp://qastaging/unity

Proposed by Sam Spilsbury
Status: Superseded
Proposed branch: lp://qastaging/~smspillaz/unity/unity.less-paint-insanity
Merge into: lp://qastaging/unity
Diff against target: 1221 lines (+724/-134)
9 files modified
plugins/unityshell/src/ScreenEffectFramebufferObject.cpp (+10/-1)
plugins/unityshell/src/ScreenEffectFramebufferObject.h (+6/-0)
plugins/unityshell/src/unityshell.cpp (+187/-119)
plugins/unityshell/src/unityshell.h (+39/-14)
tests/CMakeLists.txt (+2/-0)
tests/test_shell_paint_schedule.cpp (+284/-0)
unity-shared/CMakeLists.txt (+1/-0)
unity-shared/ShellPaintSchedule.cpp (+91/-0)
unity-shared/ShellPaintSchedule.h (+104/-0)
To merge this branch: bzr merge lp://qastaging/~smspillaz/unity/unity.less-paint-insanity
Reviewer Review Type Date Requested Status
Sam Spilsbury (community) Needs Fixing
Daniel van Vugt Approve
Jason Smith Pending
Marco Trevisan (Treviño) Pending
Review via email: mp+109757@code.qastaging.launchpad.net

This proposal supersedes a proposal from 2012-06-07.

This proposal has been superseded by a proposal from 2012-06-14.

Description of the change

Removes the whole scanning of the list thing in getWindowPaintList and the whole "trying to figure out where the window was because we don't actually know" in glDraw by scanning the paint list again and again.

There's a much better way of doing this - just hook glPaint, skip the wrap chain to core (eg every single plugin skipped) and tell core not to do anything with the window.

I have no idea why there is a bunch of logic about whether or not to paint the panel in glDraw (that was moved to glPaint). Someone enlighten me?

To post a comment you must log in.
Revision history for this message
Sam Spilsbury (smspillaz) wrote : Posted in a previous version of this proposal

Bump?

I'd like to see this go in, because it should reduce lots of list copying within unity and also lots of unecessary list traversal, which should represent a nice speed boost. In addition, its far simpler in its implementation and far less bug prone.

I'm sure testing is probably an issue. I'll have another quick look at the code and see if I can think of a way to get it under test.

Revision history for this message
Daniel van Vugt (vanvugt) wrote : Posted in a previous version of this proposal

Works for me. Though there are some indentation/tab mismatches around line 107. Looks like your tabs are not 8 characters wide like they should be?

review: Needs Fixing
Revision history for this message
Sam Spilsbury (smspillaz) wrote :

indentation fixed ... will add tests when I have time.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Manual testing -> Works well.

This branch also appears to solve the problem of my missing panel shadow when running dev builds of Unity. But that's just a bonus.

review: Approve
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Whoops. It turns out this branch is tricking the decor plugin into painting (proper) shadows for the panel and launcher. It looks awesome so I hope we can keep it. But it's probably a mistake.

Revision history for this message
Sam Spilsbury (smspillaz) wrote :

> Whoops. It turns out this branch is tricking the decor plugin into painting
> (proper) shadows for the panel and launcher. It looks awesome so I hope we can
> keep it. But it's probably a mistake.

It probably is, thanks for catching that.

review: Needs Fixing
2374. By Sam Spilsbury

Merge lp:unity

2375. By Sam Spilsbury

Merge lp:~vanvugt/unity/fix-1010348

2376. By Sam Spilsbury

Make the code slightly more sane, use some interfaces to demonstrate
what is happening and break dependencies a little

2377. By Sam Spilsbury

Ensure that we always paint on top of the topmost nux window

2378. By Sam Spilsbury

Also return false if someone tries to paint us with PAINT_WINDOW_NO_CORE_INSTANCE_MASK

2379. By Sam Spilsbury

Implement top window detection in terms of paint requestor

2380. By Sam Spilsbury

Merge lp:unity

2381. By Sam Spilsbury

Move paint requestor enforcement to UnityPaintDispatch

2382. By Sam Spilsbury

Move paint mask prohibition into UnityPaintDispatch through strategy

2383. By Sam Spilsbury

Ensure that the backing fbo is painted too

2384. By Sam Spilsbury

Work correctly with USE_MODERN_COMPIZ_GL too

2385. By Sam Spilsbury

Move UnityPaintDispatch to separate file

2386. By Sam Spilsbury

Use UnityPaintDispatch by composition

2387. By Sam Spilsbury

Rename variable

2388. By Sam Spilsbury

UnityPaint* -> ShellPaint*

2389. By Sam Spilsbury

mv UnityPaintSchedule -> ShellPaintSchedule

2390. By Sam Spilsbury

Initial tests for ShellPaintSchedule

2391. By Sam Spilsbury

Basic paint tests

2392. By Sam Spilsbury

Basic prohibition test

2393. By Sam Spilsbury

Inverse prohibition test case

2394. By Sam Spilsbury

Basic top requestor tests

2395. By Sam Spilsbury

Test suprvening requestor behaviour

2396. By Sam Spilsbury

Tests for RepaintPending value

2397. By Sam Spilsbury

Test prohibited paint requestor retreival

2398. By Sam Spilsbury

Merge lp:unity

2399. By Sam Spilsbury

Merge lp:unity

2400. By Sam Spilsbury

Change namespace to unity::compiz

2401. By Sam Spilsbury

unsigned int -> enum && move namespace compiz {} to namespace unity::compiz

2402. By Sam Spilsbury

Nuke FBOBindingQueryInterface

2403. By Sam Spilsbury

Basic documentation, not really a substitute for better code ...

2404. By Sam Spilsbury

Merge lp:unity

2405. By Sam Spilsbury

Remove unused method and rename methods to make more sense

Unmerged revisions

2405. By Sam Spilsbury

Remove unused method and rename methods to make more sense

2404. By Sam Spilsbury

Merge lp:unity

2403. By Sam Spilsbury

Basic documentation, not really a substitute for better code ...

2402. By Sam Spilsbury

Nuke FBOBindingQueryInterface

2401. By Sam Spilsbury

unsigned int -> enum && move namespace compiz {} to namespace unity::compiz

2400. By Sam Spilsbury

Change namespace to unity::compiz

2399. By Sam Spilsbury

Merge lp:unity

2398. By Sam Spilsbury

Merge lp:unity

2397. By Sam Spilsbury

Test prohibited paint requestor retreival

2396. By Sam Spilsbury

Tests for RepaintPending value

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.