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

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

Windows Aero가 켜져 있으면 Aero 없이 기본 테마를 사용할 때와 달리 화면 잘림 현상이 발생하지 않습니다.

그러면 수직 동기화를 사용하는 게임이 데스크톱에서 작업할 때보다 입력 지연이 훨씬 더 큰 것처럼 보이는 이유는 무엇입니까? 심지어 V-Sync를 끈 상태에서 창 모드 게임을 동기화하는 것 같습니다. 게임에 내장된 방법을 사용하는 것보다 더 좋습니다.

왜 그리고 어떻게 이런 일이 발생하거나 발생하는 것처럼 보입니까?

답변1

실제로 Aero가 애플리케이션에서 VSYNC를 강제로 활성화하지 않고도 찢어짐을 방지할 수 있는 이유는 Aero가 합성 창 관리자이기 때문입니다. 실행 중인 애플리케이션과 관련하여 데스크톱과 모든 창을 비동기적으로 그립니다.

즉, Windows Vista/7에서 합성을 활성화하면(언제나Windows 8에서 활성화됨) 뒤에서 앞으로 교체된 마지막 이미지의 복사본을 사용하여 모든 창을 그립니다. 컴포지터(Microsoft에서는 이를 DWM이라고 합니다.데스크탑 창 관리자)는 VSYNC가 활성화된 상태에서 모든 것을 합성하며 마지막 복사본을 사용하여 그리기 때문에완전히 교체됨각 창의 전면 버퍼 이미지는 부분적으로 그려진 프레임을 표시하지 않습니다. 그러나 전면 버퍼에만 사용하도록 설계된 아주 오래된 소프트웨어가 올바르게 작동하지 못하게 하는 불행한 부작용이 있습니다. 그러나 최신 소프트웨어는 이를 수행하지 않습니다.

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

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

답변2

Aero가 활성화되면 데스크탑 창 관리자는 다음을 사용합니다.이중 버퍼링:

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

원천

위키피디아화면 찢어짐을 방지하기 위해 V-sync와 함께 사용되는 방법에 대해 다음과 같이 설명합니다.

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

답변3

이중 버퍼링 + V-sync를 켜면 찢어짐 현상이 발생하지 않습니다. Aero는 해당 구성을 사용합니다.

답변4

DWM(Aero 효과를 활성화하는 기술)은 화면의 모든 것을 D3D 표면으로 렌더링합니다(이를 통해 Flip에서 비디오를 계속 재생할 수 있음). 이 렌더링 기술은 자동으로찢는, 게임 방법은 일반적인 DWM 방법보다 더 나을 것입니다(결국 자체 엔진입니다). 그러니 애초에 게임 방식이 그다지 좋지 않거나, 자신의 구성에 최적화되지 않았을 가능성이 높습니다.

관련 정보