Merge lp://staging/~compiz-team/compiz/compiz.fix_1016366 into lp://staging/compiz/0.9.8

Proposed by Sam Spilsbury
Status: Merged
Merged at revision: 3274
Proposed branch: lp://staging/~compiz-team/compiz/compiz.fix_1016366
Merge into: lp://staging/compiz/0.9.8
Diff against target: 590 lines (+215/-101)
8 files modified
plugins/composite/include/composite/composite.h (+5/-0)
plugins/composite/src/pixmapbinding/include/pixmapbinding.h (+11/-0)
plugins/composite/src/pixmapbinding/src/pixmapbinding.cpp (+4/-1)
plugins/composite/src/pixmapbinding/tests/test-composite-pixmapbinding.cpp (+128/-48)
plugins/composite/src/privates.h (+4/-1)
plugins/composite/src/window.cpp (+23/-13)
plugins/opengl/src/window.cpp (+37/-33)
src/window.cpp (+3/-5)
To merge this branch: bzr merge lp://staging/~compiz-team/compiz/compiz.fix_1016366
Reviewer Review Type Date Requested Status
Daniel van Vugt Approve
Review via email: mp+111541@code.staging.launchpad.net

Description of the change

== Problem ==
There are a few cases where textures can become invalid because a pixmap went away and a plugin is keeping the texture around for animations (eg, unmapRefCnt).

This is anywhere where CompositeWindow::release () can be called from, which includes frame updates, map, unmap, resize etc. In those cases, some drivers may not report a failure to bind the texture and we will have an invalid texture.

== Solution ==
Don't allow unbinds of textures kept around for animations in
any case, not just resizing.

== Test ==
Covered by existing unit tests.

To post a comment you must log in.
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Works nicely on intel. I'll retest with NVIDIA later.

I would suggest making frozen() const. But it looks like that might not be possible because it uses CompWindow which is not const-friendly.

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

Also OK on NVIDIA.

For future reference, I would suggest not using names like:
   class PixmapFreezerInterface
And instead use something like:
   class FreezablePixmap

review: Approve

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.

Subscribers

People subscribed via source and target branches