Problem beim auslesen der Multisampling QualitiyLevels zu einem Adapter (DirectX10)[solved]



  • Hallo zusammen,

    ich habe da ein kleines Problem und zwar versuche ich an die Informationen zu gelangen, welches Multisampling die Grafikkarte des Benutzers unterstützt.
    Ich habe mir dazu die folgende Methode geschrieben:

    void GetMultisamplingLevels(IDXGIFactory *pFactory, std::list<DWORD> *pToList, DWORD dwAdapter){
    ...
    	//Adapter holen
    	IDXGIAdapter *pAdapter;
    	HR(pFactory->EnumAdapters(dwAdapter,&pAdapter)); 
    
    	//Test Device erstellen
    	ID3D10Device *pDevice=NULL;
    	HR(D3D10CreateDevice( pAdapter, D3D10_DRIVER_TYPE_HARDWARE, NULL, 0, D3D10_SDK_VERSION, &pDevice ));   
    
    	for(DWORD dwCount = 2; dwCount <= D3D10_MAX_MULTISAMPLE_SAMPLE_COUNT; dwCount++){
    		UINT dNumLevels;
    		HR(pDevice->CheckMultisampleQualityLevels(DXGI_FORMAT_R8G8B8A8_UNORM,dwCount,&dNumLevels));
    
    		if(dNumLevels>0)
    			pToList->push_back(dwCount);
    	}
    ...
    

    Blöderweise liefert mir die Methode in der Liste nur Schrott zurück. D3D10CreateDevice liefert jedoch ein S_OK, dann sollte es doch eigentlich möglich sein die QualitiyLevels abzugfragen.

    Ich habe das Programm auch schon auf unterschiedlichen Rechnern mit unterschiedlichen Grafikkarten probiert, alle liefern das selbe Ergebnis.

    Was mache ich falsch, kann wer nen Tipp geben?

    Mfg

    Fireball

    -------NACHTRAG--------
    Meine Recherche hat ergeben, dass die Funktion korrekt ist.
    Walbourn (Direct3D Guru von Microsoft) schreibt in seinem Blog:

    ... CheckMultisampleQualityLevels method in Direct3D 10.x and 11. The ATI Radeon HD 5000 Series only provides one quality level per sample count, while the NVIDIA GeForce GTX 400 Series exposes a number of fine-grain quality levels per sample count. ...

    Quelle: http://blogs.msdn.com/b/chuckw/archive/2010/06/10/directx-11-hardware-vendor-differences.aspx

    Hätte doch bei NVIDIA bleiben sollen. 😡

    Gruß

    Fireball


Anmelden zum Antworten