Tại sao video xé một vấn đề như vậy trong Linux?


101

Tôi đã sử dụng nhiều biến thể của Linux (chủ yếu là các dẫn xuất Debian) trong hơn một thập kỷ nay. Một vấn đề mà tôi chưa thấy giải quyết thỏa đáng là vấn đề xé ngang hoặc Vsync không được thực hiện đúng.

Tôi nói điều này bởi vì tôi đã sử dụng 5 bản phân phối khác nhau trên 4 máy tính khác nhau với nhiều màn hình khác nhau và card đồ họa Nvidia / AMD / ATI / Intel; mỗi lần, có một vấn đề với việc xé video với chuyển động thậm chí nhẹ.

Đây là một vấn đề lớn, đặc biệt là vì ngay cả Windows XP cũng không có những vấn đề này trên phần cứng hiện đại. Nếu bất cứ ai sẽ sử dụng Linux cho bất cứ điều gì, tại sao họ muốn các khiếm khuyết liên tục xuất hiện khi làm bất cứ điều gì không phải CLI?

Tôi đoán rằng một vài nhà phát triển biết về vấn đề này hoặc đủ quan tâm để khắc phục nó. Tôi đã thử chỉ về mọi nhà soạn nhạc ngoài kia, và thường thì điều tốt nhất họ có thể làm là giảm thiểu vấn đề nhưng không loại bỏ nó. Không nên đơn giản như đồng bộ hóa với tốc độ làm mới màn hình? Có một số chính trị trong cộng đồng OSS ngăn cản bất cứ ai cam kết mã sửa lỗi này?

Mỗi lần tôi yêu cầu giúp đỡ về vấn đề này trong quá khứ, nó sẽ được coi là một trường hợp cạnh tranh (điều mà tôi cảm thấy khó tin khi được đưa ra số lần tôi đã sao chép vấn đề) hoặc tôi nhận được các giải pháp tiềm năng tối đa hóa sự xé rách.


2
Bạn không đề cập đến DE mà bạn sử dụng. KDE đã ổn với việc xé rách trong một năm nay.
Sparhawk 4/2/2015

1
Làm thế nào người ta có thể dễ dàng tái tạo vấn đề? Trong máy tính Debian / Ubuntu / Mint?
Xen2050

50
XKCD này dường như rất phù hợp ở đây ...
Angew

Kinh nghiệm của tôi với nước mắt đã hoàn toàn khác nhau. Tôi rất vui khi chơi game và xem phim trên Linux. Steam đã thực sự biến Linux thành một nền tảng khả thi cho các trò chơi tuyệt vời. Gần đây tôi đã chơi Witcher 2 và Talos Nguyên tắc, và tôi đã không thấy bất kỳ giọt nước mắt nào trong 50 giờ chơi trò chơi. Đây là với thẻ Nvidia với trình điều khiển độc quyền trên Arch. Tôi đồng ý với Xen2050 rằng câu hỏi này sẽ hữu ích hơn nếu thông số kỹ thuật chính xác được đưa ra cho các bản dựng của bạn. Tôi không phủ nhận có một vấn đề, tôi vừa có trải nghiệm rất tốt.
mê cung

Với việc tổng hợp Nvidia đã giải quyết được vấn đề cho tôi, khi tôi sử dụng Nvidia trở lại vào năm 2007. Mặc dù không ở chế độ toàn màn hình vì các cửa sổ toàn màn hình tắt bộ tổng hợp, tôi cho rằng bạn sẽ chạy một trò chơi OpenGL tôi nghĩ. Với Intel, bạn đã thử cài đặt Mục "Thiết bị" Tùy chọn "TearFree" "true" trong X chưa? Nó tăng gấp đôi sử dụng RAM video nhưng tôi nghĩ nó sẽ hoạt động.
Zan Lynx

Câu trả lời:


92

Tất cả là do máy chủ X đã lỗi thời, không phù hợp với phần cứng đồ họa ngày nay và về cơ bản, tất cả các giao tiếp thẻ video trực tiếp được thực hiện như một phần mở rộng ("bản vá") trên lõi cồng kềnh cổ xưa. Máy chủ X không cung cấp phương tiện đồng bộ hóa tích hợp giữa người dùng kết xuất cửa sổ và màn hình hiển thị cửa sổ, do đó nội dung thay đổi ở giữa kết xuất. Đây là một trong những vấn đề nổi tiếng của máy chủ X (nó có rất nhiều, toàn bộ mô hình của những gì máy chủ làm và đã lỗi thời - xử lý sự kiện trong luồng gió, siêu dữ liệu về cửa sổ, sơ đồ đồ họa để vẽ trực tiếp ...). Bộ công cụ widget hầu hết muốn che đậy tất cả những điều này, nhưng việc xé rách vẫn là một vấn đề vì không có cơ chế để xử lý việc đó. Các vấn đề khác phát sinh khi bạn có nhiều thẻ yêu cầu trình điều khiển khác nhau,

