Re: HiDPI and fractional scaling



On mån, 2014-02-03 at 09:54 +0530, Arun Raghavan wrote:
Hello,
I'm typing this from my Sony Vaio Pro 13. The resolution on this thing
is 1920x1080 on a 13" display, putting it at about 160 dpi, so I don't
get any automatic scaling love.

Without scaling, there is a massive amount of eye strain, and it
really isn't comfortable to use. I can increase text-scaling to 1.1 as
a less-than-perfect workaround, and things are better, but then I plug
in a monitor and everything is too huge on the monitor.

Is there a plan to address this? I can't imagine that this is uncommon
-- a number of laptops in my shortlist before I bought this one were at
about the same size and resolution. I'm happy to help, since this
hobbles my shiny new laptop quite badly.

Fractional scaling at the Gtk+ level like we do on X11 is really hard,
because the things being scaled are generally integers, such as
GdkWindow positions and sizes. Also, the multi-monitor situation wrt
hidpi is essentially unfixable on X11. The recommendation I have for you
right now is to pick the integer scaling factor that fits you best for
icons/borders-widths/etc, and then lower/raise the text-scaling to
compensate. So, e.g. scale=1, text-scale=1.5; or scale=2,
text-scale=0.75. 

However, long-term there is hope. The work I did on adding hidpi scaling
to wayland is at the right layer, as opposed to the hacks we do on X11,
which will allow the multi-monitor case to work right. What happens
there is that each client decides an (integer) rendering scale factor
for their surfaces (based on knowledge of which monitors it shows up on
and the scale factor of them), and then the compositor can properly
scale the window pixmap when rendering to the different monitors.

This still doesn't allow fractional scaling on the gdk window or wayland
surface levels, but it does allow the compository to render to a
fractional downscale, similar to how OSX does fractional scaling. I.e.
the apps render at 2x and the compositor scales by say 0.75 when
rendering to the scanout buffer.




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]