我正在使用LWJGL和OpenGL以及最近的Windows更新之后开展一个项目,
表现大幅下降
我的系统是lenovo Z50笔记本电脑,840m(2gb VRAM)作为专用和4400高清显卡集成,不知怎的,他们似乎表现相同。
这是一个示例控制台输出:
INTEGRATED:
VGL 0.1 | OpenGL 4.3.0 - Build 20.19.15.4642
GL_VENDOR : Intel
GL_RENDERER : Intel(R) HD Graphics 4400
Rendering >> 10000 sprites !
FPS : 357, UPS : 59
FPS : 396, UPS : 60
FPS : 401, UPS : 60
**DEDICATED:**
VGL 0.1 | OpenGL 4.6.0 NVIDIA 391.01
GL_VENDOR : NVIDIA Corporation
GL_RENDERER : GeForce 840M/PCIe/SSE2
Rendering >> 10000 sprites !
FPS : 351, UPS : 59
FPS : 416, UPS : 60
FPS : 417, UPS : 60
很奇怪,因为我在每个游戏/图形密集型应用程序中使用840m的性能提高了50%
我尝试重新安装我的GPU驱动程序,恢复到之前版本的Windows,
调整NVIDIA控制面板中的设置,但我还没有能够再次使用它。
PS:我正在为我的GPU运行最新的驱动程序
答案 0 :(得分:2)
我正在使用LWJGL和OpenGL进行项目,在最近的Windows更新后,性能急剧下降
如果这是因为为了发现/发布Meltdown / Spectre攻击向量而引入的缓解措施,我不会感到惊讶。混合图形的工作方式是,专用GPU将进行一些渲染,然后将结果复制到显示器所连接的集成图形适配器的内存中。
此复制操作由驱动程序控制,并且在内核/用户空间之间需要几次跳转才能进行协调(也可能涉及上下文切换)。然而,Meltdown攻击向量在每个内核/用户空间交换机的地址空间管理中增加了一些开销,遗憾的是,这些开关很难解决任何必须与地址空间一起工作的问题......这也包括管理内存上设备之间的复制操作的任何内容。用户空间(例如图形应用程序的渲染目标缓冲区和合成器的源图像缓冲区)。
我们可能会看到驱动程序优化来处理这一新现实,并取回一些性能。
那令人沮丧的说法:对于超出事物被推到显示器的速率的任何帧速率,无论如何都会浪费传输带宽。