Use one framebuffer object per screen
Bug #868120 reported by
Sam Spilsbury
This bug affects 36 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Unity |
Fix Released
|
Medium
|
Sam Spilsbury | ||
unity (Ubuntu) |
Fix Released
|
Medium
|
Sam Spilsbury | ||
Oneiric |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
We should use one framebuffer object per screen rather than one per monitor. Using one per monitor leads to all kinds of interesting rendering glitches because the plugins expect that paint is clipped to the entire backbuffer rather than paint being contained in one buffer.
This should also fix crashes on changing resolutions, as we don't have the race condition where a monitor paints and an fbo hasn't been created for it yet.
Related branches
lp:~smspillaz/unity/unity.oem-fixes
- Jason Smith (community): Approve
- Robert Carr (community): Approve
-
Diff: 1711 lines (+1184/-294)12 files modifiedplugins/unityshell/src/BackgroundEffectHelper.cpp (+13/-0)
plugins/unityshell/src/BackgroundEffectHelper.h (+1/-1)
plugins/unityshell/src/PanelView.cpp (+1/-2)
plugins/unityshell/src/ScreenEffectFramebufferObject.cpp (+234/-0)
plugins/unityshell/src/ScreenEffectFramebufferObject.h (+84/-0)
plugins/unityshell/src/comptransientfor.cpp (+2/-0)
plugins/unityshell/src/unityshell.cpp (+73/-256)
plugins/unityshell/src/unityshell.h (+7/-35)
tests/CMakeLists.txt (+14/-0)
tests/GLFuncLoader.cpp (+51/-0)
tests/GLFuncLoader.h (+33/-0)
tests/TestScreenEffectFramebufferObject.cpp (+671/-0)
lp:~smspillaz/unity/unity.fix_864784_868120_872625v2
- Jason Smith (community): Approve
- Mirco Müller: Pending requested
- Neil J. Patel: Pending requested
-
Diff: 1729 lines (+1188/-297)11 files modifiedplugins/unityshell/src/BackgroundEffectHelper.cpp (+13/-0)
plugins/unityshell/src/BackgroundEffectHelper.h (+1/-1)
plugins/unityshell/src/PanelView.cpp (+1/-2)
plugins/unityshell/src/ScreenEffectFramebufferObject.cpp (+234/-0)
plugins/unityshell/src/ScreenEffectFramebufferObject.h (+87/-0)
plugins/unityshell/src/unityshell.cpp (+75/-257)
plugins/unityshell/src/unityshell.h (+7/-35)
standalone-clients/CMakeLists.txt (+16/-2)
standalone-clients/GLFuncLoader.cpp (+51/-0)
standalone-clients/GLFuncLoader.h (+33/-0)
standalone-clients/TestScreenEffectFramebufferObject.cpp (+670/-0)
Changed in unity: | |
status: | New → In Progress |
importance: | Undecided → Medium |
assignee: | nobody → Sam Spilsbury (smspillaz) |
milestone: | none → 4.24.0 |
Changed in unity (Ubuntu): | |
importance: | Undecided → Medium |
status: | New → In Progress |
assignee: | nobody → Sam Spilsbury (smspillaz) |
Changed in unity: | |
milestone: | 4.24.0 → 4.26.0 |
Changed in unity: | |
milestone: | 4.26.0 → 4.28.0 |
Changed in unity: | |
status: | In Progress → Fix Released |
Changed in unity: | |
status: | Fix Released → Fix Committed |
Changed in unity: | |
status: | Fix Committed → Fix Released |
Changed in unity (Ubuntu): | |
status: | In Progress → Fix Released |
To post a comment you must log in.
Works great for me. Fixes expo graphic glitch, resume after standby/hibernate freezes and the issues after changing the resolution.