Merge lp://qastaging/~compiz-team/compiz/compiz.fix_1016367 into lp://qastaging/compiz/0.9.8
Status: | Merged |
---|---|
Approved by: | Daniel van Vugt |
Approved revision: | 3257 |
Merged at revision: | 3275 |
Proposed branch: | lp://qastaging/~compiz-team/compiz/compiz.fix_1016367 |
Merge into: | lp://qastaging/compiz/0.9.8 |
Diff against target: |
77 lines (+22/-6) 2 files modified
plugins/opengl/src/privatetexture.h (+2/-0) plugins/opengl/src/texture.cpp (+20/-6) |
To merge this branch: | bzr merge lp://qastaging/~compiz-team/compiz/compiz.fix_1016367 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Daniel van Vugt | Approve | ||
Review via email: mp+111540@code.qastaging.launchpad.net |
Commit message
Wait for the server to finish processing requests before doing a bind
(LP: #1016367)
Description of the change
== Problem ==
There's a potential race condition in this code:
(*GL::
(*GL::
If there are changes to the pixmap, or if pixmap goes away in between those calls, then the resultant call will be invalid. We should instead grab the server, get the pixmap, wait for the server and then attempt to bind it. That wil also guaruntee tear-free pixmap binds.
== Solution ==
Wait for the server to finish processing requests before doing a bind
== Test ==
None yet, will add when appropriate
Looks OK and works OK on intel. I want to test the NVIDIA driver yet...
Are you completely sure the server grab is necessary? I can't see it having a penalty in my brief intel testing.