7 ms·
That is working as intended, and either you don't have a graphics card that is good enough to drive your monitor, or you're using CPU-rendered apps that will al
by md8z 5y ago
That is working as intended, and either you don't have a graphics card that is good enough to drive your monitor, or you're using CPU-rendered apps that will always be slow at higher resolutions. This is a problem with a lot of cheap hardware and older software. It worked for Apple because IIRC they've been porting all the low level drawing over to Metal. GNOME is a lot slower to do that unfortunately, you won't see everything being GPU accelerated until GTK4 becomes widely adopted.
- kuschku 5y agoThat’s not what I, as mostly android/web/qt dev, want though. Why should I get 50% less performance just to fix some tiny single-pixel issues on a screen where I can’t even see individual pixels?
- md8z 5y agoI'm not sure how to answer that question, you don't have to do anything you don't want to do. GTK and its apps currently use integer coordinates, so in order to change that it needs to be changed to use floating point, and all the apps need to be changed to use it too. This is an API break and another thing that will take a long time to plumb through the whole stack and I doubt it will happen until at least GTK5. Maybe use KDE or Windows until then? Or get different hardware? Edit: comment from a GTK developer here that goes more into detail: https://gitlab.gnome.org/GNOME/mutter/-/issues/478#note_793963 https://gitlab.gnome.org/GNOME/mutter/-/issues/478#note_7939... I guess if you want to know why should things be this way, you could say it's because of technical limitations? Though that may not be a satisfying answer to you.
- kuschku 5y agoGTK2 used float coordinates and supported fractional rendering. GTK3 breaking that is a bug, not a feature. Especially text should NEVER be scaled after rendering. And re: performance, that’s great that you’ve got hardware that can run 3D in-browser shader sites or games at 6K resolution at 60fps just fine, mine can’t. If it were running at 4K, as it’s supposed to, I’d get significantly more fps. Especially at a time where GPUs are rare and Gnome still decides I should get 50% more performance just so they save some work.
- md8z 5y agoI think you might be thinking of Cairo when used with one of the print backends, not GTK. GTK2 did not use float coordinates or support fractional rendering. See for example here: https://developer-old.gnome.org/gtk2/2.24/GtkWidget.html#gtk-widget-set-size-request https://developer-old.gnome.org/gtk2/2.24/GtkWidget.html#gtk... https://developer-old.gnome.org/gtk2/2.24/GtkWidget.html#gtk-widget-queue-draw-area https://developer-old.gnome.org/gtk2/2.24/GtkWidget.html#gtk... Those would need to be floats if you wanted to have a non-integer scale. Changing everything to use float coordinates is a large undertaking that touches the whole stack and will require a lot of work. It still hasn't been done yet as of GTK4. If you'd like to spend your time helping out then please do so. Please refer to the gitlab comment above for a description of some of the technical issues that you would have to solve. But it may be more cost effective for you to just get some new hardware with a better GPU, or use something else.
- vetinari 5y agoIt is not 50% less performance; on hardware from the last 10+ years, it should not be noticeable. Neither in performance, nor in energy. If anything, it should be more performant and less buggy, becuase instead of complicating the software, you solve the problem with dedicated circuitry, that is already part of the output encoder anyway.
- kuschku 5y agoNot noticeable is interesting. What hardware from the past 10 years are you using that rendering 3D games in browser or shader websites at 6K vs 4K resolution makes no difference? I’m already struggling to get enough fps at 4K, with Gnome rendering it at 6K and downscaling to 4K my performance is even worse. That’s using an RX 5700XT, a GPU that in the current absurd market retails over $1000. And as Gnome ensured that neither GTK nor Wayland expose any non-integer scale factors, or support it, browsers on linux have no way to render at native resolutions and handle scaling themselves, which would improve my performance situation significantly.
- vetinari 5y agoIf you have games, run them fullscreen. Fullscreen surfaces will get removed from composited desktop, scaled independently and can run at arbitrary resolutions.
- kuschku 5y agoHow do I run https://www.shadertoy.com/ https://www.shadertoy.com/ in native fullscreen? How do I actually multitask while doing that? At 1.5x even my Ryzen 9 3900X and RX 5700XT are stuttering to show many shadertoy examples at 4K, where the performance at 1x is more than acceptable. Simply: Gnome (and Wayland) is broken, and this API must be changed. EDIT: For https://www.shadertoy.com/view/ss3SD8 https://www.shadertoy.com/view/ss3SD8 the difference on my laptop for example is 1280x720 at 1.4fps (1.25x scale) or 850x450 at 17fps (1.0x scale). That’s a massive difference, and enough to be the difference between usable and unusable.
- vetinari 5y agoThe Metal (Apple) or OpenGL/Vulkan (Gtk) renderers are not that important for apps that were fine with software rendering for years. The final composition of framebuffer is being done with hw anyway (for most cases, unless you have a really old hardware with non-working opengl 3 or so). The downscaling, when done properly, is being done with output encoder, not with GPU. It should be transparent for anything graphic card, that came with DP or HDMI port. Maybe except original rpi.
- md8z 5y agoIn my experience it becomes an issue if you do something like maximize the window on a 4K screen, GTK3 has noticeable slowdown there whereas GTK4 is faster.