2019年9月2日 星期一

關於顯示卡對 Direct3D12 的支援情況

關於顯示卡對 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

沒有留言:

張貼留言