Severe performance regression with gtk3 on Windows
Bug #1723247 reported by
Patrick Storz
This bug affects 3 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Inkscape |
Confirmed
|
High
|
Unassigned |
Bug Description
Unfortunately drawing performance of gtk3 builds of Inkscape (master) is significantly worse when compared to performance of gtk2 builds (0.92.x).
Current master is basically unusable for productive work, especially for large window sizes (e.g. 2560x1440) where even moving a rectangle results in extremely delayed redraws or no redraws at all.
This needs to be fixed before 0.93 in one way or another (more below).
To post a comment you must log in.
A big hit in performance seems to be a major performance regression in gtk3 which is occuring when disabling client side decorations (CSD), see upstream bug [1].
Client side decorations are basically window decorations (borders, title bar) and gtk3 introduced the possibility to draw UI elements into these areas (which Inkscape does not use, though). This feature requires GTK to draw these parts itself instead of off-loading this work to the OSs window manager.
CSD therefore results in the window looking non-native on Windows (it's using the default Adwaita theme - even for borders - as there is no system theme like in other OSs). Even worse, CSD breaks most functionality of the window manager (like aero snap and related features). See [2] for the upstream request to disable CSD on Windows by default and bugs linked from there for details.
MSYS2 already decided to go ahead and disable CSD by default [3].
By enabling CSD again (e.g. by setting the environment variable GTK_CSD=1) performance of Inkscape increases significantly (not to the level of gtk2 builds, though), so this could be a workaround in the worst case scenario (gtk3 - as so often for win32 related issues - doesn't give a sh*t and ignores this issue and we can not figure something out ourselves).
I'm pretty sure we'll get a lot of heat when shipping Inkscape without native window decorations and with crippled functionality, though, and to be honest I feel users would be completely right to give us heat if we choose this crappy solution...
[1] https:/ /bugzilla. gnome.org/ show_bug. cgi?id= 781153 /bugzilla. gnome.org/ show_bug. cgi?id= 778791 /github. com/Alexpux/ MINGW-packages/ pull/2981
[2] https:/
[3] https:/