Web lists-archives.com

Re: GSoC Project Proposal: Make High-DPI awesome




Hello,

first of all - thanks to all for reading my proposal and your suggestions.

I will apply this patch and test if it improves the situation. But as far as I see now, this only changes the positioning of windows. There seem to be other rendering issues in a variety of applications, mostly in kdegraphics related ones: - gwenview - https://bugs.kde.org/show_bug.cgi?id=373178 - Blurry scaling on HiDPI - okular - https://bugs.kde.org/show_bug.cgi?id=362856 - Wrong render resolution, possibly caused by Plasma 5 "Scale Display" - krita - https://bugs.kde.org/show_bug.cgi?id=360541 - HiDPI option in Qt also scales the canvas widget

But also similar rendering issues exist in konsole, systemsettings and plasma (e.g. on the logout/shutdown and startup screen).

Some of these seem to be caused by QPixmaps with no devicePixelRatio set, resulting in blurred or wrongly scaled images. I don't think there is a Qt- or KDE-wide approach that could simply fix this. Therefore my proposal to look into every problematic application and fix the issues there. I have a partly working patch for gwenview which does this (changes were the mentioned devicePixelRatios and taking those values into account in the paint method).

-- Lukas


On 2017-03-22 08:03, Thiago Macieira wrote:
Em terça-feira, 21 de março de 2017, às 03:51:16 PDT, Stefan Derkits escreveu:
On 2017-03-21 00:34, Lukas Hetzenecker wrote:
> I’m looking also forward to any feedback you have about this proposal.

I would really love to see the results of such a project. As I wrote you
in a personal mail, for me HiDpi works already mostly well,but some
Applications still have problems with it.

I have only one application left with problems and that's krdc: when I tell it to create a display (for example) 640x480, it does that in device-independent pixels, so it actually creates an area 1280x960, which is 4x bigger than the
display it is going to get from the network and embed from vncviewer.

All other applications are working fine now that I submitted this Qt patch:
https://codereview.qt-project.org/188493

Note that fractional scaling is not supported by Qt. You can do 1x or 2x, but
nothing in-between.

E.g. Java FX (starting from Java 9) Applications check the GDK_SCALE
environment variable, which by default isn't set. Also some applications
have in my experience problems if QT_SCREEN_SCALE_FACTORS is set (e.g.
VLC & JetBrains Toolbox)

VirtualBox has the same problem I described for krdc above. I didn't see a
problem with VLC, but I suspect it would be the exact same issue.

I especially like the following parts of your proposal:
* Polishing user interface for HiDPI settings. Extend it, so it allows
  different scale factors for multiple screens. [my external 27" 4K
Monitor could need a smaller scaling factor than my 15" 4K Laptop Screen]

Not supported by Qt. Like I said, you can have 1 or 2, but not fractional. There's a patch for Qt by Morten that enables this, but you'll see plenty of
problems because of rounding errors. So, don't.

Supporting different scaling depending on monitors is possible with X, but not recommended. You're much better off having a single scaling factor for all
monitors. Or switch to Wayland.

* If possible, try to also force other applications to use configured
  settings when starting a KDE workspace (Firefox? Google Chrome? GTK?
  Java?)

Set GDK_SCALE and CLUTTER_SCALE, that's all. I don't know which of those controls Firefox and Chrome, but they are properly scaled up in my system.

I run 3200x1800 in my laptop and 3840x2160 in the external monitor.