2011-11-03 81 views

回答

2

你可能想看看DeviceCaps。它應該能夠告訴你設備的功能,這樣你就不會嘗試創建一個它不支持的窗口。

2

其實glxinfo確實創建了一個OpenGL窗口並創建了一個OpenGL上下文,但從未將其映射到屏幕上。我們必須創建一個OpenGL上下文來獲取所有信息,例如glxinfo

+0

很棒的評論,但沒有回答有關D3D的問題。 –

+0

@MatthewRead:OP詢問如何在沒有上下文創建的情況下獲取GPU信息。他認爲glxinfo會在沒有創建窗口的情況下收集其信息。我回復說,glxinfo實際上是做平常的事情。我認爲考慮採用Direct3D的邏輯步驟並不難,試圖創建一個Direct3D窗口/上下文來查看機器實際上可以做些什麼。 – datenwolf

2

我發現了directX的glxinfo等價物 - 它被稱爲dxdiag,由微軟提供。這可以讓你輸出一個帶有D3dStatus字段的XML文件(在我的例子中「不可用」)。

0

如果使用Direct3D11您可以使用此代碼

// Determines feature level without creating a device. 
D3D_FEATURE_LEVEL determineHighestSupportedFeatureLevel() 
{ 
    HRESULT hr = E_FAIL; 
    D3D_FEATURE_LEVEL FeatureLevel; 

    hr = D3D11CreateDevice(
     nullptr, 
     D3D_DRIVER_TYPE_HARDWARE, 
     nullptr, 
     0, 
     nullptr, 
     0, 
     D3D11_SDK_VERSION, 
     nullptr, 
     &FeatureLevel, 
     nullptr); 

    if(FAILED(hr)) 
    { 
     throw std::runtime_exception("Determine the highest supported Direct3D11 feature level failed."); 
    } 

    return FeatureLevel; 
} 
您正在使用哪個版本的DirectX
相關問題