“- skala 2x2” di xrandr menyebabkan monitor tidak menampilkan apa pun


11

Saya punya monitor utama eksternal 4k dan saya mencoba menghubungkan monitor eksternal 1680x1050 di sebelah kiri.

Saya sudah mencoba menggunakan:

 xrandr --output HDMI-0 --scale 2x2 --pos 0x0 --fb 7200x2160 --output DP-4 --pos 3360x0

yang sepertinya berfungsi, dan ketika saya melihat apa yang dipikirkan komputer sedang terjadi di nvidia-settings, monitor ini dengan benar menampilkan monitor 3200x2160 di sebelah kiri komputer 4k saya.

Namun pada monitor eksternal saya hanya menunjukkan hitam dengan garis yang berkedip-kedip di atasnya.

Satu-satunya cara saya dapat memperbaikinya adalah dengan mengatur ulang penskalaan kembali ke 1x1 di mana titik mengembalikan gambar (sambil mempertahankan ukuran X-server. Ini berarti hanya ada ruang mati yang harus saya gulir untuk melewati antara monitor saya).

Jadi saya pikir masalahnya secara khusus berkaitan dengan penskalaan 2x2 di xrandr. Saya tidak yakin apa yang harus saya lakukan?

Komputer ini menjalankan 14.04 dan memiliki nvidia GTX960 di dalamnya dengan driver yang disarankan (352.63)

Inilah output xrandr saya:

  Screen 0: minimum 8 x 8, current 7200 x 2160, maximum 16384 x 16384
  DVI-I-0 disconnected (normal left inverted right x axis y axis)
  DVI-I-1 disconnected (normal left inverted right x axis y axis)
  DP-0 disconnected (normal left inverted right x axis y axis)
  DP-1 disconnected (normal left inverted right x axis y axis)
  DP-2 disconnected (normal left inverted right x axis y axis)
  DP-3 disconnected (normal left inverted right x axis y axis)
  HDMI-0 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 474mm x 296mm
     1680x1050      59.9*+   60.0  
     1280x1024      75.0     60.0  
     1280x960       60.0  
     1152x864       75.0  
     1024x768       75.0     70.1     60.0  
     800x600        75.0     72.2     60.3     56.2  
     640x480        75.0     72.8     59.9  
  DP-4 connected primary 3840x2160+3360+0 (normal left inverted right x axis y axis) 527mm x 296mm
     3840x2160      60.0*+   30.0  
     2560x1440      60.0  
     2048x1280      60.0  
     1920x1200      59.9  
     1920x1080      60.0     60.0     59.9     50.0     24.0     60.0     50.0  
     1600x1200      60.0  
     1600x900       60.0  
     1280x1024      75.0     60.0  
     1280x720       60.0     59.9     50.0  
     1152x864       75.0  
     1024x768       75.0     60.0  
     800x600        75.0     60.3  
     720x576        50.0     50.1  
     720x480        59.9     60.1  
     640x480        75.0     59.9     59.9  

Saya mengalami masalah yang sama. Tampaknya akan bekerja hingga skala 1,71x1,71. Semua yang lebih besar menyebabkan tampilan yang lebih kecil menjadi kosong
Maciej Wozniak

Sayangnya saya tidak pernah berhasil memperbaikinya. Saya mencoba menjalankan dua monitor, satu dengan scaling dan satu tanpa. Jika Anda hanya mencoba menjalankan 2x scaling maka sangat mudah dengan Cinammon. Saya percaya ada cara untuk membuat Unity melakukannya juga.
m4p85r

Jawaban:


5

Hanya ingin menambahkan bahwa ini adalah sesuatu yang sudah lama saya lawan, dan setiap kali saya menyerah - sampai saya memutuskan untuk mengetahuinya sekali dan untuk semua. Solusi di bawah ini berfungsi untuk saya, semoga berhasil juga untuk Anda.

tl; dr: Konfigurasikan ForceFullCompositionPipeline=On

Latar Belakang

Beberapa dari ini juga dengan harapan memberikan lebih banyak kata kunci jika seseorang dengan masalah yang sama akhirnya mencari solusinya.

Setup saya adalah:

  • ThinkPad P50 dengan layar 4K bawaan pada 3840 × 2160 (utama)
  • Monitor eksternal sebagai tampilan sekunder - Dell U2412M - 1920 × 1200

Saya menggunakan Ubuntu Gnome 16.04 LTS.

Ketika saya mencolokkan monitor melalui kabel HDMI + konverter HDMI-ke-DVI (karena monitor tidak memiliki input HDMI), semuanya terlalu besar. Berbagai artikel online disarankan digunakan xrandruntuk mengonfigurasi --scale 2x2pada tampilan itu, yang membuatnya hampir sepenuhnya hitam, dengan hanya garis tipis yang terlihat di atas.

