drm: check syncobj timeline support before advertising protocol#11117
Merged
Conversation
Member
|
this MR is based on some old rev, needs to be rebased on top of main, that's first. Second - Asahi and Apple Silicon support explicit sync - just not on the display node, and Tom is working on that in #11087 |
Prevents crashes on systems where DRM driver lacks syncobj timeline support (e.g., Apple Silicon with Honeykrisp driver). Applications like Zed and WezTerm would crash with 'Timeline failed importing' when trying to use explicit sync. Fixes hyprwm#8158 hyprwm#8803
210b366 to
09b0fbc
Compare
Contributor
Author
|
Rebased and retested |
vaxerski
reviewed
Jul 20, 2025
2e5aa2c to
09b0fbc
Compare
Contributor
Author
|
Fixed - moved the capability check to init and removed the duplicate functions. Retested again - works. |
Member
|
c-f failed, run c-f pls |
vaxerski
reviewed
Jul 23, 2025
vaxerski
approved these changes
Jul 23, 2025
Boom-Hacker
pushed a commit
to Boom-Hacker/Hyprland
that referenced
this pull request
Sep 27, 2025
…wm#11117) Prevents crashes on systems where DRM driver lacks syncobj timeline support (e.g., Apple Silicon with Honeykrisp driver). Applications like Zed and WezTerm would crash with 'Timeline failed importing' when trying to use explicit sync. Fixes hyprwm#8158 hyprwm#8803 --------- Co-authored-by: mvonarx <matthias.vonarx@sitrox.com>
Boom-Hacker
pushed a commit
to Boom-Hacker/Hyprland
that referenced
this pull request
Sep 27, 2025
…wm#11117) Prevents crashes on systems where DRM driver lacks syncobj timeline support (e.g., Apple Silicon with Honeykrisp driver). Applications like Zed and WezTerm would crash with 'Timeline failed importing' when trying to use explicit sync. Fixes hyprwm#8158 hyprwm#8803 --------- Co-authored-by: mvonarx <matthias.vonarx@sitrox.com>
Boom-Hacker
pushed a commit
to Boom-Hacker/Hyprland
that referenced
this pull request
Sep 27, 2025
…wm#11117) Prevents crashes on systems where DRM driver lacks syncobj timeline support (e.g., Apple Silicon with Honeykrisp driver). Applications like Zed and WezTerm would crash with 'Timeline failed importing' when trying to use explicit sync. Fixes hyprwm#8158 hyprwm#8803 --------- Co-authored-by: mvonarx <matthias.vonarx@sitrox.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Describe your PR, what does it fix/add?
Fixes crashes in Vulkan applications (Zed, WezTerm, etc.) on systems where the DRM driver doesn't support syncobj timelines, particularly Apple Silicon devices running Asahi Linux with the Honeykrisp driver.
The issue was that Hyprland advertised the
linux-drm-syncobj-v1protocol regardless of hardware support. When applications attempted to use explicit sync, they would crash with "Timeline failed importing" errors.This PR adds
DRM_CAP_SYNCOBJ_TIMELINEcapability checking at two levels:Is there anything you want to mention? (unchecked code, possible bugs, found problems, breaking compatibility, etc.)
No breaking compatibility - this only prevents advertising a protocol when the underlying hardware doesn't support it. Applications gracefully fall back to implicit sync when explicit sync isn't available.
Is it ready for merging, or does it need work?
Ready for merging. Tested on Fedora Asahi Remix with Apple M1 Pro. Applications that previously crashed now start successfully and run normally.