Neden video Linux'ta böyle bir problemi çözüyor?


101

On yıldan fazla bir süredir birçok Linux (çoğunlukla Debian türevi) kullandım. Tatminkar bir şekilde çözemediğim bir sorun, yatay yırtılma veya Vsync'in gerektiği gibi uygulanmadığı konusudur.

Bunu söylüyorum, çünkü farklı monitörlerde ve Nvidia / AMD / ATI / Intel grafik kartlarına sahip 4 farklı bilgisayarda 5 farklı dağıtım kullandım; Her zaman, videonun hafif hareketlerle bile yırtılmasıyla ilgili bir sorun yaşandı.

Bu büyük bir sorundur, çünkü Windows XP'nin bile modern donanımda bu sorunları yoktur. Eğer biri herhangi bir şey için Linux kullanacaksa, neden CLI dışı bir şey yaparken sürekli hataların ortaya çıkmasını ister?

Sanırım az sayıda geliştirici bu sorunu biliyor ya da düzeltmek için yeterince özen gösteriyor. Dışarıdaki hemen hemen her besteciyi denedim ve genellikle yapabileceklerinin en iyisi sorunu en aza indirgemek, ortadan kaldırmak değil. Monitörün yenileme hızıyla senkronize etmek kadar basit olmamalı mı? OSS topluluğu arasında kimsenin bunu düzelten bir kod işlemesini engelleyen bir politika var mı?

Geçmişte bu konuda yardım talebinde bulunduğum her seferinde, ya (vakayı çoğalttığım miktarın verildiğine inanmak zor buluyorum) ya da son bir dava gibi ele alınmakta ya da en çok yırtılmayı en aza indirir.


2
Hangi DE'yi kullandığını söylemiyorsun. KDE, bir yıldan fazla bir süredir yırtılma konusunda iyi durumda.
Sparhawk

1
Bir problemi kolayca nasıl çoğaltabilir? Debian / Ubuntu / Mint bilgisayarında mı?
Xen2050

50
Bu XKCD burada çok iyi uyuyor gibi görünüyor ...
Angew

Yırtılma konusundaki deneyimim tamamen farklıydı. Çok mutlu bir oyun oynuyorum ve Linux'ta film izliyorum. Steam, Linux'u gerçekten harika oyunlar için uygun bir platform haline getirdi. Son zamanlarda Witcher 2 ve Talos Principle oynuyorum ve yaklaşık 50 saat boyunca hiçbir oyunda hiç yırtılma görmedim. Bu, Arch'ta tescilli sürücülere sahip bir Nvidia kartıyla. Xen2050 ile, yapımınız için tam özellikler verilmişse, bu sorunun daha yararlı olacağını kabul ediyorum. Bir sorun olduğunu inkar etmiyorum, sadece çok iyi bir deneyim yaşadım.
labirent

Nvidia'nın bir araya gelmesiyle, 2007'de Nvidia'yı kullandığımda benim için problemi çözdü. Tam ekranlı pencereler besteciyi kapattığı için tam ekran değil, sanırım bir OpenGL oyunu çalıştıracağınızı düşünüyor. Intel ile X'te "Aygıt" Seçeneği "TearFree" "true" Bölümünü ayarlamayı denediniz mi? Video RAM kullanımını ikiye katlar ancak işe yarayacağını düşünüyorum.
Zan Lynx,

Yanıtlar:


92

Bütün bunlar, X sunucusunun güncel olduğu, günümüzün grafik donanımı için uygun olmadığı ve temel olarak tüm doğrudan video kartı iletişiminin eski şişirilmiş çekirdeğin bir uzantısı ("yama") olarak yapılması nedeniyledir. X sunucusu, pencereyi görüntüleyen kullanıcı ile pencereyi görüntüleyen ekran arasında yerleşik bir senkronizasyon yolu sağlamaz, böylece içerik görüntü oluşturma ortasında değişir. Bu, X sunucunun bilinen sorunlarından biridir (sunucunun yaptığı ve modası geçmiş olan modelin birçoğuna sahiptir - alt pencerelerde olay işleme, pencerelerle ilgili meta veriler, doğrudan çizim için grafiksel ilkeler ...). Widget araç kitleri çoğunlukla tüm bunları ele almak ister, ancak yırtılma hala bir sorundur çünkü bununla başa çıkacak bir mekanizma yoktur. Farklı sürücüler gerektiren birden fazla kartınız olduğunda ek sorunlar ortaya çıkarsa,

Merakla X yerine değiştirmeye çalışan Wayland, çekirdeğinde bir pedantik vsync senkronizasyonunu destekliyor ve her karenin tam olarak mükemmel olması için ilan ediliyor.

