2011-11-03 82 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
相关问题