Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Probably because it's single threaded going through multiple slow compatibility APIs.


Sort of, but it's not the whole story.

They do use cairo for rendering to a CGContext via cairo_quartz_surface_t which has traditionally not been all that great on macOS. Additionally they're dealing with colorspace transforms on more recent macOS along with some bugs in macOS that were causing non-native applications to do considerable damage/redraws.

If/when Inkscape moves to GTK 4, a lot of this will just go away. The new macOS backend (which I wrote) is considerably faster and defaults to using the OpenGL renderer (which I also write a large portion of) but is also considerably faster when using Cairo by removing Quartz/CGContext from the equation and using Pixman directly with IOSurface.

When using OpenGL, however, we have to emulate something like eglSwapBuffersWithDamage() to keep the compositor from over-compositing, but that was done with tessellation just fine.


Thanks for your efforts, I'm really pleasantly surprised to hear there is work to improve the GTK 4 experience on non-Linux platforms.

Does this port support the native macOS window decorations, or are they client-drawn?


Both, but it's up to the application to choose what they want on whichever particular platform they're targeting by using gtk_window_set_decorated().

I have some blog posts from the effort to write the new backends which gives some additional details.

https://blogs.gnome.org/chergert/2022/02/14/modernizing-gtks...

https://blogs.gnome.org/chergert/2020/12/15/gtk-4-got-a-new-...

https://blogs.gnome.org/chergert/2021/02/24/gtk-4-ngl-render...


Isn't openGL deprecated in favour of Metal on macos? I assume the transition to Metal might not be too big though?


Maybe if someone comes along to write one or we get a multi-backend shader compiler so it doesn't explode the number of shaders we have to write and optimize.

But honestly, it doesn't matter. Apple just shipped a new OpenGL for M systems and every major browser is using GL more than ever. It's not going anywhere. And even if it did, we have a Vulkan backend that can target MoltenVK as well as Mesa's Zink already supporting at least OpenGL 4.6 which could also be run on MoltenVK with very little overhead.


But GTK4 text rendering is blurry


Mac's generally have a HiDPI screen so they shouldn't be affected by the issue you're parroting.

That said, I already wrote GLyphy integration for GTK 4 and it may land before 4.8. It can significantly improve font rendering quality by drawing the glyphs on the GPU rather than from CPU drawings uploaded into an atlas which is pixel boundary bound.


It's very unclear to me wether hidpi makes the non-subpixel rendering bearable or wether the rendering would still be better if it exploited subpixel antialiasing on 4K, it's just that the perceived difference is smaller and good enough. I don't know.


All text rendering on recent macos versions is blurry in the same way as GTK4.


two wrongs don't make a right. I'm pretty sure google chrome or firefox rendering are unaffected.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: