我正在用C++編寫一個程序,使用directx 11作爲我的圖形。我的筆記本電腦有一個輕巧的英特爾圖形卡,用於延長我的電池壽命,應該只用於「輕量級」圖形。我還安裝了另一個功能更強大的視頻卡。C++ Directx 11多個視頻卡
我想知道如何指定哪個視頻卡在DirectX中使用?當我創建設備來指定在我的代碼中使用哪個卡時,有沒有辦法?
感謝
我正在用C++編寫一個程序,使用directx 11作爲我的圖形。我的筆記本電腦有一個輕巧的英特爾圖形卡,用於延長我的電池壽命,應該只用於「輕量級」圖形。我還安裝了另一個功能更強大的視頻卡。C++ Directx 11多個視頻卡
我想知道如何指定哪個視頻卡在DirectX中使用?當我創建設備來指定在我的代碼中使用哪個卡時,有沒有辦法?
感謝
如果你的卡是某些Intel/NVIDIA的組合,你有兩個選擇:
- 首先設置了NVIDIA卡者優先裝置(在NVIDIA控制面板,管理3D設置,全局/程序設置,更改優先圖形處理器
使用代碼的另一種方法是枚舉具有DXGI的適配器,並嘗試獲取具有受限功能級別的設備(如果不可用,CreateDevice將失敗,並且大多數Intel卡爲10.1)
http://msdn.microsoft.com/en-us/library/windows/desktop/bb174538(v=vs.85).aspx以枚舉適配器。
然後嘗試僅爲每個適配器創建具有D3D_FEATURE_LEVEL_11_0的設備,僅創建支持它的設備。
我有類似的問題。我還沒有嘗試升級我的顯卡驅動程序,但是當我將電腦重新插入互聯網時,我將會嘗試升級。
這裏是我發現我如何「解決」(又名陪審團操縱)我的問題:
症狀:
解決方案:
可能有更漂亮的方法來做到這一點,但這就是我的「問題」。顯然,如果我的卡支持完整的DX11系統會更好,但對於用戶遇到類似問題的情況,這不是一個壞的保障措施。至少我可以通過編程來識別問題。
我不知道你的問題的答案,但真正的解決方案是:不這樣做。 DirectX將自動使用正確的圖形卡,由用戶在操作系統設置中選擇。如果還有第二塊顯卡,很有可能它甚至沒有連接顯示器。 – 2012-03-01 01:32:33