C++Directx 11多个视频卡
C++ Directx 11 Multiple Video Cards
本文关键字:视频卡 C++Directx 更新时间:2023-10-16
我正在用C++编写一个程序,使用directx 11进行图形处理。我的笔记本电脑有一个重量轻的英特尔显卡,用来延长我的电池寿命,应该只用于"轻量级"图形。我还安装了另一个功能强大得多的视频卡。
我想知道如何指定在directx中使用哪种视频卡?当我创建设备时,有没有办法指定在我的代码中使用哪张卡?
感谢
如果你的卡是intel/nvidia组合,你有两个选项:
-首先是将英伟达卡设置为首选设备(在nvidia控制面板中,管理3d设置、全局/程序设置,更改首选图形处理器。
使用代码的另一种方法是使用DXGI枚举适配器,并尝试获得具有受限功能级别的设备(如果CreateDevice不可用,则会失败,并且大多数intel卡都是10.1)
http://msdn.microsoft.com/en-us/library/windows/desktop/bb174538(v=vs.85).aspx到枚举适配器。
然后尝试为每个适配器创建D3D_FEATURE_LEVEL_11_0设备,只会创建支持它的适配器。
我也遇到了类似的问题。我还没有尝试升级我的显卡驱动程序,但当我把电脑插回互联网时,我会的。
以下是我的发现以及我如何"解决"(又称陪审团操纵)我的问题:
症状:
- 类似于上面的海报
- 我只有一个NVDIA显卡,它声称支持DirectX 11
- 当我在DirectX Caps Viewer中查看它时,它只支持DirectX 9.3及更低版本
解决方案:
- 向后遍历D3D_FEATURE_LEVEL,每次调用D3D11CreateDeviceAndSwapChain()
- D3D11CreateDeviceAndSwapChain()工作后,您就知道您已经找到了所选显卡支持的最大功能级别
也许有一种更漂亮的方法可以做到这一点,但这就是我的"问题"所在。显然,如果我的卡支持完整的DX11系统会更好,但在用户出现类似问题的情况下,这并不是一个糟糕的保护措施。至少我可以通过编程识别问题。
相关文章:
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 如何在c++中录制具有精确帧时间戳的视频
- 在卡萨布兰卡形成编码参数的列表
- 通过选项卡的文本设置QTabWidget顺序
- 如何在directx/c++中进行平移/缩放操作
- 如何在QT中的自定义视频小工具t上绘制矩形
- 如何在AMD视频卡上获得GPU负载百分比和GPU温度
- 在 c++ (Windows) 上获取视频卡名称
- 如何在 SDL2 中获取视频卡的所有支持分辨率
- 如果没有视频卡,谁会运行OpenGL着色器
- 如何验证视频卡驱动程序证书
- DirectX 11 获取图形卡的说明
- 开放框架,从两个视频采集卡创建视频纹理
- 使用DirectX视频加速(DXVA)实现媒体基础转换(MFT)
- C++Directx 11多个视频卡
- DirectX屏幕捕获和输出为视频
- While循环在计算着色器是崩溃我的视频卡驱动程序
- DirectX渲染视频
- 流媒体视频从DirectX到HTML5
- 当前渲染视频卡