After executing a PresentPixmap request using the copy path, Xwayland will clear the vblank's pixmap field and re-queue it for the next msc so that on the next frame a PresentCompleteNotify event will be delivered to the client by present_execute_post. While this does work, since the pixmap field of the vblank will be NULL when present_execute_post is called, the mode reported in the event will always be PresentCompleteModeSkip, even if the request *was* actually executed with a copy. To fix this, we introduce a new "copy_executed" flag in the xwl_present_event struct. If xwl_present_execute sees that this flag is set, it will fall straight through to present_execute_post like it does if the window or pixmap is NULL. So, after executing a request with present_execute_copy, instead of clearing the pixmap field we will set the copy_executed flag to true. This will cause present_execute_post to report the correct completion mode to the client when the PresentCompleteNotify event is delivered on the next frame. Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com> Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1254> |
||
---|---|---|
.. | ||
kdrive | ||
vfb | ||
xfree86 | ||
xnest | ||
xquartz | ||
xwayland | ||
xwin | ||
meson.build |