-
Notifications
You must be signed in to change notification settings - Fork 144
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update for wlroots 0.18 #1641
base: master
Are you sure you want to change the base?
Update for wlroots 0.18 #1641
Conversation
Thanks for getting this going! |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
The damage issues and wayland native windows not be appearing should hopefully be fixed by the last commits. Also rebased on top of master. |
Further outstanding issues:
|
Logs for the above issues, possibly also relevant to wlroots 0.18 instead of just labwc: |
Confirmed these frame rate issues do not occur with Sway master, so it's down to labwc and this PR being updated to handle whatever the refresh issue is. |
b63309f
to
faf33a7
Compare
@kode54 added a FPS counter per output via debug log, maybe this helps to shed some light on your half monitor refresh rate observation. I have a slight feeling that this has something to do with the presentation time protocol but I am not sure. At least nested I get the full fps via |
As discussed the other day, I've been running this PR for a couple of days now and it seems fine. I've also carried out an independent review by studying the PR and the sway commit-history between 2023-11-21 and 2024-05-12 (i.e. since wlroots 0.17.0 release). See findings below. wlroots chasing - can be done on master now (I think)wlroots chasing required on
|
wlroots now handles that internally (and in fact asserts that the given surface is not an unamanged one), see https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4052. That was implemented in wlroots to fix a sway bug because it did not restack unmanged surfaces on top like we do / did. |
Frame rate issues seem to be resolved now. |
Rebased on master and disabled the fps counter, can be re-enabled by uncommenting |
Closing virt-manager window for a VM now crashes with memory corruption:
|
Started running this PR as my daily driver. Good job. |
Updated wlroots, one new commit dealing with direct scanout and color processing, and now the above crash isn't happening any longer? |
This apparently fixes the quarter screen issue I was having with Waydroid? Seems to work without requiring me to suspend my displays first. |
0008d36
to
4f3fa22
Compare
I've been running this version for a while, and turned on logging this morning and noticed error messages
It doesn't seem to matter which window, every time I open a new app/window, the message appears. Edit to add: seems to come from src/xdg.c
Note: I do run with decorations turned completely off ETA2: |
Its caused by the decoration manager:
Edit: |
It does report both depending on whether a layer app or regular app. Edit to add: |
Is this worth rebasing without addressing the issues mentioned above? Or is there some pending work already? |
Already fixed in its master branch but not yet available in a release. https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/366
Yes, rebased on current master.
No, didn't yet look into them. |
I'll rebuild again tonight, but there was a bug I noticed with Fullscreen toggle, if toggling from a Maximized window. If toggling from Maximized, it wants to resize the window, but fit it within the same position offset as Maximized, and leaves the dock overlay onscreen. |
Same story as
This branch is not intended to be merged anytime soon but should allow to collaborate on chasing wlroots master.
As in the previous PR, feel free to push changes into this branch.
I suggest not using force pushes for now to reduce chances of accidentally overwriting something. If some existing commit should be amended just use
!fixup
or[fixup]
or something along that line and refer to the subject of the commit to be amended (the hash may change due to rebases). We can remove that no-force-push restriction once we have a somewhat stable base to work with.Like in #626 our goal should also be to make this PR as small as possible to reduce rebase conflicts with master. So if we can merge a commit in master that works for 0.17 and 0.18 without introducing any unnecessary complexity we should likely do that.
@ahesford @jlindgren90 @johanmalm
Further information:
Current issues:
wlroots.wrap
files do not yet contain the correct wlroots hash and might also be out of order, I only did the first step of getting labwc to work with current wlroots master.wlr_renderer.events.lost
to catch GPU resets and do aReconfigure
to reload all compositor side buffersxdg_surface->initialized == true
, also needs storage of the requested deco mode or link from view to the deco object itself which can be used from the xdg commit handlerFixed:
wlr_output->pending
we have to use thewlr_output_state_()
variants everywhere. But to reduce unnecessary screen blanking during mode changes we likely want to keep using a shared pending state. Rather than changing everything around to that I added a newsrc/output-state.c
file which provides wrappers for the oldwlr_output_set_()
functions. This massively reduces rebase conflicts.ctrl-c
in gdb when running nested,needs investigationthis is a libwayland bug, fixed via this MR but not yet releasedlab_wlr_scene_commit()
still contains a comment about handling damage, that was an issue in wlroots 0.17.x but might now have been fixed upstream, needs to be verifiedWLR_SCENE_DEBUG_DAMAGE=highlight
damage tracking is pretty broken, wlroots MRThere might be more issues, only slightly tested.