2014-02-24 5 views
1

내 노트북에는 NVIDIA Optimus가 있습니다 (그래서 Intel GPU가 있습니다).Direct2D의 D2D1CreateFactory()를 사용하여 GPU를 선택하는 방법은 무엇입니까?

그러나 더 나은 성능을 얻으려면 Direct2D 용 NVIDIA 카드를 사용하고 싶습니다.
(NVIDIA 설정을 수정하고 싶지 않습니다. 프로그램 자체에서 어댑터를 선택하고 싶습니다.)

어떻게하면됩니까?

내가 장치 또는 어댑터를 선택할 수있는 D2D1CreateFactory에서 찾을 수있는 옵션이 없습니다 ... 항상 기본 GPU를 선택하는 것 같습니다. 기본이 아닌 GPU에 대해 ID2D1Factory을 얻으려면 어떻게해야합니까?

답변

1

D3D10CreateDevice을 사용하고 D2DD3D 사이의 상호 운용성이 필요합니다. Direct2D and Direct3D Interoperability Overview

Direct3DSurface Sharing Between Windows Graphics APIs

    • 는 AFAIK ... 당신은 장치와 함께 까다로운 D2D하지 얻을 수 있습니다.

  • +0

    감사합니다. *** 많은 *** 고통 스럽습니다. 이를 시도하는 다른 누구에게나 인텔 HD 그래픽 4600에서 NVIDIA GeForce GT 750M으로가는 비트는 성능에 도움이되지 않는 것 같습니다. – Mehrdad

    +0

    @Mehrdad Np. Framerate는 vsync에 내부적으로 제한 될 수 있습니다. 게다가, 당신은 실제로 두 가지의 차이를보기 위해 D2D를 밀어 넣을 필요가 있다고 생각합니다. 그리고 QueryPerformanceCounter()만으로 속도를 끌어 올리면됩니다. * 추신 : 인텔 4600 꽤 좋습니다! * – CodeAngry

    +0

    병목 현상은 하드웨어가 아닌 Direct2D의 코드 자체 (스택 추적에 따라 CWidener 클래스)입니다. GPU 사용률이 20-30 %에 불과합니다 (기본적으로 화면에 수천 줄의 선을 그립니다). – Mehrdad