A history about Gtk+, Vulkan and Wayland

A few weeks ago, I was curious to test Gtk+ 4. I know it has some awsome features like OpenGL rendering, major cleanups and other hot stuff, but didn’t have the chance to check it out until then.

I was mostly excited about Vulkan.

I know both of my laptop’s graphic cards support Vulkan. It’s a hybrid Intel Broadwell G2 + NVidia GeForce 920M, although I don’t use the latter because Linux sucks hard with Dual GPU.

Downloaded the latest Gtk+ source, compiled and… nothing. Immediate segmentation fault. Yay! What a great chance to get involved with the next major Gtk+ version development!

So, this happened:

captura-de-tela-de-2017-01-17-09-24-32
The Fishbowl running under Wayland and rendered with Vulkan

May not be as exciting, since there are no new visible features but… damn, it’s Gtk+ being rendered with Vulkan on Wayland. It’s basically the state-of-the-art of toolkit support right now. Even better, the absolute majority of applications will gain this for free once they port to Gtk+ 4 series.

Getting this into an usable state wasn’t easy, but fortunately, Vulkan has an ~amazing~ thing called “Validation Layers” that simplified the tedious debugging process a whole lot (of course, only after making the validation layers work with Gtk+). This work even uncovered a driver bug in the Intel driver, which was quickly fixed by Lionel Landwerlin and Jason Ekstrand (thanks folks!)

Of course, there are many improvements that still must be done. A bright future is lying ahead!


9 responses to “A history about Gtk+, Vulkan and Wayland”

  1. Considering that LibreOffice, Gimp and Inkscape (theres other applications) still using Gtk+ 2 series, don’t you think that it is weird that we now have Gtk+ 4 ?

    1. LibreOffice already uses Gtk+3. GIMP plans to finish the port for the next release. Inkscape in fact already started removing all Gtk+2 code, and next release will be Gtk3-based.

      The whole point of having Gtk+4 is so that Gtk3 is declared stable, and big apps can move to it without the fear of breakage. And by following a faster stable-unstable model, we can avoid acumulating 11 years of deprecation again, just to drop the bomb and left third-party apps drifting alone.

      Why would it be weird?

      1. Didn’t know about declare Gtk3 stable. Any links about this?

        About LIbreOffice, here all Gtk3 apps looks nice on high-res screen but not LibreOffice (using Archlinux).

  2. Btw, it is ok to have GNOME using Gtk4 and all other applications using Gtk3 if the same look and feel.

    Maybe it is not a big issue for most hackers but I really like to have a nice desktop and Gtk2 is ugly for people like me using HiDPI screens.

    1. Of course, and that’s why the designers tried to make the Gtk2 and Gtk3 as close as possible (even though some things were plain impossible to to replicate with Gtk2 style engine).

      You can check the long-term stability promise here: https://blog.gtk.org/2016/09/01/versioning-and-long-term-stability-promise-in-gtk/

  3. Awesome :).

    Is performance any better?

  4. […] GTK4, we have not only GL-based renderers, but Vulkan renderers as well! A few years back, GTK4 received support for Vulkan on Wayland. While developing GNOME To Do (which already uses GTK4), I recently tried the Vulkan renderer, but […]

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.