Windows Aero가 켜져 있으면 Aero없이 기본 테마를 사용할 때와 달리 화면이 찢어지지 않습니다.
하지만 수직 동기화 게임이 데스크탑에서 무언가를 할 때보 다 입력 지연이 훨씬 더 큰 이유는 무엇입니까? 심지어 게임에 내장 된 방법을 사용하는 경우보다 V-sync를 끈 상태에서 윈도우 게임을 동기화하는 것 같습니다.
왜 그리고 어떻게 이런 일이 발생합니까?
Windows Aero가 켜져 있으면 Aero없이 기본 테마를 사용할 때와 달리 화면이 찢어지지 않습니다.
하지만 수직 동기화 게임이 데스크탑에서 무언가를 할 때보 다 입력 지연이 훨씬 더 큰 이유는 무엇입니까? 심지어 게임에 내장 된 방법을 사용하는 경우보다 V-sync를 끈 상태에서 윈도우 게임을 동기화하는 것 같습니다.
왜 그리고 어떻게 이런 일이 발생합니까?
답변:
실제로 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 전력을 사용하여 이미지를 표시 할 수 있습니다.
Aero가 활성화되면 Desktop Window Manager는 이중 버퍼링을 사용합니다 .
Windows Aero 기능은 이중 버퍼링을 광범위하게 사용하여 화면에 그립니다.
Wikipedia 는 V-sync와 함께 화면이 찢어지는 것을 방지하는 방법에 대해 다음과 같이 말합니다.
수직 블랭킹 간격 동안 드라이버는 비디오 카드에 오프 스크린 그래픽 영역을 활성 디스플레이 영역으로 빠르게 복사하거나 (더블 버퍼링) 두 메모리 영역을 모두 표시 가능하게 처리하고 단순히 이들 사이에서 앞뒤로 전환하도록 명령합니다 (페이지). 뒤집기).
이중 버퍼링 + V- 싱크는 찢어짐이 없습니다. Aero는 해당 구성을 사용합니다.