我正在使用directx 11为我的图形编写C ++程序。我的笔记本电脑有一个轻巧的英特尔显卡,用于延长我的电池寿命,应该只用于“轻量级”图形。我还安装了另一个功能更强大的显卡。
我想知道如何指定在directx中使用哪个视频卡?有没有办法在我创建设备时指定在我的代码中使用哪张卡?
由于
答案 0 :(得分:2)
如果您的卡是某种intel / nvidia组合,您有两种选择:
- 首先将nvidia卡设置为首选设备(在nvidia控制面板中,管理3d设置,全局/程序设置,更改优先图形处理器。
使用代码的另一种方法是使用DXGI枚举适配器,并尝试获取具有受限功能级别的设备(如果不可用,CreateDevice将失败,并且大多数英特尔卡都是10.1)
http://msdn.microsoft.com/en-us/library/windows/desktop/bb174538(v=vs.85).aspx枚举适配器。
然后尝试仅为每个适配器创建具有D3D_FEATURE_LEVEL_11_0的设备,只创建支持它的设备。
答案 1 :(得分:0)
我有类似的问题。我还没有尝试升级我的显卡驱动程序,但是当我把我的电脑插回互联网时,我会的。
这是我发现的以及我如何“解决”(又称陪审团)我的问题:
症状:
解决方案:
可能有一种更漂亮的方法可以做到这一点,但这就是我的“问题”。显然,如果我的卡支持完整的DX11系统会更好,但是如果用户遇到类似问题,这并不是一个糟糕的保护措施。至少我可以通过编程方式识别问题。