プロジェクトに 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を削除するだけで再び機能します!
この奇妙な動作を引き起こす原因が本当にわかりません。何か考えはありますか?