Пустой outputInfoList для второй графической карты
У меня на ПК два дискретных видеоадаптера: GTX 1060 и RTX 2080 ti. Я хотел бы использовать второй для своего приложения DXUT. Я нашел аргумент командной строки -adapter #, чтобы указать его, однако моя программа вылетела из строя при запуске с параметром -adapter1 (1 - порядковый номер адаптера для RTX2080). Я начал отладку и выяснил следующую проблему: EnumOutputs возвращает только DXGI_ERROR_NOT_FOUND.
Для GTX1060 первый вызов EnumOutputs возвращает правильный результат.
Раздел кода:
HRESULT CD3D11Enumeration::EnumerateOutputs( _In_ CD3D11EnumAdapterInfo* pAdapterInfo )
{
HRESULT hr;
IDXGIOutput* pOutput;
for( int iOutput = 0; ; ++iOutput )
{
pOutput = nullptr;
//next line returns at once DXGI_ERROR_NOT_FOUND for RTX2080
hr = pAdapterInfo->m_pAdapter->EnumOutputs( iOutput, &pOutput );
if( DXGI_ERROR_NOT_FOUND == hr )
{
return S_OK;
}
...
}
hr = EnumerateOutputs( pAdapterInfo );
if( FAILED( hr ) || pAdapterInfo->outputInfoList.empty() ) //failed here cause second condition is true
{
delete pAdapterInfo;
continue;
}
Кто знает как исправить эту проблему?
Все драйверы обновлены.
PS Я также пытался указать графическую карту через программное обеспечение Windows и GeForce, но это кажется подходящим только для корпуса ноутбука с обеими интегрированными / дискретными картами.
1 ответ
Боже мой .. Проблема только в GTX1060, подключенном к моему монитору.
Мой наставник объяснил мне, что в этом случае невозможно отрендерить буфер кадра.