2016-06-03 2 views
2

DirectX를 사용하여 좀 더 집중적 인 이미지를 렌더링하는 제품을 연구 중입니다. 지금, 일부 컴퓨터에서 여러 개의 GPU가있는 것을 알고까지는, 나는 다음과 같은 방법을 통해 가장 큰 AdapterRam을 가진 하나의 발견에 의해 렌더링하는 GPU 선택 :DirectX 렌더링을위한 최상의 그래픽 카드 선택하기

using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_VideoController")) { 
    foreach (ManagementObject mo in searcher.Get()) { 
     var adapterRam = mo.Properties[ "AdapterRAM" ].Value; 
     //Use this one if it is the largest 
    } 
} 

내가 가진이 문제가 어디 발생 일부 사용자 통합 된 인텔 비디오 카드가 얼마나 많은지에 대해 거짓말을하고 있습니다. 따라서이 카드는 선택 되었기 때문에 AdapterRAM이 있습니다. 나는 그것이 할당 된 시스템 RAM의 일부 금액을보고 있다고 생각합니다. 그리기 작업이이 카드에 너무 집중적으로 적용되어 비디오 드라이버가 충돌합니다. 컴퓨터에는 완벽하게 사용할 수있는 Nvidia 카드가 선택되어 있어야합니다.

나는이 문제를 해결할 수있는 좋은 방법은 설치된 카드보다 통합 카드를 선택하지 않는 것이라고 생각하지만, 아직 카드가 통합되었는지 알아낼 수있는 방법을 찾지 못했습니다. .

카드가 설치된 대 설치된 카드를 감지하는 방법이 있습니까?

우수한 GPU를 선택하는 더 좋은 방법이 있습니까?

답변

2

어댑터를 열거하는 DirectX 방법은 Microsoft 프로그래밍 가이드 https://msdn.microsoft.com/en-us/library/windows/desktop/ff476877(v=vs.85).aspx에서 다룹니다. Windows 관리 개체를 사용하여이 작업을 수행하지 않는 것이 좋습니다.

결과 IDXGIAdapter 인터페이스에는 어댑터의 모든 기능이 포함되어 있습니다. 통합 어댑터를 식별하는 방법은이 게시물 https://gamedev.stackexchange.com/questions/61938/how-to-check-if-user-has-integrated-graphics-card에서 다루므로 피해야 할 어댑터의 하드웨어 ID를 알아야합니다. 통합 여부를 알려주는 설정이 없습니다.

관련 문제