Direct3d 애플리케이션이 전체 화면 모드에서 더 잘 수행되는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/304669

문제

Direct3D 애플리케이션의 성능은 창 모드에 비해 전체 화면 모드에서 훨씬 더 나은 것으로 보입니다. 이것의 기술적 이유는 무엇입니까?

전체 화면 응용 프로그램이 디스플레이를 독점적으로 제어 할 수 있다는 사실과 관련이 있다고 생각합니다. 그러나 응용 프로그램이 독점적으로 제어 할 수없는 이유 부분 화면 (즉, 창)의 성능 이점이 동일한가요?

도움이 되었습니까?

해결책

다음은 상황이 어떻게 작동하는지에 대한 절벽 메모입니다.

모니터 화면은 항상 소위 1 차 표면과 연관되어야합니다. 즉, 비디오 메모리에서 한 표면 만 스캔 할 수 있습니다.

애플리케이션이 전체 화면 인 경우 (그리고 모든 것이 뒤집을 수 있도록 올바르게 설정 됨), 1 차 표면은 애플리케이션 백 버퍼 중 하나 일 뿐이며 모든 프레임마다 다른 백부퍼로 뒤집 힙니다. 화면에서 가장 효율적인 표현 방법이지만 전체 모니터 영역 (즉 전체 1 차 표면)을 소유하려면 응용 프로그램이 필요합니다.

전체 화면 응용 프로그램이없고 DWM이 꺼져 있으면 1 차 표면은 OS가 소유하고 모든 창문 응용 프로그램은 응용 프로그램 백 버퍼에서 1 차 표면으로 블릿을 수행합니다. 이 블리트는 완료하는 데 약간의 시간이 걸립니다 (화면에서 볼 수있는 다른 응용 프로그램의 블리트뿐만 아니라 전체 화면 프리젠 테이션만큼 효율적이지 않습니다. XP는 그런 식으로 일했습니다.

DWM이 화면을 작성하면 상황이 훨씬 더 복잡해집니다. 여기서 DWM은 기본 표면을 소유하고 있으며 애플리케이션 창을 그곳에 뽑아야합니다. 가능하게하기 위해 모든 창에는 리디렉션 표면 (DWM이 창 유령, 유리 효과 및 모든 좋은 것들을 활성화 할 수 있도록하는 내용물을 고정하는 관련 표면이 있습니다. D3D 애플리케이션이 프레임을 발행 할 때마다 리디렉션 표면에 블릿을 추가합니다. 이렇게하면 여러 블리트가 발생해야합니다. 응용 프로그램에 의해 리디렉션 표면에 블리트, 리디렉션 표면에서 1 차로 블릿이 DWM에 의해 블리트됩니다.

모든 추가 작업은 GPU에 있으므로 CPU 성능에 영향을 미치지 않습니다.

더 읽을 것 :

http://blogs.msdn.com/greg_schechter/archive/2006/03/19/555087.aspx

http://blogs.msdn.com/greg_schechter/archive/2006/05/02/588934.aspx

http://blogs.msdn.com/greg_schechter/archive/2006/03/05/544314.aspx

다른 팁

거기 있습니다 약간 Full Screen Mode가 블리팅과 달리 올바르게 설정하면 버퍼 플리핑을 사용한다고 표시된 MSDN에서. 말이 되는군요.

물론 화면의 일부를 응용 프로그램에 독점적으로 제어 할 수 있지만 나머지 화면은 어떻게됩니까? 나머지 창문에서 여전히 블리팅, 폐색 점검 등을 수행해야하며, 이것이 성능이 치는 원인이라고 생각합니다.

@에 추가 할게AIB화면의 나머지 부분은 OS가 관리하고 있다고 답합니다. 따라서 동시에 다른 작업을 수행/작업 해야하는 경우 성능이 인한 것입니다.

예를 들어, 한 창에서 Windows Media Player에서 비디오를 재생하는 경우 Civ가 멋진 그래픽을 시작할 때 다른 창문에서 문명을 시작하면 비디오와 같이 화면 공간을 공유해야합니다.

DirectX 앱에 전체 화면이있는 경우 다른 모든 것은 "업데이트"또는 "재생"일 수 있지만 ~ 아니다 그려지고 있습니다.

기본적으로 비디오 하드웨어는 독점 모드 애플리케이션 전용입니다.

비디오 리소스 (파이프 라인, 텍스처 메모리 등)에 대한 논쟁은 없습니다.

특히 텍스처 업로드는 큰 병목 현상이 될 수 있습니다. 당신이 그것을 덜해야할수록 (당신은 그것을 모두 가지고 있기 때문에) 더 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top