2017-10-02 1 views
0

directx 11 및 10.1을 사용하여 테스트 응용 프로그램을 개발합니다. 모든 것이 예상대로 잘 작동하지만, 그래픽이있는 창을 최대화하면 프레임 당 시간이 크게 늘어납니다. 1ms ~ 40ms.DirectX 성능 문제 최대화 창

  • NVS 300 개 그래픽 카드
  • 윈도우 7 32 비트
  • 백 버퍼에 변경 프로그램 초기화 swapchain을 제어와 sharpdx를 통해
  • 윈도우 양식을 Direct3D를, C#을 가진 몇 부비동을 그리고 sharpdx
  • 응용 프로그램 크기 조정 이벤트 (해당하지 않고도 발생합니다)
  • 코드 줄에서이 문제를 찾으려면 System.Stopwatch를 사용했습니다. mSwapChain.Present (1, PresentFlags.None); 갑자기 많이 극대화 될 때 필요한 시간이 늘어나는 곳.

실마리가 있습니까?

+0

창이 최대화하면 렌더링 해상도가 증가하지 않습니까? 아닙니다. 어쩌면 당신의 드로잉 코드가 탓할 것인가? – VTT

+0

해상도가 증가합니다. HD4400을 사용하는 개발 PC에서 프레임 시간을 테스트하면 동일한 시간이 유지됩니다. 그리드와 부비동은 거의 그리지 않습니다. NVS가있는 목적지 머신에서 특정 해상도로 점프합니다. 드래그하여 수동으로 크기를 조정하면 프레임 당 시간이 이렇게 늘어나는 지점 (전체 화면이 아님)이 있습니다. 그것은 내 코드에서 뭔가 나쁜 일을 할 수 있지만이 동작은 또한 공식 git repo에서 sharpdx 예제를 사용하는 경우 발생합니다. 그래서 내 드로잉 코드에 반드시 문제가 있다고 생각하지 않습니다. – Hexa

+0

모든 그리기 명령을 주석 처리하고 Present (1, PresentFlags.None) 만 사용할 수 있습니다. 여전히 동일한 문제 – Hexa

답변

0

내 구체적인 경우 에어로가 비활성화 된 Windows 클래식 테마로 전환하면 문제가 해결되었습니다. 창 시작 단추가 크기가 조정 된 창 위에 놓이기 시작하면 프레임 성능이 악화되기 때문입니다.