Почему мой второй адаптер не появляется?

В связи с тем, что на моем графическом процессоре (AMD Radeon 6600M) вместо Intel HD3000 используется несколько игр и графических приложений, я написал этот небольшой код, чтобы начать исследование.

#include <stdio.h>
#include <stdlib.h>
#include <DXGI.h>

int enumGraphicsAdapters( void* pFactory )
{
    int rc = ERROR_SUCCESS;

    HRESULT rcDx;
    UINT i = 0;

    IDXGIAdapter* pAdapter;
    IDXGIFactory* localFactory = (IDXGIFactory*)pFactory;
    DXGI_ADAPTER_DESC desc;

    rcDx = localFactory->EnumAdapters(i, &pAdapter);
    while( rcDx != DXGI_ERROR_NOT_FOUND )
    {
        if( S_OK == rcDx )
        {
            HRESULT rcGetDesc = pAdapter->GetDesc( &desc );
            if( SUCCEEDED( rcGetDesc ) )
            {
                wprintf(TEXT("Adapter %d: [%s]\n"), i, desc.Description);
            }
        }
        else
        {
            wprintf(TEXT("No more adapters\n"));
        }

        i++;
        rcDx = localFactory->EnumAdapters(i, &pAdapter);
    }

    return rc;
}

int initDx( void )
{
    int rc = (-1);
    IDXGIFactory* pFactory;
    HRESULT rcDx = CreateDXGIFactory(__uuidof(IDXGIFactory), (void**)&pFactory);

    if( SUCCEEDED( rcDx ) )
    {
        printf("Succedded creating DXGIFactory!\n");
        rc = enumGraphicsAdapters( pFactory );
        getchar();
        rc = ERROR_SUCCESS;
    }

    if( pFactory )
    {
        pFactory->Release();
    }

    return rc;
}



int main( int argc, char* argv[] )
{
    (void)initDx();

    return EXIT_SUCCESS;
}

Теперь диспетчер устройств отображается правильно. Смотрите изображение. Графические адаптеры диспетчера устройств

Но мой собственный код не определяет графический адаптер AMD Radeon. Смотрите изображение.

Может кто-нибудь объяснить мне, почему это происходит?

Спасибо!

0 ответов

Другие вопросы по тегам