强迫机器使用专用显卡
Forcing Machine to Use Dedicated Graphics Card?
我是一个使用c++与SDL和OpenGL开发应用程序的团队的一员。
在笔记本电脑上,当应用程序运行时,专用显卡未被使用,并且GL上下文无法创建,因为集成显卡不支持我们想要的GL版本。
我有一种感觉,这个问题是有问题的笔记本电脑特有的,不是我们可以通过代码解决的。但是,如果有人知道是否有一个解决方案,那就太好了。
从c++中确保在Windows下使用专用显卡而不是芯片组可切换显卡的最简单方法是导出以下符号(MSVC示例代码):
启用NVIDIA专用显卡:
extern "C"
{
__declspec(dllexport) unsigned long NvOptimusEnablement = 0x00000001;
}
为AMD Radeon启用专用显卡:
extern "C"
{
__declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1;
}
警告:如果用户已经为应用程序创建了使用集成芯片组的配置文件,那么这些将无法工作。
我不确定这是否会在Linux/MacOS下类似地工作(不太可能)。
是否使用NVidia专用显卡?据我所知,从集成到专用的自动切换过程是基于应用程序配置文件的。您的应用程序不在已知3D应用程序的驱动程序列表中,因此用户必须手动切换到专用GPU。
尝试将应用程序的可执行名称更改为驱动程序查找的名称。例如"doom3 .exe"。如果这有效,那么您就找到了问题所在。
如果这没有帮助,试着按照下面的说明让驱动程序将你的应用程序插入到它的3D应用程序列表中:
https://nvidia.custhelp.com/app/answers/detail/a_id/2615/~/how-do-i-customize-optimus-profiles-and-settings但以上只是为了验证这是否确实是您的问题。对于这个问题的实际解决方案,您应该咨询图形驱动程序供应商(AMD和NVidia),了解将应用程序配置文件插入其列表的最佳方法。NVidia提供NVAPI, AMD提供ADL和AGS。
相关文章:
- 使用专用显卡进行 OpenGL 渲染时帧速率较低
- Vulkan 的传输队列系列功能和显卡支持:条件检查是否准确?
- OpenGL 片段着色器未在英特尔 HD 4000 显卡上编译
- 没有专用显卡的 Direct2D 与 GDI+
- 集成显卡上的 OpenGL 访问冲突
- 我应该将哪个 opengl 库与 nvidia 显卡一起使用
- 为什么 vulkan 会报告具有集成显卡和 GPU 的系统中的单个设备
- 是否可以将功能卸载到显卡
- 窗口闪烁,在 NVIDIA 显卡上呈现 OpenGL
- 英特尔集成显卡错误识别 (DXGI)
- 有没有使用显卡的方法(除了CUDA和OpenCL)
- GTX 550 Ti显卡支持动态并行编程
- 在显卡上运行应用程序
- glAccum(模糊效果)工作与一个显卡,但不是另一个
- 本机显卡功能
- c++如何检测显卡模型
- 在ubuntu上运行cuda -它是否需要一个本地设备驱动程序(使用nvidia显卡)
- 强迫机器使用专用显卡
- OpenGL -某些显卡上的问题
- 在firemonkey中评估画布渲染的显卡性能