Saya menabrak pertanyaan ini dan sementara 2x2.001solusi penskalaan memungkinkan monitor untuk benar-benar menampilkan barang-barang, itu juga menambahkan piksel tambahan di bawah layar X yang menghasilkan sedikit bergulir naik / turun ketika kursor mencapai bagian atas / bawah layar.

Setelah banyak Googling, banyak yang menghasilkan masalah dan tidak ada solusi, saya menemukan ini: https://devtalk.nvidia.com/default/topic/891207/-355-11-358-09-viewportin-on-2nd -monitor-results-in-garbled-display-for-values-over-3211x1800

Jadi untuk mengujinya, saya mengkonfigurasi ini menggunakan perintah berikut - anggap xrandrbelum dikonfigurasi dengan scaling.

$ nvidia-settings -q CurrentMetaMode

  Attribute 'CurrentMetaMode' (lilicorp:1.0): id=50, switchable=no, source=RandR :: DPY-4: nvidia-auto-select @3840x2160 +0+0 {ViewPortIn=3840x2160, ViewPortOut=3840x2160+0+0}, DPY-1: nvidia-auto-select @1920x1200 +3840+0 {ViewPortIn=1920x1200, ViewPortOut=1920x1200+0+0}

Ini menampilkan CurrentMetaModenilai dan di sinilah saya menambahkan ForceFullCompositionPipeline=Onopsi untuk kedua tampilan. Perhatikan bahwa DPY-4ini adalah layar laptop bawaan saya, sedangkan DPY-1monitor eksternal.

String aktual yang perlu dikonfigurasi adalah string setelah ::dalam output dari perintah itu.

$ nvidia-settings --assign CurrentMetaMode="DPY-4: nvidia-auto-select @3840x2160 +0+0 {ViewPortIn=3840x2160, ViewPortOut=3840x2160+0+0, ForceFullCompositionPipeline=On}, DPY-1: nvidia-auto-select @1920x1200 +3840+0 {ViewPortIn=1920x1200, ViewPortOut=1920x1200+0+0, ForceFullCompositionPipeline=On}"

Setelah ini, saya berlari:

$ xrandr --output DP-1 --scale=2x2

Akhirnya, resolusi tampilan eksternal baik-baik saja tanpa scrolling atau masalah lainnya.

Perhatikan bahwa setelah menjalankan perintah-perintah itu, CurrentMetaModesedikit berbeda dari apa yang ditugaskan, mungkin karena penskalaan diterapkan:

$ nvidia-settings -q CurrentMetaMode

  Attribute 'CurrentMetaMode' (lilicorp:1.0): id=50, switchable=no, source=RandR :: DPY-4: nvidia-auto-select @3840x2160 +0+0 {ViewPortIn=3840x2160, ViewPortOut=3840x2160+0+0, ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}, DPY-1: nvidia-auto-select @3840x2400 +3840+0 {Transform=(2.000000,0.000000,0.000000,0.000000,2.000000,0.000000,0.000000,0.000000,1.000000), ViewPortIn=3840x2400, ViewPortOut=1920x1200+0+0, ResamplingMethod=Bilinear, ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}

Semoga ini bisa menyelesaikan masalah untuk orang lain juga!


4

Saya memiliki masalah yang persis sama. Saya berhasil mengatasinya --scale 2x2.001. Cukup aneh, --scale 2x1.999atau 2x2.0001tidak berfungsi, jadi pastikan untuk mencoba beberapa angka sekitar 2.


saya punya masalah ini juga ... brute force bekerja untuk mr
juggernauthk108

Apa yang kamu paksa paksa? Nilai 2?
m4p85r

Dan betapa anehnya! Terima kasih untuk kirimannya. Saya akhirnya hanya menyerah. Saya sebenarnya punya komputer kedua yang sekarang terhubung melalui sinergi. Bekerja dengan sangat baik ketika saya kadang-kadang membutuhkan aplikasi windows (komputer kedua menang)
m4p85r

Ini sebenarnya berfungsi. Seseorang harus melaporkan itu ... pokoknya, terima kasih banyak!
Columbo

2

Terima kasih Milos untuk solusi hebat Anda, yang bekerja dengan baik untuk saya!

Saya punya tambahan kecil. Selain menggunakan baris perintah, Anda juga dapat dengan nyaman mengatur ForceFullCompositionPipelinedi UI Nvidia-Settings. Untuk ini, Anda harus pergi ke "X Server Display Configuration", klik "Advanced" dan cukup aktifkan opsi "Force Full Composition Pipeline". Silakan lihat https://imgur.com/a/3jE78 untuk contoh.


PS: Saya menggunakan pengaturan triple-head dengan dua monitor eksternal (1920x1080; 1680x1050) dan monitor 3k internal (3840x2160). Agar ini berfungsi, saya menerapkan xrandr-config berikut:

xrandr --output eDP-1-1 --auto --output HDMI-0 --auto --scale 2x2 --above eDP-1-1 --output DP-1 --auto --scale 2x2 --rotate left --right-of eDP-1-1
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.