Originally posted by mirmirmir
View Post
Announcement
Collapse
No announcement yet.
Dynamic Triple Buffering Hopefully Will Land For GNOME 44
Collapse
X
-
Originally posted by smitty3268 View PostCan someone again explain why this is the proper way to fix this issue, rather than fixing the underlying GPU driver issues causing it to not ramp up clocks fast enough?
Even just adding some kind of desktop mode or sensitive hint in order to force the driver to ramp clocks more quickly than their current algorithm seems like it'd be less of a hack.
Or have the desktop devs just given up on the kernel devs ever fixing the drivers?
Comment
-
Originally posted by xAlt7x View PostYeah. Good old KWIN_TRIPLE_BUFFER variable is still available.
When vsync was shit years ago with amdgpu it didnt help at all also, and no hacks been necessary with that for a couple of years already.
Frame timings start going crazy with a couple of windows rendering at different rates.
Comment
-
Originally posted by kpedersen View Post
This is a good hands on article on why Rust is a pain in the arse for this kind of task and why people like to talk about Rust more than actually using it.
Giving up on wlroots-rs (way-cooler.org)
It all boils down to bindings against underlying C. Bindgen and swig are only viable solutions for people who haven't actually tried using them
- Likes 3
Comment
-
Originally posted by Linuxxx View Post
FWIW, the Wayland desktop of Ubuntu 22.04 LTS performs without a single hiccup on my discrete AMD Radeon R9 380 GPU.
- Likes 1
Comment
-
Originally posted by treba View Post
Short reminder that the key gnome dev in question is one of the main "doers" and just asks for things to be done properly so they don't get in the way. Similar to how kernel devs don't take in every patch that is carried downstream somewhere "because it works".
What you're describing is correct for animations - so called "culling" is not done in that case (but is done during "normal" usage). There's a WIP branch fixing that though: https://gitlab.gnome.org/GNOME/mutte..._requests/1497
That's however in most cases not the reason why the animation like the one to the overview is not smooth. The problem there is actually how most drivers decide when to ramp up the clocks, as apparently most other platforms, including e.g. iOS or Android, are using triple-buffering in a similar way as proposed by Daniel.
Precisely because iOS should have the best drivers out there, given the platform writers are also the driver writers. I wonder if iOS had triple buffering since v1 and that's why it was smoother than the competition back then.
Comment
-
Originally posted by kpedersen View Post
This is a good hands on article on why Rust is a pain in the arse for this kind of task and why people like to talk about Rust more than actually using it.
Giving up on wlroots-rs (way-cooler.org)
It all boils down to bindings against underlying C. Bindgen and swig are only viable solutions for people who haven't actually tried using them
So, with the disclamer out of the way, from what I see the Way Cooler was wrapping wlroots C api, to use with rust. And then, you will get an overhead. There are tools to assist with this, like bindgen, but you will still have to work with the C api to some extent wrapping it in unsafe and do type conversion aso. It might still be worth it from a reliability point of view, but it is not without a cost. Threre are other projects like Cosmic that are implementing compositors in rust which seems to do just find, but from what I understand they do not wrap wlroots. But, remember the rust suggestion was a joke in the first place....
Comment
-
Originally posted by AnAccount View PostDisclaimer: The actual speed was not the issue here
Originally posted by AnAccount View PostBut, remember the rust suggestion was a joke in the first place....
Originally posted by Quackdoc View Post
considering they gave up on the C one too, not convinced.Last edited by kpedersen; 10 January 2023, 07:42 AM.
Comment
-
Originally posted by AnAccount View PostThrere are other projects like Cosmic that are implementing compositors in rust which seems to do just find, but from what I understand they do not wrap wlroots.
Comment
Comment