如何在旧GPU上测试OpenGL应用程序?

时间:2017-03-16 23:28:44

标签: opengl testing gpu

我在一台相当新的机器上完成了所有开发工作,但我的一些用户使用的是石器时代的机器。它可以很容易地虚拟化旧的操作系统和不同的CPU架构,但我还没有找到任何方法来虚拟化旧的GPU。

当您开发针对旧版OpenGL的程序时,您如何知道它是否适用于具有较旧GPU的机器(较低的OpenGL版本和较少的可用扩展程序)?

有GPU仿真器吗?如何关闭GPU上的某些功能?

跟进:

使用为特定版本的API生成的扩展加载器怎么样?例如,如果我为OpenGL 2.1版生成glad文件,即使我的驱动程序支持更高版本,也会限制我的上下文版本?

3 个答案:

答案 0 :(得分:2)

从nvidia尝试NVEmulate我很久以前就开始使用它来模仿更新的 GPU 我没有我可以使用它但它也可以反过来使用它(降级你的GPU)。它只模拟 nvidia GPU 每个版本的exe都支持不同的芯片。

你的问题是,在旧的gfx卡上只有旧版本的gfx驱动程序,这些通常是主要问题,而不是gfx卡本身。除非使用适当的模拟器,否则你根本无法测试......因为旧驱动程序与新卡不兼容,反之亦然。

我正在解决这个问题,因为关闭高级内容,例如" bad"像英特尔 HD或 GLSL 这样的卡以及旧的 ATI 的一些扩展,因为您在Windows上具有所有棘手的 OpenGL 实现。 ..每个品牌都有自己的怪癖,如果您使用的是 OpenGL ,我建议定位 nvidia GPU 。为了公平起见 AMD 真正加强并使他们的(以前的 ATI )卡可以使用 ATI 多年未能管理的卡。如果您的目标是 DirecX ,那么 AMD 就像 nvidia DirectX 实施更改中有错误一样(可用但是包含内部泄漏导致慢速下降和随着时间的推移崩溃所以你需要重新启动应用程序时间你知道在玩了一个游戏2小时后的黑暗纹理bug ...)

PS。一些gfx错误与gfx无关,例如AMD驱动程序极易受到应用程序中任何地方内存泄漏的影响(即使它们与gfx无关)创建无关的破坏并且很难调试。

相关:

答案 1 :(得分:0)

据我所知,不可能涵盖所有可能性。

开发应用程序时,您最好了解必备条件,包括最低操作系统版本,最低OpenGL版本,RAM,VRAM。
处理核心功能通常在硬件中没有很好地实现......扩展可能是一场噩梦。

答案 2 :(得分:0)

ubuntu的

sudo add-apt-repository ppa:paulo-miguel-dias/mesa
sudo apt update
sudo apt upgrade

如果发生冲突,请使用dpkg -r ...。  说" mesa-vulkan需要mesa9所以没有安装"

sudo dpkg  -r mesa-vulkan 

辍学。

export LIBGL_ALWAYS_SOFTWARE=1
.....

在终端