Çabuk google "wayland video yırtılma" google her şey hakkında daha fazla bilgi bulacaksınız.


38
+1“X sorun, Wayland’a bir göz at.” “Ciddi, doğru cevap bu.
HalosGhost

2
@ HalosGhost wayland evangelism halindeyken :) hala herhangi bir ağ oturum desteği?
kagali-san

3
@ kagali-san Ben Wayland mükemmel olduğunu söylemedim (değil). Ama kesinlikle X'ten daha iyidir :)
HalosGhost

8
@ kagali-san: Video yırtılmasıyla ilgili bir soru ile alakalı bulursanız Weston'ın RDP arka tarafı bir yıl önce birleşti.
Grawity

3
@ orion: ve size teşekkürler bu sayfa şu anda 1 sonuç var wayland video tearing: P
Tobia Tesan

16

Ekran yırtılması çoğunlukla iki nedenden ötürü ortaya çıkar - henüz orada bulunmayan sürücüler ve belirli pencere yöneticileriyle vsync eksikliği.

Sürücüler gelince, hem özgür hem de özel sürücüler serbest yırtılma bileşimini (nvidia ve amd) destekler. Örneğin, katalizör ( fglrx) içinde yırtılmaz masaüstünün etkinleştirilmesinin çerçeve düşmesine ve gecikmelere neden olabileceğinin farkında olduğundan , genellikle varsayılan olarak devre dışıdır. Açık sürücü gelince, vsync varsayılan olarak etkin olmalıdır. Bu nedenle ekran yırtma sorunu, farklı sürücüler denenerek ve yapılandırılarak çözülebilir.

Pencere yöneticilerine gelince, Openbox, Awesome ve diğer hafif wms'lerin yırtılmayı desteklemediği bilinmektedir. XFCE (xfwm, spesifik), son sürümlerde düzeltildi, 4.11 / 12 şimdi Vsync'ye sahip. Ana masaüstü ortamlarında GNOME, KDE, Unity ve Tarçın dahil yırtılma problemi yoktur.

Hala ekran yırtılmasıyla karşılaşıyorsanız, seçeneğiniz Compton veya Kwin gibi başka bir kompozisyon yöneticisini denemektir. Kwin, KDE'nin pencere yöneticisi ve Xynce'yi desteklemediği ve gerçekten iyi çalıştığı zaman kwin'i XFCE'de kullanma deneyimim var.

Yani buradaki çözüm deneydir, bir sürücü / wm kombinasyonunda kırılan şey bir başkasında çalışabilir. Açık kaynak kodlu sürücüler daha gelişmiş hale geldiğinden ve wayland'a geçmenin Xorg ile olan eski sorunlardan kurtulabileceğinden durumun kısa sürede iyileşeceğine inanıyorum.


5
Pek sayılmaz. KDE (Kwin veya diğer besteci ile) hala NVidia veya Intel ile cehennem gibi gözyaşları gibi.
Ivan

1
Openbox vb. Yırtılmadan çalışır - ayrı bir besteci çalıştırmanız gerekir, örneğin compton harika çalışır.
wingedsubmariner

1
@ wingedsubmariner, Siz openbox'a bakınca, fluxbox'ı mı kastediyorsunuz?
Nass

ayrıca, farklı pencere ortamlarında WM'in durumunun ne olduğunu not etmeniz son derece yararlıdır.
Nass

@nass Kesinlikle. Pencere yöneticisi asla sınırlayıcı bir faktör değildir.
wingedsubmariner

14

Bir nvidia sürücüsü kullanıyorsanız> = 365.20, ardından "Tam Kompozisyon Boru Hattı Zorla" seçeneğini etkinleştirmeyi deneyin nvidia-settings.

görüntü tanımını buraya girin


Lenovo W520 nVidia Quadro, Fedora 25 ve bu işe yaradı :)
Jerther

4
Ayrıca böyle bir seçeneğiniz yoksa, pencerenin altındaki "gelişmiş ayarlar" ı tıklayın; görünecektir. neden bu "tam bileşim boru hattı" varsayılan olarak etkin değil? ..
Rast

1
@Rast Çünkü bazı performans problemleri vardı.
Ruslan

BTW, görünüşe göre en azından Intel sürücüleri de TearFreeilgili Devicebölüme koyabileceğiniz bir seçeneğe sahip . Sadece denedim ve nvidia'nın Tam Kompozisyon Boru Hattı'na çok benzer sonuçlar veriyor.
Ruslan,

Yeniden başlatmalardan tasarruf etme ayarını elde edemiyorum, bir ~ / .xinitrc dosyası oluşturup "nvidia-settings - load-config-only &. / Etc / X11 / xinit / xinitrc" yazmayı denedim ama bu işe yaramadı
FragmentalStew

