Skip to content

syncobj: use rendernode for timelines#11087

Merged
vaxerski merged 11 commits into
hyprwm:mainfrom
gulafaran:rendernode
Aug 24, 2025
Merged

syncobj: use rendernode for timelines#11087
vaxerski merged 11 commits into
hyprwm:mainfrom
gulafaran:rendernode

Conversation

@gulafaran
Copy link
Copy Markdown
Contributor

@gulafaran gulafaran commented Jul 18, 2025

use rendernode for timelines instead of the drmfd, some devices dont support to use the drmfd for this.

requires: hyprwm/aquamarine#193

fixes: #10401

@vaxerski
Copy link
Copy Markdown
Member

might be affected by #11117

@gulafaran
Copy link
Copy Markdown
Contributor Author

might be affected by #11117

yeah moved the displaynode / rendernode to structs. check cap on display node first, then render node. unless i missed some logic here i think its working as intended

@rowanG077
Copy link
Copy Markdown

rowanG077 commented Aug 1, 2025

Can confirm this PR (+ aquamarine changes) works for me on asahi

@gulafaran
Copy link
Copy Markdown
Contributor Author

Can confirm this PR (+ aquamarine changes) works for me on asahi

nice, mostly just waiting for AQ release then and our rulers review on it ;)

@vaxerski
Copy link
Copy Markdown
Member

needs a nix bump + cmake/meson aq dep bump and should be gtg

@gulafaran
Copy link
Copy Markdown
Contributor Author

needs a nix bump + cmake/meson aq dep bump and should be gtg

nix i got no clue, i leave that for @fufexan

@vaxerski
Copy link
Copy Markdown
Member

@fufexan can you bump aq again

@gulafaran
Copy link
Copy Markdown
Contributor Author

did that actually build with AQ git or did it just rebuild same 0.9.3?

@gulafaran
Copy link
Copy Markdown
Contributor Author

did that actually build with AQ git or did it just rebuild same 0.9.3?

checked hashes, it did. nvm.

@gulafaran gulafaran force-pushed the rendernode branch 3 times, most recently from 712d43f to 43f67a2 Compare August 20, 2025 02:08
@gulafaran
Copy link
Copy Markdown
Contributor Author

@fufexan i assume its fine if i update the flake.lock? or does nixos need some prep outside of this flake?

@fufexan
Copy link
Copy Markdown
Member

fufexan commented Aug 20, 2025

Yeah, you can update it. No need for anything else.

gulafaran and others added 11 commits August 24, 2025 20:35
use rendernode for timelines instead of the drmfd, some devices dont
support to use the drmfd for this.
use rendernode if available for CHyprOpenglImpl
try use the rendernode we got from AQ if it exist.
use the rendernode if available already from AQ
prefer the rendernode over the displaynode, and log a error if
attempting to use the protocol without explicit sync support on any of
the nodes.
check support on both nodes always so it can be used later for
preferring rendernode if possible in syncobj protocol.
remove old m_bDrmSyncobjTimelineSupported from non linux if else case
that will fail to compile on non linux. the nodes sets support by
default to false, and if non linux it wont check for support and set it
to true.
bump to 0.9.3 where rendernode support got added.
software renderers apparently bug out on implicit sync, use glfinish as
with nvidia case on implicit paths.
@vaxerski vaxerski merged commit b329ea8 into hyprwm:main Aug 24, 2025
13 checks passed
@oiiiiiiii
Copy link
Copy Markdown

Thanks a lot for the fix @gulafaran :)
Really looking forward to when this is released 🎉

Boom-Hacker pushed a commit to Boom-Hacker/Hyprland that referenced this pull request Sep 27, 2025
* syncobj: use rendernode for timelines

use rendernode for timelines instead of the drmfd, some devices dont
support to use the drmfd for this.

* opengl: use rendernode if available

use rendernode if available for CHyprOpenglImpl

* MesaDRM: use the m_drmRenderNodeFD if it exist

try use the rendernode we got from AQ if it exist.

* linuxdmabuf: use rendernode if available

use the rendernode if available already from AQ

* syncobj: prefer rendernode over displaynode

prefer the rendernode over the displaynode, and log a error if
attempting to use the protocol without explicit sync support on any of
the nodes.

* syncobj: check support on both nodes always

check support on both nodes always so it can be used later for
preferring rendernode if possible in syncobj protocol.

* syncobj: remove old var in non linux if else case

remove old m_bDrmSyncobjTimelineSupported from non linux if else case
that will fail to compile on non linux. the nodes sets support by
default to false, and if non linux it wont check for support and set it
to true.

* build: bump aq requirement

bump to 0.9.3 where rendernode support got added.

* flake.lock: update

* renderer: glfinish on software renderer

software renderers apparently bug out on implicit sync, use glfinish as
with nvidia case on implicit paths.

* flake.lock: update

---------

Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
Boom-Hacker pushed a commit to Boom-Hacker/Hyprland that referenced this pull request Sep 27, 2025
* syncobj: use rendernode for timelines

use rendernode for timelines instead of the drmfd, some devices dont
support to use the drmfd for this.

* opengl: use rendernode if available

use rendernode if available for CHyprOpenglImpl

* MesaDRM: use the m_drmRenderNodeFD if it exist

try use the rendernode we got from AQ if it exist.

* linuxdmabuf: use rendernode if available

use the rendernode if available already from AQ

* syncobj: prefer rendernode over displaynode

prefer the rendernode over the displaynode, and log a error if
attempting to use the protocol without explicit sync support on any of
the nodes.

* syncobj: check support on both nodes always

check support on both nodes always so it can be used later for
preferring rendernode if possible in syncobj protocol.

* syncobj: remove old var in non linux if else case

remove old m_bDrmSyncobjTimelineSupported from non linux if else case
that will fail to compile on non linux. the nodes sets support by
default to false, and if non linux it wont check for support and set it
to true.

* build: bump aq requirement

bump to 0.9.3 where rendernode support got added.

* flake.lock: update

* renderer: glfinish on software renderer

software renderers apparently bug out on implicit sync, use glfinish as
with nvidia case on implicit paths.

* flake.lock: update

---------

Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Explicit sync doesn't work on split-node gpu drivers

5 participants