Merge lp:~sil2100/compiz-core/decor_bindtexture into lp:compiz-core
Status: | Merged |
---|---|
Merged at revision: | 3098 |
Proposed branch: | lp:~sil2100/compiz-core/decor_bindtexture |
Merge into: | lp:compiz-core |
Diff against target: |
102 lines (+43/-19) 2 files modified
plugins/decor/src/decor.cpp (+41/-19) plugins/decor/src/decor.h (+2/-0) |
To merge this branch: | bzr merge lp:~sil2100/compiz-core/decor_bindtexture |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Daniel van Vugt | Approve | ||
Sam Spilsbury | Approve | ||
Review via email: mp+102509@code.launchpad.net |
Commit message
Export the process of DecorTexture pixmap binding to a separate method.
This way we can call DecorTexture:
Description of the change
Problem:
As described in LP: #770283, since long window decorations just don't update correctly for fglrx users. This is happening since oneiric or even earlier. The problem is quite severe, since it affects all users and really makes the Ubuntu experience troublesome.
The problem lies in fglrx (most probably) not being able to correctly pass changes made to a Pixmap to the underlying GLXPixmap created out of it. I already informed ATI about the problem and we're analyzing it in more detail.
The fix:
It's a hacky workaround, but all that is needed is forcing the decor plugin to just rebind the texture on damage events regarding decoration textures. This merge request only introduces the creation of the bindTexture () method, which allows explicit binding/rebinding of textures from a DecorTexture.
The actual usage of the bindTexture method which fixes the fglrx problem will be included as a distro-patch (as we decided with Sam and Didier).
Test coverage:
None.
Technically it's an ABI change. But it's a "compatible" ABI change to be adding a non-virtual function.