2

プロジェクトに cudart.lib を追加した後、あいまいな理由で IDXGIOutput5::DuplicateOutput1() への呼び出しがエラー 0x887a0004 (DXGI_ERROR_UNSUPPORTED) で失敗します。

私は Visual Studio 2019 で作業しています。モニターの複製用のコードはクラシックです。

hr = output5->DuplicateOutput1(this->dxgiDevice, 0, sizeof(supportedFormats) / sizeof(DXGI_FORMAT), supportedFormats, &this->dxgiOutputDuplication);

そして、現時点でcudaでやろうとした唯一のことは、単純にCudaデバイスをリストすることです:

 int nDevices = 0;

 cudaError_t error = cudaGetDeviceCount(&nDevices);

 for (int i = 0; i < nDevices; i++) {

            cudaDeviceProp prop;
            cudaGetDeviceProperties(&prop, i);

            LOG_FUNC_DEBUG("Graphic adapter : Descripion: %s, Memory Clock Rate : %d kHz, Memory Bus Width : %u bits",
                prop.name,
                prop.memoryClockRate,
                prop.memoryBusWidth
            );
}

さらに、このコードは、DXGI でモニターの複製を開始しようとした後で呼び出されます。

私のアプリケーションではすべてが正しいようです。 -生成された-デスクトップ複製-api-capable-application-is-ru][1] )

ちなみに、以前は機能していましたが、リンカー入力から「とてもシンプルな」Cuda呼び出しとcudart.libを削除するだけで再び機能します!

この奇妙な動作を引き起こす原因が本当にわかりません。何か考えはありますか?

4

1 に答える 1