Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
sddm is super tiny with external screen since 0.14 #692
Comments
|
Same behaviour with my laptop. |
|
I think it is related with this commit 1af96a0 It enables Qt::AA_EnableHighDpiScaling. https://doc-snapshots.qt.io/qt5-5.6/qtlabscontrols-highdpi.html |
ynsta
referenced this issue
Sep 15, 2016
Closed
sddm black screen on tv screen with AA_EnableHighDpiScaling #699
|
Yeah that's related to hidpi, apparently it's not always handled correctly on Xorg :-/ |
plfiorini
added
bug
high-dpi
labels
Sep 15, 2016
plfiorini
added this to the 0.15 milestone
Sep 15, 2016
plfiorini
self-assigned this
Sep 15, 2016
plfiorini
added
the
upstream
label
Sep 15, 2016
|
@darkbasic if you want to build a patched version of sddm to disable hi-dpi in sddm.conf for archlinux. Here is my abs tree with modified PKGBUILD abs.zip |
darkbasic
commented
Sep 15, 2016
•
|
Thanks, I will also have to patch my systemd unit file because I want EnableHiDPI in sddm.conf to be set while my external monitors are not attached (my laptop's main screen is hidpi), while I want it disabled while the external screens are connected. Running something like this just before sddm should do the trick: xrandr -q | grep -v eDP1 | egrep "DP1 connected|DP1-1 connected|DP1-8 connected|HDMI1 connected|DP-1 connected" if [ $? -eq 0 ]; then |
|
@darkbasic it might be easier to not enable it in sddm and use the QT_AUTO_SCREEN_SCALE_FACTOR=1 environment variable when you want it. |
darkbasic
commented
Sep 16, 2016
|
Badly broken too: https://bugreports.qt.io/browse/QTBUG-52202 |
|
Yes but this environment flags set the same things as enabling the Qt::AA_EnableHighDpiScaling attribute. It seams to work on some setups and not on other that is why I made a patch to disable the activation of this attribute. |
|
A sizable amount of monitors have completely broken EDID information, which is what Qt uses as a base. There's a whole line of Samsung monitors that mix up inches and cm, others mix up mm and cm - and some just blatantly lie. In Plasma we turn off auto for this reason. I was a bit curious to see how SDDM would fare, where it's not as critical if this one screen is off. Given we can't physically fix monitors ideally we need robust checking in Qt, but maybe we can do something in SDDM. Like on startup we check screen.height < 2000, turn off scaling. Will prevent the super tiny cases. Won't stop SDDM being super massive though. |
|
@davidedmundson scaling involves device pixel ratio, each screen has a different device pixel ratio thus we should rather force devicePixelRatio to 1.0 if resolution has height < 2000 but we can't do that from SDDM without help from QPA. |
|
We can also add an option to change DPI see #672 (or maybe physical size assuming it's possible) |
|
With Nvidia driver it is possible to dump the screen EDID, patch it and configure nvidia driver to use the one in the file instead of the one within the I2C eeprom of the screen. I don't know if it is possible with other GPU. For patching The EDID directly in the screen you have to write the value to I2C. You might also have to make a physical modification (write protect pin of the I2C EEPROM connected to GND instead of VCC) if the screen's manufacturer used WP. I also used in the past a modified DVI cable where the I2C bus was connected to an external I2C EEPROM instead of the one in the screen, to fake the id of the screen. |
darkbasic
commented
Sep 17, 2016
|
The one million dollar question is: how does Windows correctly handle this? |
obma
referenced this issue
Oct 9, 2016
Open
overlaying sddm on multiple screen setup with differing resolutions #719
darkbasic
commented
Oct 27, 2016
|
I just noticed that Gnome on Fedora 25 beta correctly handles everything, on Wayland I even get per-output scaling when mixing standard and hidpi monitors. Why can't QT correctly handle this like GTK3 does? |
darkbasic
commented
Oct 27, 2016
•
|
@ynsta @davidedmundson I dumped my monitors' EDID. This is my laptop's 3200x1800 13" HiDPI monitor: https://bpaste.net/show/0e34f12832d9 Both show Horizontal Display Size and Vertical Display Size in mm and the size information is correct. You can check it with http://www.edidreader.com/ So what's wrong with QT regarding EDID parsing? The EDID seems fine and it works in Gnome. |
|
Hello, I think you should fill a bug repport to Qt project with your edid files. On Thu, Oct 27, 2016 at 10:28 PM, Niccolò Belli notifications@github.com
|
darkbasic
commented
Nov 2, 2016
|
Isn't this enough? https://bugreports.qt.io/browse/QTBUG-52202 |
|
Well, what Qt does on X11 is basically qRound(yourDpi/96) - which means you're getting 2x scaling even when you have just a DPI of 144. There's no centralized way how to set this except the QT_SCREEN_SCALE_FACTORS environment variable that applies only to Qt 5.6+ applications. It of course doesn't scale for coming and going monitors etc. @darkbasic I think I win the million dollar question: they just guess the scaling but let you set whatever you want yourself, per-monitor, in steps of 0.25. Works pretty good if you ask me. |
darkbasic
commented
Nov 3, 2016
•
|
Are they crazy? No one wants a real 96 dpi scaling, even a 1280x720 13.3" monitor is 110 dpi: 96 dpi is 1024x768 on 13.3", which nobody wants. Personally I would like to target 1600x900 on 13.3" which is 138 dpi. Also if you don't offer decimal scaling you should NEVER round up, on the contrary you should always round down (especially if you target such a nonsense like 96 dpi). |
exophoric
commented
Jul 15, 2017
|
Setting X11 "ServerArgument=-nolisten tcp -dpi 333" in /etc/sddm.conf did the trick for me. (This DPI value is valid for my UHD 13.3in display) Although convenient when using the integrated HiDPI display on my laptop, I don't think that this will solve issues with multiple monitors / multiple DPI setups. I guess results may vary next time I hook up this laptop to a HD projector or external display. |
darkbasic
commented
Jul 19, 2017
•
|
By the way I noticed that using xf86-video-intel I get super tiny characters on my low-dpi external monitor, while it works flawlessly with modesetting. |
mexico66
commented
Aug 6, 2017
|
Will this error be corrected in next release? And when will be available? Thanks. |
bigunyak
referenced this issue
Sep 21, 2017
Open
sddm login dialog is super small on my HiDPI laprop display after upgrading to 0.15 #894
akontsevich
commented
Oct 9, 2017
|
I have same issue in 0.15 version (openSUSE Tumbleweed): fonts and dialog are very small if nvidia proprietary driver selected and look ok with noveau. |
raneon
commented
Oct 9, 2017
|
Try SDDM 0.16, you should be able now to activate HiDPI settings in the config file. |
akontsevich
commented
Oct 9, 2017
Will do when it appears in openSUSE. |
bigunyak
commented
Oct 20, 2017
|
Have just installed I wonder why did it get broken in |
raneon
commented
Oct 21, 2017
|
I don't like the scaling as it usually looks blurry and unsharp on my 4k screens. Reading your comment I would recommend to try to really enable scaling with |
darkbasic commentedSep 5, 2016
•
Edited 1 time
-
darkbasic
Sep 5, 2016
Hi, I just upgraded to 0.14 and HiDPI support worked as expected with my Dell XPS 13 QHD+ (3.200x1.800) out of the box. Unfortunately, when I boot with the LID closed and two 2560x1440 25" external monitors attached I get a super tiny sddm instead. I didn't have such a problem with 0.13 and earlier releases. I use my laptop mostly with the external monitors attached so this is quite annoying. Distro is Archlinux.