Skala xrandr 2x2 dla wielu wyświetlaczy (4K HiDPI i miks Full HD) - niewyraźne wyjście


16

Na Kubuntu 17.04 z nouveaupróbuję uzyskać konfigurację z dwoma monitorami z 4K jako główną i Full HD (właściwie 1920x1200, ale nie ma znaczenia) po prawej stronie.

Używam podwójnej skali systemowej KDE (jak opisano w https://wiki.archlinux.org/index.php/HiDPI#Using_KDE_system_settings ) wraz ze xrandrskalowaniem (jak opisano w https://wiki.archlinux.org/index.php / HiDPI # Display_display ). Dokładniej:

xrandr \
    --output eDP-1 --mode 3840x2160 --pos 0x0    --auto \
    --output DP-2  --mode 1920x1200 --pos 3840x0 --auto \
        --panning 3840x2400+3840+0 --scale 2.0x2.0 \
    --fb 7680x2400

Problem polega na tym, że DP-2ma niewielkie rozmycie, szczególnie na czcionkach, z powodu próbkowania w dół z 3840 x 2400 do 1920 x 1200. Jest to zauważone na końcu https://wiki.archlinux.org/index.php/HiDPI#Side_display , przy czym sugerowanym rozwiązaniem jest ustawienie ostrości na monitorze. Próbowałem, nie działa.

Filtr używany podczas skalowania jest dwuliniowy: https://cgit.freedesktop.org/xorg/app/xrandr/tree/xrandr.c?id=5d5db88d106a49d7560a8042fa054df8b609f00a#n2993 . Najbliższy sąsiad również jest obsługiwany, "nearest"ale wygląda fatalnie, mimo że jest to próbkowanie w dół 2x2, czego nie rozumiem. Poszedłem dalej i zbudowałem to z "lanczos"zamiast "bilinear". Najwyraźniej nie jest to obsługiwane:

X Error of failed request:  BadName (named color or font does not exist)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  26 (RRSetCrtcTransform)
  Serial number of failed request:  36
  Current serial number in output stream:  37

Czy istnieje sposób na obsługę lanczos (lub lepszego filtra)? Nie przeszkadza mi filtrowanie w oprogramowaniu.

W tej chwili mam podwójne skalowanie KDE i xrandrskalowanie wyłączone z natywną rozdzielczością 1920x1080 na moim głównym ekranie jako obejście. Drugi ekran jest bardzo ostry, łącznie z czcionkami, zgodnie z oczekiwaniami. Jednak z normalnej odległości oglądania główny wyświetlacz wygląda jeszcze gorzej niż skalowane wtórne, co jest również dziwne, ponieważ połowa rozdzielczości to wciąż Full HD, który wygląda niesamowicie ostro na innych wyświetlaczach, które nie są 4K.

Tak więc prawdziwe pytanie brzmi: czy jest jakiś sposób na uzyskanie ostrych obrazów na obu wyświetlaczach?

Edycja: Zapomniałem wspomnieć o ważnym fakcie, że korzystam z systemu Nvidia PRIME z GeForce 940MX i Intel HD Graphics 620. Na nvidia-384 wyniki są takie same przy użyciu Intela, tj. Te same rozmycia. Podczas korzystania z GeForce --scale 2x2opcja nie działa i --panningopcja generuje Failed Requestbłąd podobny do powyższego.


Może czegoś mi brakuje, ale dlaczego skalujesz wyniki, a następnie przesuwasz? Czy nie powinieneś używać opcji xrandr takich jak --right-oflub --left-of? Myślę, że jeśli ich użyjesz, rozdzielczości nie powinny być skalowane i dlatego nie będą rozmyte. Przepraszam, że skomentowałem, ale nie mam wystarczającej liczby przedstawicieli.
binamenator

Ponieważ monitory są fizycznie podobne pod względem wielkości i bez skalowania w niskiej rozdzielczości, główny ma zbyt małe funkcje (czcionki, okna itp.)
Ayberk Özgür

1
Czy kiedykolwiek coś z tym wymyśliłeś? Myślę, że Wayland w końcu brzmi jak święty graal obsługi wielu DPI, ale wygląda na to, że teraz sterowniki nVidia nie działają dobrze z Waylandem, więc utknąłem albo z rozmytym tekstem, albo z ekranem 4k.
Ibrahim,

Odpowiedzi:


1

Mam także monitor 4k na swoim notebooku. To, co zwykle robię, to po prostu ustawienie trybu 1920 x 1080 dla monitora 4k i wygląda on idealnie, dokładnie tak jak monitor 1080p. Po prostu nie skaluj ani antyialias, musisz znaleźć sposób, aby mieć tylko 2 x 2 piksele.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.