Cygwin/X with Win10 display scaling corrupting font display of typed characters - Issue identified
Ken Whitesell
KenWhitesell@comcast.net
Thu Jan 20 01:01:16 GMT 2022
On 1/19/2022 2:28 PM, Jon Turney wrote:
> On 19/01/2022 00:02, Ken Whitesell wrote:
>> On 1/17/2022 1:29 PM, Ken Whitesell wrote:
>>>
>>> Is there a known solution for this? (Or is it known that there is no
>>> solution?)
>
> Thanks for reporting this.
>
>>> Any guidance, pointers, suggestions of avenues for further research,
>>> or other information, will all be greatly appreciated.
>>>
>> After more research and experimentation, it appears to be related to
>> one of xorg-server, xorg-server-common, or xorg-server-xorg.
>>
>> Installing the older version 1.20.12-1 of these packages allows the
>> windows to be moved between monitors without any issues. Upgrading to
>> the current version 21.1.3-1 creates the problems. I'm able to
>> replicate this behavior on two different laptops with two different
>> external monitors.
>
> It seems likely that this is an unintended effect of changes in
> xorg-server 21.1.0-1, trying to fix problems in this area (See [1])
Thanks for the references. I've read all the messages in the thread - I
was particularly intrigued by this comment:
wrt the font scaling issue, looking at the source, it seems that we
don't re-consider the display dpi after a WM_DISPLAYCHANGE message, but
keep on using the value determined at startup. This is probably a bug.
I'm curious enough to want to take a look at the code, but I've got no
belief that I'm going to be able to find an answer. (I'm *not* a C++
programmer. I can read it and write a little of it, but that's about
it.) I was going to start by comparing the last known-working version to
the first known-non-working version, but given that it's a major release
change, that's not likely going to be a useful approach. (I'm way out of
my league here. It's probably going to take me a long time just to get
to the point where I can even begin to explore this.)
>
> You might find that starting the server and specifying a fixed dpi
> value with the '-dpi' option might workaround this.
>
> [1]
> https://cygwin.com/pipermail/cygwin-announce/2021-November/010286.html
>
I tried three different DPI settings, each one confirmed by verifying
the setting as reported in the XWin.0.log file.
Example: [252575.109] winUpdateDpi - Using fixed 96 DPI
No setting prevented the issue from appearing.
>> If I change the scaling from 125% to 100% on the laptop's display,
>> the problem appears until I restart Cygwin/X. Restarting Cygwin/X
>> shows it displaying properly, until I change the scaling again.
>
> I could only reproduce this problem with mis-rendering when changing
> the scaling on the secondary monitor.
Wow, I did a really poor job of writing that. I'm sorry.
For clarity, just in case you were unable to interpret what I meant by
what I wrote -
At start: Laptop scaling set at 125%, second monitor at 100%.
Mis-rendering occurs at start, on the second monitor only.
If I change the scaling on the laptop, while the current instance of
XWin is running - the same mis-rendering now occurs on the laptop.
Interestingly enough, if I change the laptop from 125% to 100%, the tops
are clipped as previously reported. But if I change the scaling from
125% to 150%, then the bottoms are clipped. (It kinda makes sense from
what you've written.)
If I then stop and restart XWin after having reset the scaling such that
both monitors have the same setting, then the problem doesn't appear.
More information about the Cygwin
mailing list