On 19.02.2016 14:31, Keith Packard wrote:
> Michel Dänzer <[email protected]> writes:
> 
> Here's another review, now that I've more carefully looked at the other
> two patches.
> 
>> +    if (!flip_window || !flip_pixmap)
>> +        return;
> 
> In the original code, this didn't abort the operation entirely...
> 
> This operation would have been skipped:
> 
>> +    present_set_tree_pixmap(flip_window, flip_pixmap, screen_pixmap);
> 
> But this operation would not:
> 
>> +    present_set_tree_pixmap(screen->root, NULL, screen_pixmap);

BTW, it might be safer to make this

    present_set_tree_pixmap(screen->root, flip_pixmap, screen_pixmap);

as well, so the root window pixmap is only changed to the screen pixmap
if it's currently the flip pixmap? Anyway, this can be done in a
followup, since the current call with NULL doesn't seem to cause any
problem in practice.


> Reading the rest of the code, I can't find a case which could call this
> with a null flip_window or flip_pixmap;

While I couldn't either just looking at present.c, I can get it called
with flip_window == NULL when pressing Escape while glxgears is flipping
in fullscreen, presumably due to present_clear_window_flip.

I'm not sure the present_copy_region or
present_set_tree_pixmap(screen->root, ...) calls will ever have any
actual effect in this case, but for now let's preserve the logic of the
refactored code wrt this.


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to