HiDPI + i915 + fractional scaling. Oh je...

Rosendoktor

Well-Known Member
Hallo zusammen,

ich hab' hier ein Lenovo X260 12'' Notebook von dem unerträglichen 1366x768 TN Panel auf ein (auch ab Werk lieferbaren) 1920x1080 IPS Panel umgerüstet. Damit der Desktop brauchbar dargestellt werden kann braucht es dann eine 125% oder 150% Skalierung.

Das funktioniert unter Debian auch wunderbar. Unter FreeBSD aber, na ja, es wäre fast lustig wenn es nicht völlig unbrauchbar wäre...

Jedenfalls läuft der Grafikaufbau unter FreeBSD nur bei ganzzahligen Skalierungen wie 100%, 200% einwandfrei. Bei allen anderen Skalierungen läuft der Desktop in etwa so, wie anno dazumal ein Remote Desktop über 56K Modem... Komplett unbedienbar. Man kann beim zeilenweisen Aufbau der Fenster zugucken und die Pixelzeilen fast mitzählen. :ugly:

Irgendwas läuft da komplett schief. Mit Hilfe anderer Rechner konnte ich das Problem wohl auf den Intel Grafiktreiber eingrenzen, denn auf einem PC mit Nvidia GT 1030 und einem Lenovo P50 Notebook mit Intel/Nvidia Hybridgrafik funktioniert alles bestens, solange auf dem Notebook die Nvidia aktiv ist. Mit Intel funktioniert es weder auf dem P50 noch auf dem X260.

Hat jemand so eine Konfiguration? Also Intel Grafik und fractional scaling? Kann ich da noch irgendwas einstellen oder ist das ein Bug im Intel Grafiktreiber?

Grüße,

Robert
 
Damit der Desktop brauchbar dargestellt werden kann braucht es dann eine 125% oder 150% Skalierung.
Funktioniert denn 1920x1080 auf 60hz/fps mit 100% Skalierung grundlegend sauber? Auch die HW-Beschleunigung (glxgears, youtube 1080p/vollbild) ?

Wie lädtst du den Intel-Treiber und welchen?

Das Panel ist das baugleiche wie 'ab Werk' oder irgendeins, das zufällig passt? :D

Gibt's im BIOS eine Option wie/ob skaliert werden soll? Wenn ja, einfach mal rumspielen. Auch würde ich mal nach dem Setzen deiner Wunschskalierung komplett neu starten. Ggf. mag es der Treiber nicht, wenn live gewechselt wird.

Möglicherweise wäre wayland noch was, aber da habe ich nur Hörensagen aufgeschnappt, daher keine Erfahrung.
 
Wie machst Du denn das scaling? Via xrandr oder ist das eine Einstellung deines DE (Xfce, Gnome, usw.?) Evtl. ist dass dann ein Bug deines DE und nicht des Treibers.
 
Funktioniert denn 1920x1080 auf 60hz/fps mit 100% Skalierung grundlegend sauber? Auch die HW-Beschleunigung (glxgears, youtube 1080p/vollbild) ?
Ja.
Wie lädtst du den Intel-Treiber und welchen?
In der rc..conf, mit kld_list="i915kms ..."
Das Panel ist das baugleiche wie 'ab Werk' oder irgendeins, das zufällig passt? :D
Sollte baugleich sein. Da es so Zeugs sowieso nur noch aus China gibt, ist es halt aus China.
Gibt's im BIOS eine Option wie/ob skaliert werden soll? Wenn ja, einfach mal rumspielen. Auch würde ich mal nach dem Setzen deiner Wunschskalierung komplett neu starten. Ggf. mag es der Treiber nicht, wenn live gewechselt wird.
Im BIOS gibt's beim X260 nichts einzustellen dazu. Beim P50 kann man Hybrid oder Nvidia auswählen.
Möglicherweise wäre wayland noch was, aber da habe ich nur Hörensagen aufgeschnappt, daher keine Erfahrung.
Kein GNOME/KDE, kein Wayland...
 
