Bug 513283 - feature request: commit_timing wayland protocol support
Summary: feature request: commit_timing wayland protocol support
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: compatibility (other bugs)
Version First Reported In: 6.5.4
Platform: Other Linux
: NOR wishlist
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-12-13 10:03 UTC by mslore55
Modified: 2026-09-10 21:53 UTC (History)
7 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: 6.8.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description mslore55 2025-12-13 10:03:05 UTC
The commit_timing wayland protocol will be required by Mesa to fully implement VK_EXT_present_timing [1], specifically it is required for the presentAtAbsoluteTimeSupported feature, which in turn will be required by vkd3d-proton [2] and presumably DXVK to finally properly implement DXGI's SyncInterval > 1.

[1] https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38770
[2] https://github.com/HansKristian-Work/vkd3d-proton/pull/2751
Comment 1 Shengyu Qu 2026-01-28 09:13:46 UTC
VK_EXT_present_timing support has been merged to upstream mesa: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38770
Comment 2 Zamundaaa 2026-02-16 15:47:36 UTC
*** Bug 516067 has been marked as a duplicate of this bug. ***
Comment 3 Bug Janitor Service 2026-03-09 17:51:36 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/8955
Comment 4 Zamundaaa 2026-09-08 15:04:11 UTC
Git commit e29d8f841220cba2daf501e50dfa32ee335961d9 by Xaver Hugl.
Committed on 08/09/2026 at 14:34.
Pushed by zamundaaa into branch 'master'.

wayland: support the commit-timing protocol

This protocol allows applications to set the earliest time the compositor should
apply the commit. It can be used for example by video players to schedule frames
in advance, or to better control the refresh rate with adaptive sync.

M  +1    -0    autotests/integration/CMakeLists.txt
M  +12   -0    autotests/integration/kwin_wayland_test.h
M  +115  -2    autotests/integration/test_fifo.cpp
M  +24   -0    autotests/integration/test_helpers.cpp
M  +2    -2    src/core/outputlayer.cpp
M  +1    -1    src/core/outputlayer.h
M  +28   -6    src/scene/item.cpp
M  +6    -3    src/scene/item.h
M  +12   -2    src/scene/scene.cpp
M  +6    -1    src/scene/scene.h
M  +18   -1    src/scene/surfaceitem_wayland.cpp
M  +2    -0    src/scene/surfaceitem_wayland.h
M  +3    -0    src/scene/workspacescene.cpp
M  +3    -0    src/wayland/CMakeLists.txt
A  +76   -0    src/wayland/commit_timing_v1.cpp     [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)]
A  +45   -0    src/wayland/commit_timing_v1.h     [License: LGPL(3+eV) LGPL(v3.0) LGPL(v2.1)]
M  +44   -15   src/wayland/surface.cpp
M  +7    -1    src/wayland/surface.h
M  +7    -3    src/wayland/surface_p.h
M  +52   -25   src/wayland/transaction.cpp
M  +14   -8    src/wayland/transaction.h
M  +2    -0    src/wayland_server.cpp
M  +2    -0    src/wayland_server.h

https://invent.kde.org/plasma/kwin/-/commit/e29d8f841220cba2daf501e50dfa32ee335961d9