35 ms·
New Renderers for GTK
- Eduard 3y agoDoes anyone have a grasp/understanding of how desktop environments work on Linux? I don't. For me, everything feels to get more and more convoluted and tacked on.
- hsbauauvhabzb 3y agoWith gnome being the front runner on that one. I’m curious to see how much of an impact the wayland architecture will be, and if ‘gnome only’ apps become a thing.
- NekkoDroid 3y agoFunny that you say "gnome only", cuz currently there are "non-gnome only" apps due to a specific protocol not being implemented by gnome (drm-leasing for VR, at least on main. there is a PR that is specifically said to not merge since they want to handle it via a xdg-portal). They are very wary of exposing anything in an way that could very much backfire in the long run, be it as a general implementation or exposing something they would be stuck with.
- hsbauauvhabzb 3y agoI’m not blaming gnome, I just see it as a big problem in the future ‘oh sorry just have to restart wayland so I can boot into $app’. Any display renderer that has this limitation and expects each individual project to cross-support other renderers is a poor design, at least in my books.
- PeakKS 3y agoThe xdg-portal attempt was misguided and I don't beleive anyone is pursuing it at this point. Ideally drm-leasing would be managed by the login manager, allowing multiple compositors to lease connectors and run independently on other monitors, as well as being used for VR headsets. https://github.com/systemd/systemd/issues/29078 https://github.com/systemd/systemd/issues/29078. Sidenote: I hacked the wayland protocol implementation for gnome into working at least for SteamVR, but at least with AMD gpus there is some serious bug preventing the card from performing properly. It basically throttles itself for no reason and never hits the refresh rates needed for smooth VR, especially since there is no asynchronous reprojection at the moment. So while ideally the drm-leasing problem would be solved already there are other even more important problems to solve with linux VR for now.
- pavlov 3y agoThe X Window System was basically the wrong bet on how GUIs and computer hardware would evolve. Its client/server architecture was the opposite of the highly integrated graphics processing model we ended up with. Instead of cutting its losses early and dumping X11, both the Unix vendors and open source spent far too long trying to make lemonade out of a truckload of rotten lemons. And that’s why Linux GUIs are so far behind. It’s notable how rapidly Apple was able to evolve their Unix GUI because they were not tied to X11 and instead embraced the integrated model, even designing their own GPUs nowadays.
- EasyMark 3y agoPeople keep saying this but I never really had any complaints of kde vs windows vs macos. All 3 are perfectly usable, it's only in the past 8 years or so where windows has gone crazy with the obtuse spying and ads and "MICROSOFT" everywhere. Even that isn't too hard to remove with a download or two.
- Klonoar 3y agoThey're not talking about usability, they're talking about the technical underpinnings. ;P
- jwells89 3y agoAnd polish. With X you can sometimes feel the “layers” separating and slip-sliding around a bit in places that you don’t with a Wayland DE or in macOS. This was especially true in the late 00s when there was less computing power available to brute-force these issues into being less apparent.
- user_7832 3y agoAs someone not very familiar with Linux, which desktop environment would you recommend with most “polish”? I’m thinking of switching from windows 10 on my new laptop but I do appreciate all the animations in windows. (I could also consider a hackintosh or BSD if they are prettier, especially in movement/animations.)
- wg0 3y agoLomg time ago, I think 2010ish, there was an experimental HTML renderer that would open up a GTK app in a browser that has its UI using plain HTML+CSS. For the time, it was just jaw dropping. For context, I think it was before Atom, VS Code or Electron (or possibly even NodeJS?) was a thing. Don't know if that HTML renderer is still around or not.
- ho_schi 3y agoYou mean Broadway? https://docs.gtk.org/gtk4/broadway.html https://docs.gtk.org/gtk4/broadway.html https://www.phoronix.com/news/GTK4-Broadway-Being-Used https://www.phoronix.com/news/GTK4-Broadway-Being-Used I did not considered it as main/official backend but it is still there and was ported to Gtk4.
- wg0 3y agoOh yes, that's it. Thanks for posting. I think its so beautiful. It is one of those things that have pure artisan value. Of craftsmanship. Whether it is used widely or not, I wish this backend to be there. Back then, I did run Open Office in Firefox and it amazed me.
- mananaysiempre 3y agoIf nothing’s changed, the Gtk 4 design tool Cambalache[1] by the former maintainer of the now-defunct Glade project uses[2] Broadway to render its design view, because it was there and an embedded Wayland compositor widget wasn’t. Broadway is awesome, but this just makes me sad. [1] https://gitlab.gnome.org/jpu/cambalache https://gitlab.gnome.org/jpu/cambalache [2] https://blogs.gnome.org/xjuan/2021/05/18/merengue-cambalaches-workspace/ https://blogs.gnome.org/xjuan/2021/05/18/merengue-cambalache...
- aktuel 3y agoI dont't understand. What exactly makes you sad?
- lwhi 3y ago[flagged]
- enriquto 3y agoI'd love to see an ansi text renderer, to be able to run gtk programs inside my xterm (optionally, with some sixel thrown in...).
- moondev 3y agobroadway (discussed in other comments) + carbonyl is kind of similar https://github.com/fathyb/carbonyl https://github.com/fathyb/carbonyl https://i.imgur.com/pIQ4K7Q.png https://i.imgur.com/pIQ4K7Q.png
- enriquto 3y agoBut this is not really usable, is it? I was expecting a look "native" to a terminal, i.e. a text-based user interface with the common conventions of the medium.
- captainmuon 3y agoNowadays most GTK apps look very simliar. A sidebar, some actions in the titlebar, a details view. (Same story for Mac apps, 'Modern' Windows apps, Mobile apps.) I wonder if a UX toolkit could be completely declarative and semantic - "I need a master/detail view, a list view with the following fields, some actions, ...". At the high level you don't give any positioning, or styling. It would automatically use the appropirate system widgets. Then on top you would add some polish by using a bit of CSS, or maybe an escape hatch to get the native widgets. Almost everything that is not a browser, a WYSIWYG editor, or a media viewer would fit that mould. The kicker is that from such a description you could easily generate a TUI.
- ComputerGuru 3y agoYou’re basically talking about the underpinnings of XAML. Terribly underappreciated and completely alien to the FOSS world.
- captainmuon 3y agoI'm a bit late to answer but... I've used a bit of XAML and it is not at all what I have in mind. XAML, SwiftUI and QML all have the same problem, in that they mix structure and presentation. A typical XAML app is not easily themeable. Let alone having the ability to adapt to different UI paradigms or toolkits. A symptom is that you have tags like "Rectangle" and attributes like "Margin". The high-level description shouldn't say anything about presentation, just what you want to accomplish. The building blocks should be like "CRUD Editor" or "List-Detail view".
- sim7c00 3y agolooks like so much fun workin on this :) cool stuff. When i read about the anti-aliasing i thought nice, maybe signed distance fields will work just as nice for font rendering at arbitrary scales as in game engines... (Valve had a nice paper out there on this). there's lots of cool trickery in game renderers in UI code and for things like rendering decals that might be nice in gui code too.
- akdor1154 3y agoPixel-perfect fractional scaling, baby, woohoo!
- kuschku 3y agoAfter over a decade of GTK claiming fractional scaling is "impossible" and GTK devs vetoing any fractional scaling in the wayland protocol, they finally got feature parity with Qt in this area. Now we just need proper support in Wayland and we'll finally have support for HiDPI in all major Linux DEs.
- FirmwareBurner 3y ago>After over a decade of GTK claiming fractional scaling is "impossible" and So it's just as impossible as thumbnails in the file picker? The insanity of the GTK and the resilience of people willing to put up with it is baffling to me.
- Vinnl 3y agoAt least the devs can find some motivation in the fact that they'll get comments like these every time they do something good...
- FirmwareBurner 3y agoThank you for moving the goalposts for the chance of a cheap shot comment, but you know very well that's not what I meant. GTK doing something right , doesn't suddenly absolve it of all the wrongs. And just because something is FOSS doesn't mean it's not without fault and therefore without criticism.
- SiempreViernes 3y agoLikewise, just because you are right in principle doesn't mean your actual comment is anything but rude and pointless.
- einpoklum 3y ago[flagged]
- Maken 3y agoIt would be enough if they restored the "recently used folders" functionality.
- hsbauauvhabzb 3y agoAnd not that damn subpath searching on key press behaviour. For a long time I joke that the Gnome/Gtk design decisions are made on mushrooms, it’s quite sad that it’s snot an unrealistic cause of this bizarre behaviour.
- earthling8118 3y agoOn the other hand, maybe they should introduce mushrooms into the design decisions. Maybe it'd be more reasonably designed.
- mitchhentges 3y agoThe 20 year old issue where thumbnails weren't shown in the file chooser? I believe that's fixed: https://blog.gtk.org/2022/12/15/a-grid-for-the-file-chooser/ https://blog.gtk.org/2022/12/15/a-grid-for-the-file-chooser/
- executesorder66 3y agoIf you actually cared about that bug, you would have followed it, and seen that it has been closed. But you just want to shit of GTK for no reason. It's an open source project, so they owe you nothing, and nothing was stopping you from contributing your own improvements.
- earthling8118 3y agoAt the end of the day we're the ones that have to put up with the rough edges of this software. File picker bug closed or not, the GTK file picker sucks to use. I don't have the ability to just swap it out in programs that use it, at least not within a reasonable amount of time or without significant maintenance of a forked codebase.
- mrdoob2 3y agoIf they used https://wgpu.rs/ https://wgpu.rs/ they would get directx and metal for free (:
- smallstepforman 3y agoI hope I dont sound bitter, but most decent graphics engine developers have created renderers that are a couple of generations ahead of the open source GUI toolkit renderers. There are several of us that can truely bring next gen rendering to the open source desktop, however we’re working for gamedev companies (they pay our bills), and we have no time to contribute to open source stacks. If the community can organise a regular budget to pay for such devs, then you’d see a significant rendered snd toolkit updates. Same with other open source apps.
- devnonymous 3y agoThe ^community^ here are people like you - those who also have to pay bills but contribute anyways, in whatever way they can by using the software and occasionally contributing code. While yes it would be great if a community could raise funds, that coordination job itself would have to become someone's not-paying-the-bills work. As much as I love Open source/Free/Libre software and am grateful it exists (and contributing to it, when possible), I've a long held belief that it is the pursuit of the privileged. You need to have the privilege of free time and then the privilege of being able to choose to spend that free time on something that doesn't improve your standard of living and then the privilege of being able to do it consistently.
- throwaway89988 3y agoSadly I totally agree: Open Source is the playground of people who can afford it. I benefited a lot of Open Source in my career, life so I am very thankful for all contributors (and try to give back in money/time, when I can afford one or the other). What really annoys me, that my government does not mandate that software build with tax money must be Open Source. That would go a long way to fund Open Source and improve the quality.
- notyoutube 3y agoWhat government is that?
- bjourne 3y agoI don't get why performance degradations are accepted though. I do most of my computing on old hardware and these are features I would turn off if I could and perhaps are not even supported by my gpus.
- flohofwoe 3y agoIn GL it's quite easy to accidentially miss the "fast path" and get surprising slowdowns (and in reverse, GL can be surprisingly fast when hitting the fast path). What's disappointing though is that the Vulkan renderer only nearly reaches the same performance as the old GL renderer, this seems to indicate that the problem sits on the caller side of the 3D API. It would probably have been a good idea to track performance throughout the implementation and iterate on that instead of "architectural purity".
- Vinnl 3y agoI don't understand half of the post, but claiming that they're doing this for "architectural purity" sounds ungenerous to me. The post lists a couple of tangible benefits, most of which do, I believe, relate to performance: > Proper color handling (including HDR) > Path rendering on the GPU > Possibly including glyph rendering > Off-the-main-thread rendering > Performance (on old and less powerful devices) (Which is not to say that tracking performance isn't a good idea. It's just that "architectural purity" sounds needlessly dismissive to me.)
- ahartmetz 3y agoThese renderers are not on by default and likely never will be. I have never seen it work that an immediate mode rendering API translated to retained mode becomes faster. It is probably somehow possible, but will require a ton of work and probably changes on the API client side to fix some pathological cases.
- mananaysiempre 3y ago> I have never seen it work that an immediate mode rendering API translated to retained mode becomes faster. I don’t think I get your point here. Gtk 4 is retained-mode whatever renderer you use; Vulkan and OpenGL are immediate-mode (well, kinda) whatever renderer you use. Whatever problems that forces in the new renderers would be just as present in the old ones, wouldn’t they?
- phkahler 3y agoI wish GTK didn't follow the trend of allowing widgets in the titlebar. Some can drag, some can not. There's less room for the app and file names. This is not a GTK specific complaint.
- dathinab 3y agodidn't gtk/gnome invent this trend?
- mike_ivanov 3y agoAFAIR it was Chrome with the tabs in the titlebar thing.
- einpoklum 3y ago> I wish GTK didn't follow the trend of allowing widgets in the titlebar. It's bad enough this happens in GNOME (ugh). Not another faux pas in GTK please.
- cwillu 3y agoYou may not be aware that gtk is a core gnome project.
- HumblyTossed 3y agoWhy isn't a lot of this just handled by the GPU?
- wmf 3y agoGPUs are pretty low level so it takes a lot of code to render anything.
- HumblyTossed 3y agoJust seems odd that it can't handle, for example, the fractional scaling and anti-aliasing. Thanks for at least replying, everyone else was just downvoting.