9

Burada güçlü bir yırtılma yaşadım ve şimdi çözüldü.

Bir Xorg sunucusunun nasıl çalıştığının bu ( harika açıklamasını ) okuduktan sonra , bir kompozisyon etkin pencere yöneticisi kullanmadığınız sürece, X sunucusunun rasgele bir zamanda pencere güncellemelerini doğrudan hafıza kartına boyadığını fark ettim.

Kompozisyon etkinleştirildiğinde, pencere yöneticisi farklı pencere belleği tamponlarındaki tüm değişiklikleri bir araya getirir, tüm ekran için sonuçta bir görüntü oluşturur ve bunu bir kerede ekran kartına atar.

Modern dağıtımların çoğu birleşik pencere yöneticisine sahiptir. KDE için KWin, Gnome için Mutter, Tarçınlı Kek, Mate için Marco, XFCE için xfwm, vb. Ancak kaynakları korumak için birleştirme engellenebilir.

Benim durumumda KDE4'te birleştirme devre dışı bırakıldı. Etkinleştirildiğinde, yırtılma ortadan kalktı. DÜZENLEME : Ben de gelen KWin seçenekleri VSync stratejisini değiştirmek için gerekli Otomatik için ekran içeriğini Yeniden tıpkı bu açıklandığı yırtılma kurtulmak amacıyla belirli hata raporu Kwin .

Sürücü seçenekleri de bir faktör olabilir. Benim durumumda varsayılan seçenekler iyi çalışıyor. Arch Wiki, Intel veya NVIDIA kartlar gibi farklı ekran kartlarının seçenekleri hakkında harika belgelere sahiptir .

Mevcut xorg yapılandırmanızda bir seçeneğin etkin olup olmadığını kontrol etmek için günlüğü kontrol edebilirsiniz. Örneğin, DRI'nın etkin olup olmadığını kontrol etmek için:

cat /var/log/Xorg.0.log | grep DRI

1
XFCE'de (Xubuntu 16.04'te) kompozisyon varsayılan olarak etkindir, ancak dikey boşla senkronize edilmez . xfwm4-tweaks-settingsTweaker uygulamasını göstermek için komutu kullanın ve Compositor sekmesinde yukarıdaki seçeneği bulabilirsiniz. Açma çok büyük bir fark yarattı ve buradan kontrol edilebilir: vsynctester.com/index.html (animasyonu görüntülerken özelliği açıp kapatın). Mükemmel değil, yine de kaçırılan kareler var, ancak kapatıldığında olduğundan çok daha iyi.
karatedog

1

Çözüm burada: Linux Mint 17.3 MATE şimdi Compton ile birlikte geliyor .

Sadece gidin Desktop Settings-> Windows-> Window Managerve seçin Metacity + Compton. Bu kadar.

AMD ekran kartım var ve açık kaynaklı sürücü kutusundan çıkıyor.

Özel AMD sürücüsü için, HTML5 videolar tam ekran boyutuna çıkarıldığında, tüm ekranı kaplayacak mavi renk görebilirsiniz. Bunu düzeltmek için, chmod +xaşağıdaki komut dosyasını oluşturun :

#!/bin/bash
killall compton 2> /dev/null
compton -b --unredir-if-possible

Sistemi her yeniden Startup Applicationsbaşlattığınızda çalıştırın, ancak eklemeye çalışmayın - herhangi bir nedenden dolayı başlatmayı bozabilir.


0

Peppermint Linux'ta, Tercihler> Nane Kontrol Merkezi'ne gidin, Masaüstü Efektleri'ni seçin ve "Masaüstü efektlerini etkinleştir" i ve "Çizimi dikey boşluk ile senkronize et" i etkinleştirin.


0

Linux Mint XFCE kullanıyorum ve bu problem beni bir süre rahatsız etti. Intel tümleşik grafik kartına sahip dizüstü bilgisayarım için bir çözüm buldum ve yırtılma sorununu çözdüm . NVIDIA kartlı masaüstüm için bu işe yaramaz. Ama ben sadece suçlu buldum.

Pencere birleştirme işlemini devre dışı bıraktığımda hemen bir performans artışı gördüm. Heres bunu nasıl yapabildiğini:

Tüm Ayarlar / Pencere Yöneticisi Tweaks / Compositor'a gidin ve o şeyi devre dışı bırakın.

Bu dağıtımın kendine özgü ve benimkilerin XFCE ile Nane olduğunu ve diğer dağıtımlarda benzer bir şeyi nasıl bulacağımı bilmiyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.