我的 PC 上有两个独立的视频适配器: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 软件指定显卡,但它似乎只适用于带有集成/分立卡的笔记本电脑机箱。