Windows Aero는 화면 찢김을 어떻게 방지합니까?


14

Windows Aero가 켜져 있으면 Aero없이 기본 테마를 사용할 때와 달리 화면이 찢어지지 않습니다.

하지만 수직 동기화 게임이 데스크탑에서 무언가를 할 때보 다 입력 지연이 훨씬 더 큰 이유는 무엇입니까? 심지어 게임에 내장 된 방법을 사용하는 경우보다 V-sync를 끈 상태에서 윈도우 게임을 동기화하는 것 같습니다.

왜 그리고 어떻게 이런 일이 발생합니까?

답변:


8

실제로 Aero가 응용 프로그램에서 VSYNC를 강제로 설정하지 않고도 찢어짐을 방지 할 수있는 이유는 합성 창 관리자이기 때문입니다. 실행중인 응용 프로그램과 관련하여 바탕 화면과 모든 창을 비동기 적으로 그립니다.

즉, Windows Vista / 7에서 합성을 활성화하면 (Windows 8에서는 항상 활성화 됨), 앞뒤로 교체 된 마지막 이미지의 복사본을 사용하여 모든 창을 그립니다. 컴포 지터 (Microsoft에서는 DWM, Desktop Window Manager라고 함 )는 VSYNC를 사용하도록 설정 한 모든 항목을 합성하며, 각 창에 대해 마지막으로 완전히 스왑 된 전면 버퍼 이미지 의 사본을 사용하여 그리기 때문에 부분적으로 그린 ​​프레임은 표시되지 않습니다. 그러나 전면 버퍼로 독점적으로 설계된 오래된 소프트웨어가 제대로 작동하지 않도록 막는 것은 불행한 부작용이지만 최신 소프트웨어는 그렇지 않습니다.

간단히 말해서, DWM은 찢어짐에 대한 추가 보호 계층을 추가합니다. 하나는 시스템에서 실행되는 모든 응용 프로그램이 디스플레이의 새로 고침 빈도에 관계없이 속도를 유지하면서도 찢어짐을 방지 할 수있게합니다. 이러한 시스템에서 창 모드에서는 OpenGL 또는 Direct3D에서 VSYNC를 활성화하는 것이 유일한 장점은 실제로 CPU / GPU 사용률을 낮추는 것입니다.

이러한 이유 때문에 적응 형 VSYNC가 만들어졌습니다. 디스플레이의 재생 빈도를 낮게하여 재생 빈도의 낮은 요소 (예 : 60Hz-> 30, 20, 15, 10, 12)로 유지할 수없는 응용 프로그램에 불이익을주지 않을 것이라는 아이디어가 있습니다. , 6, 5, 4, 3, 2, 1) 그러나 모니터보다 빠르게 그리는 응용 프로그램을 제한하기 위해 과도한 양의 CPU / GPU 전력을 사용하여 이미지를 표시 할 수 있습니다.


5

Aero가 활성화되면 Desktop Window Manager는 이중 버퍼링을 사용합니다 .

Windows Aero 기능은 이중 버퍼링을 광범위하게 사용하여 화면에 그립니다.

출처

Wikipedia 는 V-sync와 함께 화면이 찢어지는 것을 방지하는 방법에 대해 다음과 같이 말합니다.

수직 블랭킹 간격 동안 드라이버는 비디오 카드에 오프 스크린 그래픽 영역을 활성 디스플레이 영역으로 빠르게 복사하거나 (더블 버퍼링) 두 메모리 영역을 모두 표시 가능하게 처리하고 단순히 이들 사이에서 앞뒤로 전환하도록 명령합니다 (페이지). 뒤집기).


6
이중 버퍼링은 찢어짐을 방지하지 않으며, 렌더링 과정에서 사용자가 내용을 볼 수 없도록합니다. 이중 버퍼링 된 상태에서 화면 새로 고침 중간에 페이지 넘기기를 수행하면 여전히 찢어집니다.
Wyzard

물론 이중 버퍼링을 잘못하면 여전히 찢어 질 수 있지만 요점은 DB를 사용하여 찢어짐을 방지 할 수 있다는 것입니다.
nitro2k01

3

이중 버퍼링 + V- 싱크는 찢어짐이 없습니다. Aero는 해당 구성을 사용합니다.


2

DWM (Aero 효과를 가능하게하는 기술)은 화면의 모든 것을 D3D 표면으로 렌더링하여 비디오를 Flip에서 계속 재생할 수있게합니다. 이 렌더링 기술 은 게임 방법이 일반적인 DWM 방법보다 낫지 만 (최종 자체 엔진 임) 찢어짐 을 자동으로 방지 합니다. 따라서 게임 방법이 처음에는 좋지 않거나 구성에 맞게 최적화되지 않았을 수 있습니다.


2
그 자체로는 Direct3D를 사용해도 화면이 찢어지지 않습니다. 이중 버퍼링입니다.
bwDraco
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.