集成显卡的性能与OpenGL应用程序专用的相同/更快

时间:2018-03-11 14:35:04

标签: opengl rendering lwjgl

我正在使用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运行最新的驱动程序

1 个答案:

答案 0 :(得分:2)

  

我正在使用LWJGL和OpenGL进行项目,在最近的Windows更新后,性能急剧下降

如果这是因为为了发现/发布Meltdown / Spectre攻击向量而引入的缓解措施,我不会感到惊讶。混合图形的工作方式是,专用GPU将进行一些渲染,然后将结果复制到显示器所连接的集成图形适配器的内存中。

此复制操作由驱动程序控制,并且在内核/用户空间之间需要几次跳转才能进行协调(也可能涉及上下文切换)。然而,Meltdown攻击向量在每个内核/用户空间交换机的地址空间管理中增加了一些开销,遗憾的是,这些开关很难解决任何必须与地址空间一起工作的问题......这也包括管理内存上设备之间的复制操作的任何内容。用户空间(例如图形应用程序的渲染目标缓冲区和合成器的源图像缓冲区)。

我们可能会看到驱动程序优化来处理这一新现实,并取回一些性能。

那令人沮丧的说法:对于超出事物被推到显示器的速率的任何帧速率,无论如何都会浪费传输带宽。