Wayland, một phần không nhiệt tình cố gắng thay thế X, hỗ trợ đồng bộ hóa đồng bộ hóa phạm vi trong lõi của nó và được quảng cáo là có mọi khung hình hoàn hảo chính xác.

Nếu bạn nhanh chóng google "xé video wayland", bạn sẽ tìm thấy thêm thông tin về mọi thứ.


38
+1đối với vấn đề này, hãy xem Wayland. nghiêm trọng, đó là câu trả lời đúng.
HalosGhost

2
@HalosGhost truyền giáo cách mạng trên đường đi :) vẫn không hỗ trợ phiên mạng?
kagali-san 4/2/2015

3
@ kagali-san Tôi không nói Wayland là hoàn hảo (không phải vậy). Nhưng nó chắc chắn tốt hơn X. :)
HalosGhost 4/2/2015

8
@ kagali-san: Weston đã có chương trình phụ trợ RDP được sáp nhập chỉ một năm trước, nếu bạn thấy rằng bằng cách nào đó có liên quan đến câu hỏi về việc xé video.
grawity

3
@orion: và cảm ơn bạn, chính trang này hiện là kết quả số 1 cho wayland video tearing: P
Tobia Tesan

16

Xé màn hình xuất hiện chủ yếu vì hai lý do - trình điều khiển chưa có và thiếu vsync với một số trình quản lý cửa sổ nhất định.

Đối với trình điều khiển, cả trình điều khiển miễn phí và độc quyền đều hỗ trợ kết hợp xé miễn phí (cả nvidia và amd). Xin lưu ý rằng, ví dụ: bật máy tính để bàn không có nước mắt trong chất xúc tác ( fglrx) có thể gây ra sụt khung và trễ, do đó, nó thường bị tắt theo mặc định. Đối với trình điều khiển mở, vsync nên được bật theo mặc định. Vì vậy, vấn đề rách màn hình có thể được giải quyết bằng cách thử các trình điều khiển khác nhau và định cấu hình chúng.

Đối với các nhà quản lý cửa sổ, người ta biết rằng Openbox, Awesome và các công cụ nhẹ khác không hỗ trợ miễn phí. XFCE (xfwm, cụ thể) đã sửa nó trong các bản phát hành gần đây, 4.11 / 12 hiện có Vsync. Các môi trường máy tính để bàn chính cũng không có vấn đề gì với việc xé, bao gồm Gnome, KDE, Unity và Cinnamon.

Nếu bạn vẫn gặp phải hiện tượng rách màn hình, tùy chọn của bạn là thử một trình quản lý tổng hợp khác như Compton hoặc Kwin. Kwin là người quản lý cửa sổ cho KDE và tôi có kinh nghiệm sử dụng kwin trong XFCE khi nó không hỗ trợ vsync và nó hoạt động rất tốt.

Vì vậy, giải pháp ở đây là thử nghiệm, những gì bị hỏng trong một kết hợp trình điều khiển / wm có thể hoạt động trong một kết hợp khác. Tôi tin rằng tình hình sẽ sớm được cải thiện vì các trình điều khiển nguồn mở đang trở nên tiên tiến hơn và chuyển sang sử dụng wayland có thể thoát khỏi các vấn đề cũ với Xorg.


5
Không hẳn vậy. KDE (với Kwin hoặc nhà soạn nhạc khác) vẫn rơi nước mắt như địa ngục với NVidia hoặc Intel.
Ivan

1
Openbox, vv làm việc không có nước mắt - bạn chỉ cần chạy một bộ tổng hợp riêng, ví dụ compton hoạt động tuyệt vời.
wingedsubmariner

1
@wingedsubmariner, khi các bạn nhắc đến openbox, bạn cũng có nghĩa là fluxbox phải không?
NASS

Ngoài ra, cực kỳ hữu ích khi bạn lưu ý trạng thái của WM trong các môi trường cửa sổ khác nhau.
NASS

@nass Hoàn toàn đúng. Trình quản lý cửa sổ không bao giờ là một yếu tố hạn chế.
wingbedubmariner

14

Nếu bạn đang sử dụng trình điều khiển nvidia> = 365.20, thì hãy thử bật tùy chọn "Buộc toàn bộ thành phần đường ống" nvidia-settings.

nhập mô tả hình ảnh ở đây


nVidia Quadro trên Lenovo W520, Fedora 25 và điều này đã hoạt động :)
Jerther

4
ngoài ra nếu bạn không có tùy chọn như vậy, nhấp vào "cài đặt nâng cao" ở dưới cùng của cửa sổ và nó sẽ hiển thị. tại sao "đường dẫn thành phần đầy đủ" này không được bật theo mặc định? ..
Rast

1
@Rast Bởi vì nó từng có một số vấn đề về hiệu suất.
Ruslan

BTW, có vẻ như ít nhất các trình điều khiển Intel cũng có một TearFreetùy chọn bạn có thể đưa vào phần tương ứng Device. Tôi vừa mới thử nó và nó cho kết quả rất giống với Đường ống thành phần đầy đủ của nvidia.
Ruslan