Wie machst Du denn das scaling? Via xrandr oder ist das eine Einstellung deines DE (Xfce, Gnome, usw.?) Evtl. ist dass dann ein Bug deines DE und nicht des Treibers.
Sowohl als auch. Der Cinnamon Desktop bietet eine Einstellung an, xrandr im Terminal hab' ich auch probiert. Das Ergebnis ist immer dasselbe: Es geht mit Nvidia Chip, es geht nicht mit Intel Chip.

Hab auch verschiedene Auflösungen und Refresh Rates durchprobiert. Leider immer das gleiche Problem bei 125%, 150% und 175%. Nur 100% und 200% funktionieren.

Momentan läuft das X260 unter FreeBSD mit 1600x900, 100%, das ist aber unbefriedigend und sieht nicht optimal aus.

Vielleicht kann das jemand mit Intel Grafik und einem HiDPI Monitor einfach mal kurz ausprobieren (xrandr --output=<DISPLAY> --scale=<KRUMM>)? So 'ne Bestätigung täte mal gut. :D
 
Momentan läuft das X260 unter FreeBSD mit 1600x900, 100%, das ist aber unbefriedigend und sieht nicht optimal aus.
vielleicht wäre ein möglicher Ausweg, die Einstellung des Fenstermanagers zu ändern? Breitere Ränder, größere Fenster und Schriften sowie Icons haben ja fast den gleichen Effekt, wie eine Skalierung, vielleicht sogar besser, weil schärfer.
 
Fractional scaling mit Xorg ist doch eh Mist. Wie schon erwähnt, würde ich entweder auf Wayland wechseln oder durch Tuning des Desktops (Schriftarten..) eine Pseudoskalierung machen.
 
Weil X11 kein Verständnis von Skalierung hat. Das Protokoll, der Displayserver und die Clients gehen davon aus, dass alle am Screen beteiligten Ausgabegeräte die gleichen DPI haben. Selbst, dass es überhaupt DPI gibt und man nicht einfach 72 DPI als Standard annehmen kann, ist in X11 Zeitskalen eine eher neue Errungenschaft. Die dann auch nur mit moderneren Anwendungen funktioniert. Was einige Composite Manager (inzwischen oft in den Window Manager integriert) und der xorg-server über xrandr -scale selbst anbieten, ist böse reingefrickeltes Resamspling des fertig gerenderten Bilds. Mit allen Nachteilen, wie z.B. zerstörter Pixellokalität.
 
Danke, leuchtet ein. Wär mir aber egal, es läuft ja mit Linux und/oder Nvidia Grafik und funktioniert für mich als Anwender augenscheinlich wie es soll (auch 3D Spiele, hier Minecraft), nur mit FreeBSD und Intel Grafik eben nicht. Und auf Wayland zu warten hab ich als GNOME/KDE Nichtfreund so ziemlich aufgegeben...

Aber: Kann es sein, dass genau dieses "Resampling" das entscheidende Problem ist? Wenn ich die Prozessliste offen lasse, dann sieht man, dass Xorg bei jeder Mausbewegung und bei jedem Refresh der Prozessliste sekundenlang auf 100% läuft, bei normaler Bedienung (soweit möglich) dauerhaft auf 100%. Dazu passt die Beobachtung, dass LightDM im Anmeldefenster für die Anzeige der Hintergrundgrafiken der Benutzer beim Durchgehen der Benutzerliste die Bilder zum Teil mit einer bis mehreren Sekunden Verzögerung anzeigt, die müssen auch skaliert werden (unabhängig von HiDPI).

Sieht mir danach aus, dass das Resampling in der Kombination FreeBSD/Intel in der CPU läuft, anstatt in der GPU. Kann das sein? Wenn ja, warum?
 
Zuletzt bearbeitet:
Okay, Problem gelöst:

Code:
Section "Device"
        Identifier  "Card0"
        Driver "intel"
        Option "DRI" "3"
        Option "AccelMethod" "SNA"
        Option "TearFree" "true"
EndSection

Eine der drei Option Zeilen hat es gefixt. Hab' grad keine Lust auszuprobieren, welche es genau ist.

Grüße,

Robert
 
Zurück
Oben