OpenGL在我的计算机上性能低下
OpenGL low performances on my computer
我们从学校开始学习OpenGL,特别是实现了.obj
网格加载器。当我在学校用相当重的网格(4M到17M个面)运行代码时,我必须等待几秒钟才能加载网格,但一旦加载完成,我就可以以完美的流动性旋转和移动场景。
我在家里编译了同样的代码,在显示重网格的场景中移动时,性能非常低。
我使用的是OpenGL的3.0 Mesa 10.1.3
版本(这是cout << glGetString(GL_version) << endl
的输出),并使用g++-4.9
进行编译。我不记得我学校的版本号了,但如果需要,我会尽快更新我的消息。最后,我在Ubuntu 14.04上,我的显卡是Nvidia Geforce 605,我的CPU是Intel(R)Core(TM)i5-2320 CPU@3.00GHz。
如果你有任何想法可以帮助我理解(并修复)为什么它在一台相当好的计算机上运行如此缓慢(当然不是赛马,但足够好),请告诉我。提前感谢!
TL;DR:你用错了驱动程序。安装NVidia的专有闭源二进制驱动程序,您将获得非常好的性能。此外,使用GeForce 605,您应该可以获得一些OpenGL-4.x支持。
我使用的是OpenGL的3.0 Mesa 10.1.3版本(…)我的显卡是Nvidia Geforce 605
这就是你的问题。Mesa的NVidia GPU的开源"Noveau"驱动程序距离提供任何合理的硬件加速支持都有很长的路要走。这是因为NVidia没有发布公开的GPU低级别编程文档。
因此,目前在GPU上获得硬件加速OpenGL的唯一选择是安装NVidia的专有驱动程序。它们可以在NVidia的网站上找到;然而,由于你的GPU现在不是"出血边缘",我建议你使用那些可以通过软件包管理器安装的;不过,您必须添加一个"非自由"包源存储库。
这与AMD GPU形成了鲜明对比,后者拥有完整的文档覆盖范围,可以公开访问。正因为如此,梅萨的"radeon"车手相当成熟;完整的OpenGL-3.3核心支持,性能对于大多数应用程序来说都足够好,在某些应用程序中甚至优于AMD的专有驱动程序。OpenGL-4对Mesa的支持正在进行中,上次我检查"radeon"驱动程序的开发速度实际上比Mesa OpenGL状态跟踪器本身更快。
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- OpenMP阵列性能较差
- 递归列出所有目录中的C++与Python与Ruby的性能
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- 大小相等但成员数量不同的结构之间的性能差异
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- 为什么constexpr的性能比正常表达式差
- 在类中使用随机生成器时出现性能问题
- 在main()之外初始化std::vector会导致性能下降(多线程)
- 海湾合作委员会 ARM 性能下降
- GCC 和 Clang 代码性能的巨大差异
- 在容量内调整矢量大小时的性能影响
- 为什么我能够为阵列分配比计算机实际拥有的内存更多的内存
- 了解算法的性能差异(如果以不同的编程语言实现)
- 未达到的情况会影响开关外壳性能
- 我可以使用任何好的逻辑来阻止计算机将 O 放在井字游戏中的现有 X 上
- QStringList vs list<shared_ptr<QString>> 性能比较C++
- 是否总是可以将使用递归编写的程序重写为不使用递归的程序C++,性能观点是什么?
- 哪种方法更好,性能明智
- 如何以跨平台的方式在 C/C++ 中测试计算机的实际一般性能