Tôi dường như không thể có được cài đặt để lưu khi khởi động lại. Tôi đã thử tạo tệp ~ / .xinitrc và đặt "nvidia-settings --load-config-only &. / Etc / X11 / xinit / xinitrc" trong đó nhưng điều đó dường như không hoạt động
FragmentalStew

9

Tôi đã có một giọt nước mắt mạnh mẽ ở đây và bây giờ nó đã được giải quyết.

Sau khi đọc điều này ( giải thích tuyệt vời ) về cách thức hoạt động của máy chủ Xorg, tôi nhận ra rằng máy chủ X vẽ cửa sổ cập nhật trực tiếp vào thẻ nhớ bất cứ lúc nào trừ khi bạn sử dụng trình quản lý cửa sổ kích hoạt kết hợp.

Khi kết hợp được bật, trình quản lý cửa sổ sẽ tập hợp tất cả các thay đổi từ các bộ đệm bộ nhớ cửa sổ khác nhau, tạo một hình ảnh kết quả cho toàn màn hình và đổ nó vào thẻ hiển thị trong một lần chụp.

Hầu hết các bản phân phối hiện đại có một trình quản lý cửa sổ tổng hợp. KWin cho KDE, Mutter cho Gnome, Muffin cho Cinnamon, Marco cho Mate, xfwm cho XFCE, v.v. Tuy nhiên, việc tổng hợp có thể bị vô hiệu hóa để tiết kiệm tài nguyên.

Trong trường hợp của tôi, tổng hợp đã bị vô hiệu hóa trong KDE4. Sau khi kích hoạt, nước mắt đã biến mất. EDIT : Tôi cũng cần thay đổi tùy chọn KWin, chiến lược VSync từ Tự động sang sử dụng lại nội dung màn hình để thoát khỏi việc xé rách như được giải thích trong báo cáo lỗi cụ thể của kwin này .

Các tùy chọn trình điều khiển cũng có thể là một yếu tố. Trong trường hợp của tôi, các tùy chọn mặc định hoạt động tốt. Arch Wiki có tài liệu tuyệt vời về các tùy chọn cho các card màn hình khác nhau như thẻ Intel hoặc thẻ NVIDIA .

Để kiểm tra xem một tùy chọn có được bật trong cấu hình xorg hiện tại của bạn không, bạn có thể kiểm tra nhật ký. Ví dụ: để kiểm tra xem DRI có được bật hay không:

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

1
Trên XFCE (trong Xubfox 16.04), tính năng tổng hợp được bật theo mặc định nhưng đồng bộ hóa với trống dọc thì không . Sử dụng xfwm4-tweaks-settingslệnh để hiển thị ứng dụng tweaker và trên tab Compositor, bạn có thể tìm thấy tùy chọn ở trên. Bật nó lên đã tạo ra một sự khác biệt lớn và có thể được kiểm tra tại đây: vsynctester.com/index.html (bật / tắt tính năng trong khi hiển thị hình động). Nó không hoàn hảo, mặc dù có một số khung bị bỏ lỡ, nhưng tốt hơn nhiều so với khi nó bị tắt.
karatedog

1

Giải pháp là đây: Linux Mint 17.3 MATE hiện đi kèm với Compton .

Chỉ cần đi đến Desktop Settings-> Windows-> Window Managervà chọn Metacity + Compton. Đó là nó.

Tôi có thẻ video AMD và nó hoạt động tốt cho trình điều khiển nguồn mở.

Đối với trình điều khiển AMD độc quyền, khi video HTML5 được tối đa hóa toàn màn hình, bạn có thể thấy màu xanh lam sẽ lấp đầy toàn màn hình. Để khắc phục điều này, hãy tạo và chmod +xtập lệnh bên dưới:

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

Chạy nó bất cứ khi nào bạn khởi động lại hệ thống, nhưng đừng cố thêm nó vào Startup Applications- vì một số lý do có thể làm hỏng khởi động.


0

Trong Peppermint Linux, đi tới Tùy chọn> Trung tâm điều khiển Peppermint, chọn Hiệu ứng màn hình và bật "Bật hiệu ứng máy tính để bàn" và "Đồng bộ hóa bản vẽ sang trống dọc".


0

Tôi đang sử dụng Linux Mint XFCE và vấn đề này đã làm tôi thất vọng khá lâu. Tôi đã tìm ra giải pháp cho máy tính xách tay của mình với card đồ họa tích hợp Intel và nó đã giải quyết được vấn đề rách . Đối với máy tính để bàn của tôi với thẻ NVIDIA mà lừa không thể làm việc. Nhưng tôi vừa tìm ra thủ phạm.

Tôi đã tăng hiệu suất ngay lập tức khi tôi tắt tính năng tổng hợp cửa sổ. Đây là cách bạn có thể làm điều đó:

Chuyển đến Tất cả Cài đặt / Tweaks / Trình quản lý cửa sổ và tắt toàn bộ nội dung đó.

Hãy nhớ rằng đây là bản phân phối cụ thể và của tôi là Mint với XFCE và tôi không biết làm thế nào để tìm thấy điều tương tự trên các bản phát hành khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.