Louvre v2.0.0 Release: C++ library for building Wayland compositors
from ehopperdietzel@lemmy.world to linux@lemmy.ml on 11 Jun 06:05
https://lemmy.world/post/16406353

Hello everyone,

I wanted to share with you (once more) the release of Louvre v2.0.0 (C++ library for building Wayland compositors) #linux .

Demo Video.

Highlights of the new features:

Release Details.

If there’s any protocol or functionality you would like to see added, please feel free to suggest it or contribute to its development!

#linux

threaded - newest

PipedLinkBot@feddit.rocks on 11 Jun 06:06 next collapse

Here is an alternative Piped link(s):

Demo Video

Piped is a privacy-respecting open-source alternative frontend to YouTube.

I’m open-source; check me out at GitHub.

porl@lemmy.world on 11 Jun 06:32 next collapse

How does this compare to wlroots?

ehopperdietzel@lemmy.world on 11 Jun 08:33 collapse

Louvre is less modular but handles a lot of tedious tasks behind the scenes, providing a simple API (the enjoyable/creative part I’d say) without sacrificing much flexibility. On the other hand, Wlroots is excellent and highly modular, which is good, but it also means it places all the responsibility on you. You must invest time to fully understand each protocol and implement many tedious tasks yourself, which naturally takes quite some time. Additionally, Louvre is multi-threaded, as seen in the benchmark results in the repository, resulting in higher and more stable FPS compared to single-threaded designs when rendering complex scenes.

porl@lemmy.world on 11 Jun 23:17 collapse

Thanks for the summary! Good luck with the project 👍

ehopperdietzel@lemmy.world on 12 Jun 02:39 collapse

Thanks! :)

ijhoo@lemmy.ml on 11 Jun 06:33 next collapse

This looks awesome.

Looks like it could be a very good alternative to mutter and kwin.

Questions:

  • what about Vulkan instead GL? Should be more performant and use less battery. Especially if it is meant to also work on mobile.
  • is Louvre drawing those window decorations?
  • there is some overlap with github.com/winft/theseus-ship - any idea for a collaboration there?
  • there seems to be a company behind, while I didn’t investigate, are there plans for further development that you would publish, is there a way to influence those plans (suggestions, donations, some other way)
  • any plans to make a shell around it?
  • it is mentioned that this is a library, but obviously there is a working compositor. Regardless if this is a technology demonstrator, would it be possible to publish a compositor with decent theming and a few distinct layer modes (classic windows with taskbar, windows 8 like, Mac, gnome, ubuntu). I guess many smaller Linux DEs would consider it then…
  • how does it compare to kwin/mutter?
ehopperdietzel@lemmy.world on 11 Jun 08:17 next collapse

Thank you :)

what about Vulkan instead GL? Should be more performant and use less battery. Especially if it is meant to also work on mobile.

Yes, I believe I could create a renderer using Vulkan without much difficulty. Initially, I chose GLES2 for compatibility reasons.

is Louvre drawing those window decorations?

Yes, only the decorations with macOS style.

there is some overlap with github.com/winft/theseus-ship - any idea for a collaboration there?

Well, that’s a compositor (which uses COMO) and Louvre is a library, so sure, I could collaborate with COMO.

there seems to be a company behind, while I didn’t investigate, are there plans for further development that you would publish, is there a way to influence those plans (suggestions, donations, some other way)

Cuarzo Software is just a name I use to release my open source projects, it’s not a real company. Everyone is welcome to suggest ideas or contribute to the development of these projects, and I genuinely appreciate that.

any plans to make a shell around it?

If time allows me, of course.

it is mentioned that this is a library, but obviously there is a working compositor. Regardless if this is a technology demonstrator, would it be possible to publish a compositor with decent theming and a few distinct layer modes (classic windows with taskbar, windows 8 like, Mac, gnome, ubuntu). I guess many smaller Linux DEs would consider it then…

Absolutely, you’re free to build a compositor however you like, whether it’s in 2D, 3D, or any other style. Essentially, it’s akin to creating a game, with window applications acting as textures.

how does it compare to kwin/mutter?

Those are compositors and Louvre is just a library, so I don’t know how to compare them. As you noticed, the compositor in the video is just one of the examples I made with Louvre.

ijhoo@lemmy.ml on 11 Jun 19:20 collapse

If we are talking ideas, I would propose the following:

  • focus on the future instead of the past
    • get rid of everything Xorg (including xwayland). Reasoning: recent app upgrades to gtk4 and qt6 support Wayland just fine. Gnome has it by default, I’m not sure where plasma stands. Few things that don’t work, people can probably live without (like chromium which has Firefox as a working alternative)
    • replace OpenGL with Vulkan (that means get rid of OpenGL completely if possible). Reasoning: things sold in the last 10 years support vulkan.
  • not sure what is the state in smaller distros. Maybe it would be good to reach out to LinuxMint, lxqt and others to see what would it take for them to switch. If you could implement needed features easily…maybe they would switch.
  • RDP?
  • Html? E.g. greenfield.app
  • consider moving to codeberg?

I know dropping xwayland and opengl is unpopular, but this is where things are going. It’s on the gnome Todo sometime because as far as I read, there is development for mutter to be built totally without xorg support. Plus they recently switched gtk4 to use New vulkan rendered by default.

