2015-02-01 2 views
0

내 프로그램의 일부 기능이 AMD 비디오 카드에서 지원되지 않기 때문에 어떤 종류의 비디오 카드를 DirectX에서 사용하는지 알아야합니다 추락.DirectX에서 사용중인 비디오 카드 (nvdia 또는 amd)를 얻는 방법

그래서 컴퓨터가 사용중인 카드를 가져와야합니다 (일부 컴퓨터에는 두 개 이상의 비디오 카드가있을 수 있습니다).

+1

사용중인 OS는 무엇입니까? Direct3D의 어떤 버전입니까? –

답변

2

여기에 ATI/AMD under the bus을 던지기 전에 문제가 실제로 응용 프로그램 때문이 아닌지 확인하십시오. Direct3D 10/11의 경우 debug device을 활성화하고 손상이나 오류가 없는지 확인하고 모든 경고를 살펴보십시오.

다음으로, 재판의 경우 사용할 수있는 최신 드라이버가 있는지 확인하십시오. 그렇다면 사용자에게 드라이버 업데이트를 알리십시오. 그렇지 않다면 드라이버 내부에서 정당한 충돌이있는 것 같고 ATI/AMD (또는 NVidia 또는 Intel의 경우 일 수 있음)에 버그로보고하십시오.

각 벤더의 두 개 이상의 비디오 카드/드라이버 조합에서 앱을 테스트하십시오. indies의 경우 이것은 어려울 수 있지만 응용 프로그램이 광범위한 하드웨어 세트에서 작동하는지 확인하는 중요한 부분입니다. Direct3D 11의 경우 다양한 Direct3D hardware feature level 장치를 사용해보아야합니다.

실제 게임에는 광범위한 드라이버 버그 및 비공식 공급 업체 특정 확장을 처리 할 때 특정 하드웨어 ID 감지에 몇 가지 추가 경고가 있습니다. 벤더id/deviceid 조합 DXGI_ADAPTER_DESC 또는 D3DADAPTER_IDENTIFIER9에 기반하여이 감지를 수행하는 예가 here입니다. 특정 공급 업체의 모든 카드를 잠그면 잔인하며 고객을 괴롭 히게됩니다.

+0

DirectX 9에서 VTF를 사용했고 ATI/AMD는 쉐이더 모델 3.0에서 VTF를 지원하지 않습니다. – lxdfigo

+2

이 문제에 대한 공급 업체 검사가 필요하지 않습니다. ''CheckDeviceFormat''를''D3DUSAGE_QUERY_VERTEXTEXTURE''와 함께 사용하십시오. 문제가있는 카드는 지원되지 않습니다. 셰이더 모델 3.0에서 이런 식으로 유효성을 검사하지 않고 형식을 정점 텍스처로 사용하는 것은 실제로 유효하지 않습니다. [MSDN] (https://msdn.microsoft.com/en-us/library/windows/desktop/bb206339.aspx)을 참조하십시오. 물론 Shader Model 4.0 이상의 장치 (Direct3D 기능 레벨 10.0+라고도 함)에는 Vertex 텍스처 형식이 필요합니다. 따라서 최신 ATI/AMD는 실제로 버텍스 텍스처를 지원하고''CheckDeviceFormat''이이를 발견 할 것입니다. –

관련 문제