drawRect consumes excessive CPU cycles on macOS Big Sur
We are currently working on cleanly packaging the gtk3 version of gtkwave for macOS instead of GTK2 version, which has high DPI scaling issues.
While doing that, we noticed that it works in general, but rendering performance is severly impacted. Profiling reveals that an unusual amount of CPU cycles in spent in drawRect routine of libgdk3.
This also feels somewhat related to the issue reported in GIMP here, but it does not have to be: gimp#5952 (closed)
The GTKWAVE issue is here: https://github.com/gtkwave/gtkwave/issues/43, the related PR to clean up the building on mac is here: https://github.com/gtkwave/gtkwave/pull/44
Steps to reproduce
Use my fork and gtk3-mac branch and follow README.md instructions to build on MacOS: https://github.com/markusdd/gtkwave/tree/gtk3-mac
when launching the application, you will notice the choppiness.
To compare against the blurry GTK2-version, just brew install gtkwave
.
It looks bad, but is more fluent.
I have attached a .fst wave dump which can be loaded so that some waveforms do appear.
dump.fst
to see something append signals from left hand side and append them, then zoom out
Current behavior
zooming in and out of waveforms is choppy, gui feels sluggish overall rendering times for large waveform files is slow.
Expected outcome
GTK3 version of GTKWave runs as smooth as GTK2 version does (or the gtk3 version on linux)
Version information
latest homebrew distributed version gtk+3: stable 3.24.26 (bottled)