關於顯示卡對 Direct3D12 的支援情況
前言
在我的桌機用GPU-Z打開後會看到下圖GPU-Z 顯示 DirectX Support 為12(11_0) |
注意圖中的 DirectX Support 這個欄位,顯示的內容是 12(11_0) ,以前只覺得怪怪的,為什麼後方有個 11_0 ?恰巧最近將繪圖引擎導入 Direct3D12,在導入的過程了解到後方的數字是什麼意思,在此把學習的過程做個紀錄。
內容
一般在初始化 Direct3D12 時會使用 D3D12CreateDevice(),就像以下HRESULT hr=D3D12CreateDevice(pAdapter,D3D_FEATURE_LEVEL_11_0,IID_PPV_ARGS(&pDevice) );
注意第二個參數,這個參數就是在 GPU-Z 裡的 11_0,這個參數的說明可以在 [ MSDN ] D3D12CreateDevice 。如果把參數改成"D3D_FEATURE_LEVEL_12_0"或"D3D_FEATURE_LEVEL_12_1"的話,在 GTX 650 Ti BOOST 的顯示卡就會失敗。目前 Direct3D12 的最低相容是"D3D_FEATURE_LEVEL_11_0",所以範例的寫法可以解釋成用最大的相容性來製造 Device,如果不要相容性的話就改成"D3D_FEATURE_LEVEL_12_0"或"D3D_FEATURE_LEVEL_12_1"。
要查詢是否支援 Direct3D12 話可以用 GPU Specs Database 來做查詢,以下說明查詢 GTX 650 Ti BOOST 的流程,如下圖
查詢 GTX 650 Ti BOOST 的步驟-1 |
在 Generation 欄位選擇 GeForce 600,接著如下圖
查詢 GTX 650 Ti BOOST 的步驟-2 |
在下方的資料選擇 GTX 650 Ti BOOST ,接著就可以看到結果如下
查詢 GTX 650 Ti BOOST 的結果 |
這個網站相當的方便,不只是桌機的顯示卡,連筆電的 GPU 也可以查詢,美中不足的是不能查手機的GPU。
參考資料
GPU Specs Database[ MSDN ] D3D12CreateDevice
沒有留言:
張貼留言