theuni/xbmc — comment on commit 2daa4f49bc92bb44f954f9444d7f62d0967b26d0
File:  line 0
By topfs2:

oh I finally see the problem. Well thats not how its supposed to work for sure :). We should be able to solve this better though by redesigning the tracker a tiny bit. Essentially we want to ask the tracker if we need to render + flip or if we can stay on old. (which is probaby what jmarshall was getting at now that I'm rereading). So the flow should probably be:
Update: (possibly marks)
if (noflip) {
if (tracker->NeedsRender()) {
foreach region in tracker->solve() {
render(region);
}
flip();
tracker->ageregions(); // or iterate or whatever (CleanMarkedRegions before).
} else {
sleep();
}
} else {
foreach region in tracker.solve() {
render(region);
flip();
tracker->ageregions();
}

That should do the same thing as you want but a bit more generic I'd think?