По непонятной причине мой вызов IDXGIOutput5 :: DuplicateOutput1 () завершился ошибкой 0x887a0004 (DXGI_ERROR_UNSUPPORTED) после того, как я добавил cudart.lib в свой проект.
Я работаю в Visual Studio 2019, мой код для монитора дублирование - это classi c:
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.
В моем приложении все кажется правильным: я выполняю вызов SetProcessDpiAwarenessContext (DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2), и я не работает на дискретном графическом процессоре (см. [https://support.microsoft.com/en-us/help/3019314/error-generated-when-desktop-duplication-api-capable-application-is-ru] [1] )
И, кстати, он работал, и он снова работает, если я просто уберу "так просто "Вызов Cuda и cudart.lib с входа компоновщика!
Я действительно не понимаю, что может вызвать это странное поведение, любая идея?