Saya telah menggunakan banyak varian Linux (kebanyakan turunan Debian) selama lebih dari satu dekade sekarang. Satu masalah yang belum saya lihat diselesaikan dengan memuaskan adalah masalah robekan horizontal, atau Vsync tidak diimplementasikan dengan benar.
Saya mengatakan ini karena saya menggunakan 5 distro yang berbeda pada 4 komputer yang berbeda dengan berbagai monitor dan kartu grafis Nvidia / AMD / ATI / Intel; setiap kali, ada masalah dengan robekan video bahkan dengan sedikit gerakan.
Ini adalah masalah besar, terutama karena bahkan Windows XP tidak memiliki masalah ini pada perangkat keras modern. Jika ada yang akan menggunakan Linux untuk apa pun, mengapa mereka ingin cacat konstan muncul ketika melakukan sesuatu yang bukan CLI?
Saya menduga beberapa pengembang tahu tentang masalah ini atau cukup peduli untuk memperbaikinya. Saya sudah mencoba hampir setiap komposer di luar sana, dan biasanya yang terbaik yang bisa mereka lakukan adalah meminimalkan masalah tetapi tidak menghilangkannya. Bukankah seharusnya sesederhana sinkronisasi dengan kecepatan refresh monitor? Apakah ada politik di antara komunitas OSS yang mencegah siapa pun melakukan kode yang memperbaiki ini?
Setiap kali saya meminta bantuan untuk masalah ini di masa lalu, itu akan diperlakukan sebagai kasus tepi (yang menurut saya sulit untuk dipercaya karena diberikan berapa kali saya mereplikasi masalah) atau saya mendapatkan solusi potensial yang paling meminimalkan robeknya.
Jawaban:
Ini semua karena fakta bahwa server X sudah ketinggalan zaman, tidak cocok untuk perangkat keras grafis saat ini dan pada dasarnya semua komunikasi kartu video langsung dilakukan sebagai ekstensi ("patch") di atas inti kuno yang membengkak. Server X tidak menyediakan sarana sinkronisasi antara pengguna yang merender jendela dan layar yang menampilkan jendela, sehingga konten berubah di tengah proses render. Ini adalah salah satu masalah terkenal dari server X (ia memiliki banyak, seluruh model dari apa yang server lakukan dan sudah ketinggalan zaman - penanganan acara di jendela bawah, metadata tentang windows, primitif grafis untuk menggambar langsung ...). Toolkit widget sebagian besar ingin menutupi semua ini, tetapi merobeknya masih menjadi masalah karena tidak ada mekanisme untuk mengatasinya. Masalah tambahan muncul ketika Anda memiliki beberapa kartu yang memerlukan driver berbeda,
Wayland, yang agak tidak antusias mencoba untuk mengganti X, mendukung sinkronisasi vsync yang bertele-tele pada intinya, dan diiklankan untuk membuat setiap frame persis sempurna.
Jika Anda dengan cepat Google "merobek video wayland" Anda akan menemukan informasi lebih lanjut tentang segalanya.
sumber
+1
karena "X adalah masalahnya, lihatlah Wayland." Benar-benar serius, itu jawaban yang benar.wayland video tearing
: PRobek layar sebagian besar muncul karena dua alasan - driver yang belum ada, dan kurangnya vsync dengan manajer jendela tertentu.
Sedangkan untuk driver, baik driver gratis maupun proprietary mendukung compositing dengan sobek-bebas (nvidia dan keduanya). Ketahuilah bahwa mis. Mengaktifkan desktop yang bebas air mata di katalis (
fglrx
) dapat menyebabkan frame drop dan lag, sehingga biasanya dinonaktifkan secara default. Sedangkan untuk driver terbuka, vsync harus diaktifkan secara default. Jadi masalah robeknya layar dapat diselesaikan dengan mencoba driver yang berbeda dan mengonfigurasinya.Sedangkan untuk manajer jendela, diketahui bahwa Openbox, Awesome, dan lainnya yang ringan tidak mendukung air mata. XFCE (xfwm, lebih spesifik) telah memperbaikinya dalam rilis terbaru, 4.11 / 12 sekarang memiliki Vsync. Lingkungan desktop utama juga tidak memiliki masalah dengan sobekan, termasuk GNOME, KDE, Unity dan Cinnamon.
Jika Anda masih mengalami robeknya layar, opsi Anda adalah mencoba manajer pembuat kompos lain seperti Compton atau Kwin. Kwin adalah manajer jendela untuk KDE dan saya memiliki pengalaman menggunakan kwin di XFCE ketika tidak mendukung vsync dan itu bekerja dengan sangat baik.
Jadi solusinya di sini adalah eksperimen, apa yang rusak di satu kombinasi driver / wm dapat bekerja di yang lain. Saya percaya situasi akan membaik segera karena driver open-source menjadi lebih maju dan beralih ke wayland dapat menyingkirkan masalah lama dengan Xorg.
sumber
Jika Anda menggunakan driver nvidia> = 365.20, maka coba aktifkan opsi "Force Full Composition Pipeline" di
nvidia-settings
.sumber
TearFree
opsi yang dapat Anda masukkan ke bagian yang sesuaiDevice
. Saya baru saja mencobanya, dan itu memberikan hasil yang sangat mirip dengan Pipa Komposisi Lengkap nvidia.Saya memiliki sobekan yang kuat di sini dan sekarang sudah terpecahkan.
Setelah membaca ini ( penjelasan yang luar biasa ) tentang cara kerja server Xorg, saya menyadari bahwa server X mengecat pembaruan jendela langsung ke kartu memori kapan saja secara acak kecuali jika Anda menggunakan pengelola jendela berkemampuan gabungan.
Ketika pengomposisian diaktifkan manajer jendela menggabungkan semua perubahan dari buffer memori jendela yang berbeda, membuat gambar yang dihasilkan untuk seluruh layar dan membuangnya ke kartu tampilan pada satu pemotretan.
Sebagian besar distribusi modern memiliki window manager pengomposit. KWin untuk KDE, Mutter untuk Gnome, Muffin untuk Cinnamon, Marco untuk Mate, xfwm untuk XFCE, dll. Namun pengomposisian dapat dinonaktifkan untuk menghemat sumber daya.
Dalam kasus saya, pengomposisian dinonaktifkan di KDE4. Setelah diaktifkan, robeknya hilang. EDIT : Saya juga perlu mengubah opsi KWin strategi VSync dari Otomatis untuk Menggunakan Kembali konten layar untuk menghilangkan robek seperti yang dijelaskan dalam laporan bug spesifik kwin ini .
Opsi driver juga bisa menjadi faktor. Dalam kasus saya, opsi default berfungsi ok. Arch Wiki memiliki dokumentasi hebat tentang opsi untuk kartu tampilan yang berbeda seperti kartu Intel atau kartu NVIDIA .
Untuk memeriksa apakah opsi diaktifkan di konfigurasi xorg Anda saat ini, Anda dapat memeriksa log. Misalnya, untuk memeriksa apakah DRI diaktifkan:
sumber
xfwm4-tweaks-settings
perintah untuk menampilkan aplikasi tweaker dan pada tab Kompositor Anda dapat menemukan opsi di atas. Menyalakannya membuat perbedaan besar, dan dapat diperiksa di sini: vsynctester.com/index.html (nyalakan / matikan fitur saat menampilkan animasi). Ini tidak sempurna, ada beberapa frame yang terlewatkan, tetapi jauh lebih baik daripada saat dimatikan.Solusinya ada di sini: Linux Mint 17.3 MATE kini hadir dengan Compton .
Pergi ke
Desktop Settings
->Windows
->Window Manager
dan pilihMetacity + Compton
. Itu dia.Saya memiliki kartu video AMD dan berfungsi dengan baik untuk driver open source.
Untuk driver AMD yang berpemilik, ketika video HTML5 dimaksimalkan ke layar penuh, Anda mungkin melihat warna biru yang akan memenuhi seluruh layar. Untuk memperbaikinya, buat dan
chmod +x
skrip di bawah ini:Jalankan setiap kali Anda me-restart sistem, tetapi jangan mencoba untuk menambahkannya
Startup Applications
- itu mungkin merusak startup karena beberapa alasan.sumber
Di Peppermint Linux, buka Preferensi> Peppermint Control Center, pilih Desktop Effects dan aktifkan "Enable desktop effects" dan "Synchronize drawing to the vertical blank".
sumber
Saya menggunakan Linux Mint XFCE dan masalah ini membuat saya frustasi cukup lama. Saya menemukan solusi untuk laptop saya dengan kartu grafis terintegrasi Intel dan itu memecahkan masalah robek . Untuk desktop saya dengan kartu NVIDIA trik itu tidak berfungsi. Tapi saya baru saja menemukan pelakunya.
Saya memiliki peningkatan kinerja segera ketika saya telah menonaktifkan komposisi jendela. Inilah cara Anda dapat melakukan itu:
Pergi ke Semua Pengaturan / Manajer Jendela Tweaks / Kompositor dan nonaktifkan semua itu.
Perlu diingat bahwa ini adalah distro khusus dan saya milik Mint dengan XFCE dan saya tidak tahu bagaimana menemukan hal serupa di distro lain.
sumber