我想要捕獲和壓縮GPU上的屏幕。 C++ AMP和DXGI Desktop Duplication各自單獨工作,但似乎並不一起工作。Desktop Duplication和C++ AMP不兼容?
例子:
This project的偉大工程,但增加最少的C++ AMP代碼附近DesktopDuplication.cpp的頂部使得它失敗:
#include <amp.h>
//void f() { Concurrency::direct3d::create_accelerator_view(nullptr); }
//void f() { Concurrency::accelerator default_acc; }
void f() { Concurrency::accelerator::get_all(); }
即使f()
不會被調用,m_Factory->CreateSwapChainForHwnd(...)
回報E_ACCESSDENIED
。 (f()
的註釋版本產生相同的結果。)
在我自己的項目中,當我嘗試使用C++ AMP時,IDXGIOutput1::DuplicateOutput()
返回DXGI_ERROR_UNSUPPORTED
。
發生了什麼事?
更新:在NVIDIA控制面板,改變「的優選的圖形處理器」到「集成圖形」的工作原理。 (但是,使用NVIDIA顯卡是多首選。)