Linux에서 비디오 찢어짐이 발생하는 이유는 무엇입니까?

Linux에서 비디오 찢어짐이 발생하는 이유는 무엇입니까?

나는 10년 넘게 많은 Linux 변종(주로 Debian 파생 변종)을 사용해 왔습니다. 만족스럽게 해결되지 않은 한 가지 문제는 수평 찢어짐 문제 또는 수직 동기화가 올바르게 구현되지 않는 문제입니다.

제가 이렇게 말하는 이유는 다양한 모니터와 Nvidia/AMD/ATI/Intel 그래픽 카드가 있는 4개의 다른 컴퓨터에서 5개의 서로 다른 배포판을 사용했기 때문에 약간의 움직임이라도 비디오 끊김 문제가 발생하기 때문입니다.

특히 Windows XP조차도 최신 하드웨어에서는 이러한 문제가 발생하지 않기 때문에 이것은 큰 문제입니다. 누군가 Linux를 어떤 용도로든 사용하려는 경우 CLI가 아닌 다른 작업을 수행할 때 왜 지속적으로 버그가 발생하기를 원합니까?

나는 이 문제를 인지하고 있거나 문제를 해결하는 데 관심을 갖고 있는 개발자가 거의 없다고 생각합니다. 나는 거기에 있는 거의 모든 신디사이저를 시도해 보았고 일반적으로 그들이 할 수 있는 최선은 문제를 제거하는 것보다 최소화하는 것입니다. 모니터 주사율과 동기화하는 것만큼 간단해야 하지 않나요? OSS 커뮤니티에는 누군가가 이 문제를 해결하는 코드를 제출하는 것을 막는 일종의 정치가 있습니까?

과거에는 이 문제에 대해 도움을 요청할 때마다 이 문제가 극단적인 사례로 처리되거나(이 질문을 여러 번 반복한 것을 고려하면 이것이 고려되었을 것이라고 믿기 어렵습니다) 기껏해야 찢어짐을 줄일 수 있는 잠재적인 솔루션이 제공되었습니다.

답변1

이는 모두 X 서버가 오래되어 오늘날의 그래픽 하드웨어에 적합하지 않기 때문이며, 기본적으로 모든 직접 비디오 카드 통신은 고대의 비대해진 코어에 대한 확장("패치")으로 수행됩니다. X 서버는 사용자의 렌더링 창과 창이 표시되는 화면 간의 동기화 방법을 기본 제공하지 않으므로 렌더링 프로세스 중에 내용이 변경될 수 있습니다. 이것은 X 서버의 잘 알려진 문제 중 하나입니다(하위 창의 이벤트 처리, 창에 대한 메타데이터, 직접 그리기를 위한 그래픽 기본 요소 등 많은 서버 기능의 완전하고 오래된 모델을 가지고 있습니다). 위젯 키트는 대부분 이를 숨기려고 하지만 이를 처리할 메커니즘이 없기 때문에 찢어짐은 여전히 ​​문제입니다. 다른 드라이버가 필요한 카드가 여러 개 있을 때 또 다른 문제가 발생하며, 게다가 OpenGL 라이브러리는 xlib에 대한 고정 종속성을 가지므로 X를 거치지 않고는 실제로 독립적으로 사용할 수 없습니다.

Wayland는 X를 대체하려는 열정적이지 않은 시도를 하고 있지만 핵심적으로는 현학적 V-Sync 동기화를 지원하고 모든 프레임이 완전히 완벽하다고 주장합니다.

"wayland video rips"에 대한 빠른 Google 검색을 수행하면 모든 것에 대한 자세한 정보를 찾을 수 있습니다.

답변2

nvidia 드라이버 >= 365.20을 사용하는 경우 nvidia-settings.

여기에 이미지 설명을 입력하세요.

답변3

화면 잘림 현상은 두 가지 주요 원인으로 인해 발생합니다. 아직 존재하지 않는 드라이버와 일부 창 관리자와의 수직 동기화 부족입니다.

드라이버의 경우 무료 드라이버와 독점 드라이버 모두 찢어짐 없는 합성을 지원합니다(nvidia와 amd 모두 지원). fglrx예를 들어 Catalyst( )에서 잘림 현상 없는 데스크톱을 활성화하면 프레임 저하 및 지연이 발생할 수 있으므로 일반적으로 기본적으로 비활성화되어 있습니다 . 개방형 드라이버의 경우 수직 동기화가 기본적으로 활성화되어야 합니다. 따라서 화면 잘림 문제는 다른 드라이버를 시도하고 구성하여 해결할 수 있습니다.

창 관리자의 경우 Openbox, Awesome 및 기타 경량 WMS는 찢어짐을 지원하지 않는 것으로 알려져 있습니다. XFCE(특히 xfwm)는 최신 버전에서 이 문제를 해결했으며 이제 4.11/12에는 Vsync가 있습니다. GNOME, KDE, Unity, Cinnamon을 포함한 주요 데스크탑 환경에서도 찢어짐 문제가 없습니다.

화면이 계속 찢어지는 현상이 발생하는 경우 Compton 또는 Kwin과 같은 다른 합성 관리자를 사용해 볼 수 있습니다. Kwin은 KDE의 창 관리자입니다. 저는 XFCE와 함께 kwin을 사용한 경험이 있으며 vsync를 지원하지 않을 때 매우 잘 작동합니다.

따라서 여기에서의 해결책은 실험하는 것이며, 한 드라이버/wm 조합에서 깨진 것이 다른 조합에서는 작동할 수 있습니다. 오픈 소스 드라이버가 더욱 발전하고 wayland로 전환하면 Xorg의 오래된 문제가 해결되면 곧 상황이 개선될 것이라고 확신합니다.

답변4

해결책은 다음과 같습니다.Linux Mint 17.3 MATE가 이제 Compton과 함께 제공됩니다..

Desktop Settings-> Windows-> 로 이동하여 Window Manager를 선택하세요 Metacity + Compton. 그게 다야.

저는 AMD 그래픽 카드를 가지고 있으며 오픈 소스 드라이버를 사용하여 즉시 작동합니다.

독점 AMD 드라이버를 사용하면 HTML5 비디오가 전체 화면으로 최대화되면 파란색이 전체 화면을 채우는 것을 볼 수 있습니다. 이 문제를 해결하려면 chmod +x다음 스크립트를 작성하십시오.

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

시스템을 재부팅할 때마다 실행하되 추가하려고 하지 마세요 Startup Applications. 어떤 이유로 부팅이 중단될 수 있습니다.

관련 정보