我所有的开发都是在一台相当最新的机器上进行的,但我的一些用户使用的是石器时代的机器。很容易虚拟化旧操作系统和不同的CPU体系结构,但我还没有找到任何方法来虚拟化旧的GPU。
当您开发一个针对较旧版本的OpenGL的程序时,如何知道它是否能在具有较老GPU(较低的OpenGL版本和较少的可用扩展)的机器上工作?
有GPU模拟器吗?关闭GPU上某些功能的方法?
后续行动:
如何使用为API的特定版本生成的扩展加载器呢?例如,如果我为高兴的,乐意的版本2.1生成一个OpenGL文件,这会限制我的上下文版本,即使我的驱动程序支持更高的版本吗?
发布于 2017-03-17 09:46:20
尝试一下nvidia的NVEmulate,我开始使用它来模仿我没有的更新的GPU,但它也可以反过来使用(降低GPU的等级)。它只模仿nvidia GPU的每个版本都支持不同的芯片。
您的问题是,在旧的gfx卡上,只有旧版本的gfx驱动程序,而这些通常是主要问题,而不是gfx卡本身。除非使用适当的仿真器,否则你根本无法测试.因为旧的驱动程序与新卡不兼容,反之亦然。
为了解决这个问题,我关闭了诸如、Intel、、HD或GLSL之类的“坏”卡的多个上下文,以及对旧ATI的一些扩展,因为您在Windows上都有非常好的OpenGL实现.每个品牌都有自己的怪癖,如果你在使用OpenGL,我建议你把目标对准nvidia GPU。公平地说,AMD确实提高了他们的(前ATI)卡的可用性,而ATIE 222多年来一直无法管理)。如果您的目标是DirecX,那么AMD是一种方式,因为nvidia在DirectX实现中存在用于更改的bug (可用,但包含内部泄漏,导致缓慢下降和随着时间的推移而崩溃,因此您需要在玩了2小时的游戏之后,不时地重新启动App,以了解暗纹理错误……
PS。一些gfx错误与gfx无关,例如AMD驱动程序在应用程序中的任何地方都极易受到内存泄漏的影响(即使它们与gfx无关),造成了无关的破坏,并且很难调试。
有关:
发布于 2017-03-16 23:47:42
据我所知,不可能涵盖所有的可能性。
当你开发你的应用程序时,你最好知道它的要求,包括最小的操作系统版本,最小的OpenGL版本,内存,VRAM。
处理核心功能通常在硬件中不能很好地实现.扩展可能是一场噩梦。
发布于 2017-03-17 13:59:53
ubuntu
sudo add-apt-repository ppa:paulo-miguel-dias/mesa
sudo apt update
sudo apt upgrade如果发生冲突,请使用dpkg -r ...。说“台面-瓦尔坎需要mesa9,所以没有安装”
sudo dpkg -r mesa-vulkan 退出。
export LIBGL_ALWAYS_SOFTWARE=1
.....在终端
https://stackoverflow.com/questions/42846618
复制相似问题