Another question came to my mind: how is video processing handled? There were some changes in Mutter and/or gtk4 so it would be efficient, any chance for louvre to have it?. E.g. www.phoronix.com/news/GNOME-46-Beta-Released

ehopperdietzel@lemmy.world on 11 Jun 22:31 collapse

get rid of everything Xorg

I agree, all the apps I use run natively on Wayland, but I think there will always be some legacy X11 apps that won’t get ported. So, I think I’ll implement it, but it is definitely not a priority.

replace OpenGL with Vulkan

I think I can just add support for Vulkan. There is no need to get rid of GLES as it increases the range of supported devices.

not sure what is the state in smaller distros. Maybe it would be good to reach out to LinuxMint, lxqt and others to see what would it take for them to switch. If you could implement needed features easily…maybe they would switch.

I know that Linux Mint already has support for Wayland. I am not sure which library or base compositor they are using, but I am always willing to support anyone using Louvre. Right now, I want to focus on developing my own compositor, which I’ll name Crystals.

RDP?

That’s an important feature, which I’ll add at some point.

Html? E.g. greenfield.app

Looks very interesting! I wonder how it works, so I definitely will check it out.

consider moving to codeberg?

Why?

Another question came to my mind: how is video processing handled? There were some changes in Mutter and/or gtk4 so it would be efficient, any chance for louvre to have it?. E.g. www.phoronix.com/news/GNOME-46-Beta-Released

Currently, the only type of buffers that are directly scanned out are cursors. I want to add an API to allow the use of other types of buffers soon. It is a bit complicated because overlay planes are very hardware-dependent and limited, and they support a few specific formats/modifiers. So, you also need to negotiate that with the client and so on.

ijhoo@lemmy.ml on 11 Jun 23:17 collapse

I agree, all the apps I use run natively on Wayland, but I think there will always be some legacy X11 apps that won’t get ported. So, I think I’ll implement it, but it is definitely not a priority.

While I understand the need for legacy, I also think at some point legacy should be left alone. If it is really needed for some old app to run, VM should do fine. I don’t think missing xorg is ever going to be an issue in 2025+ (well, Electron apps maybe). Yet added and not used features (or seldom used features) is offset with future maintenance burden and/or security issues for no good reason.

This also applies to OpenGL comment. Every code path introduces a maintenance burden. While support of more devices is good, supported devices are super old in this case and the question is - is it worth it? Vulkan drivers should either way be in a better state.

Looks very interesting! I wonder how it works, so I definitely will check it out.

Is super cool, there is a presentation in one of the conferences about it. Architecture is explained somewhere in the docs. Anyway, if you do implement it - this would be a good alternative to guacamole.apache.org

Who knows, maybe it would be a money opportunity.

Why?

It’s not Microsoft, but actually an open source community running open source forge. Also, it’s way faster to use in browser.

ehopperdietzel@lemmy.world on 12 Jun 02:15 collapse

Every code path introduces a maintenance burden.

Regarding Xwayland, I think so, but with respect to OpenGL + Vulkan, I don’t see it as that complicated. It’s a matter of configuring contexts and updating Louvre’s higher level APIs for buffer allocation and rendering.

Is super cool, there is a presentation in one of the conferences about it. Architecture is explained somewhere in the docs. Anyway, if you do implement it - this would be a good alternative to guacamole.apache.org

Oh, so it basically displays a remote window manager in the browser? For a moment, I thought it was running the compositor directly inside the browser with extensions or something like that, hahaha.

It’s not Microsoft, but actually an open source community running open source forge. Also, it’s way faster to use in browser.

I see. Well, to be honest, I am quite comfortable with GitHub and its features like actions, discussions, etc., and I don’t really care if Microsoft owns it as long as it’s free. But thanks for the suggestion.

ijhoo@lemmy.ml on 12 Jun 06:24 collapse

Oh, so it basically displays a remote window manager in the browser? For a moment, I thought it was running the compositor directly inside the browser with extensions or something like that, hahaha.

I saw it basically months ago, so don’t remember 100%. To not say the wrong thing, you can read about the architecture here: greenfield.app/pages/design/

Also, here is a video. The dev demonstrated it’s fast enough for gaming fosdem.org/…/fosdem-2024-3219-greenfield-wayland-…

AProfessional@lemmy.world on 12 Jun 19:54 collapse

In simple usage OpenGL can perform identical to Vulkan. A compositor with little complex rendering won’t change.

kionite231@lemmy.ca on 12 Jun 04:55 next collapse

In Hindi “Louvre” means a “dick”.

ehopperdietzel@lemmy.world on 12 Jun 05:20 next collapse

🤣 being Chilean I can only say “que buen dato te mandaste”.

Hadriscus@lemm.ee on 12 Jun 15:15 collapse

Back then, I learnt dick was “laura”. Are these synonyms ?

kionite231@lemmy.ca on 12 Jun 15:53 collapse

“laura” means literally a “dick”. but when you use “Louvre” you are referring someone as a “dick”.

Hadriscus@lemm.ee on 12 Jun 17:02 collapse

I see, thanks

Meowie_Gamer@lemmy.world on 12 Jun 15:54 next collapse

That’s just macOS Linux Edition

LeFantome@programming.dev on 13 Jun 16:35 collapse

Congratulations on 2.0! It is looking really good.

ehopperdietzel@lemmy.world on 13 Jun 19:32 collapse

Thank you!