我有限的FPS:60(My limited FPS : 60)

2019-07-30 05:17发布

我已经学会了一些time.And我发现了一个很奇怪的现象的OpenGL编程:我的FPS(帧每秒)始终保持约60%,不管该程序是很容易的还是有点complicated.Actually,我的电脑是去年买的,并性能good.The显卡是NVIDIA GTX570,CPU是I7。

所以我做一个实验:在我的电脑上运行同一程序和我的朋友的computer.This程序实现了阴影映射:

在我的电脑的FPS是大约60但是,当我在朋友的电脑上运行它时,FPS超过400。

但我的电脑的性能比his.Now我张贴我们的电脑的参数明显更好。

我的电脑:

tgt.init (Info)  GLEW version: 1.7.0
tgt.GpuCapabilities (Info)  OS version: Windows 7 (build 7600)
tgt.GpuCapabilities (Info)  OpenGL Version: 4.2.0
tgt.GpuCapabilities (Info)  OpenGL Renderer: GeForce GTX 570/PCIe/SSE2
tgt.GpuCapabilities (Info)  GPU Vendor: NVIDIA Corporation (NVIDIA)
tgt.GpuCapabilities (Info)  Texturing: yes, max size: 16384, 3D: yes, max 3D size: 2048
tgt.GpuCapabilities (Info)  Texture features: 32 units, NPOT, rectangles, compression, 16x anisotropic
tgt.GpuCapabilities (Info)  Framebuffer Objects: yes, max 8 color attachments
tgt.GpuCapabilities (Info)  Shaders: yes (OpenGL 2.0), GLSL Version 4.20, Shader Model 5.0
tgt.GpuCapabilitiesWindows (Info)  Graphics Driver Version: 8.17.12.9573
tgt.GpuCapabilitiesWindows (Info)  Graphics Driver Date: 2012-02-09
tgt.GpuCapabilitiesWindows (Info)  Graphics Memory Size: 1280 MB

我的朋友的电脑:

 tgt.GpuCapabilities (Info)  OS version: Windows 7 Service Pack 1 (build 7601)
tgt.GpuCapabilities (Info)  OpenGL Version: 4.2.11566 Compatibility Profile Context
tgt.GpuCapabilities (Info)  OpenGL Renderer: AMD Radeon HD 6620G
tgt.GpuCapabilities (Info)  GPU Vendor: ATI Technologies Inc. (ATI)
tgt.GpuCapabilities (Info)  Texturing: yes, max size: 16384, 3D: yes, max 3D size: 8192
tgt.GpuCapabilities (Info)  Texture features: 16 units, NPOT, rectangles, compression, 16x anisotropic
tgt.GpuCapabilities (Info)  Framebuffer Objects: yes, max 8 color attachments
tgt.GpuCapabilities (Info)  Shaders: yes (OpenGL 2.0), GLSL Version 4.20, Shader Model 5.0
tgt.GpuCapabilitiesWindows (Info)  Graphics Driver Version: 6.14.10.11566
tgt.GpuCapabilitiesWindows (Info)  Graphics Driver Date: 2012-03-09
tgt.GpuCapabilitiesWindows (Info)  Graphics Memory Size: 512 MB

我很好奇,我想不出它我out.Should做显卡的一些设置?难道有人告诉我怎么解决这个问题?

Answer 1:

这是垂直同步工作。 您的显示器在60赫兹运行,因此现在是在渲染更多的帧没有意义的。 并通过限制这样的帧率,不会有撕裂假象 。

有可能是你的驱动程序的控制面板启用或禁用强制VSYNC,或者把它留到应用程序的设置。

如果你使用像GLUT或GLFW OpenGL的框架,这可能也有一个选项,明确要求垂直同步,或将其关闭(这是为标杆有用)。 并非所有的驱动程序/设置将兑现这一点,虽然。



Answer 2:

@Thomas说什么,它的垂直同步。

您可以使用您的一个应用禁用它:

  • GLFW: glfwSwapInterval(0);0 =关, 1 =上)
  • SDL: SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, 0);
  • FreeGLUT:我不知道这是可能的,用你的GPU设置作为备用


Answer 3:

nVidia Control Panel

垂直同步设置是你关心的人。 对于这样的基准,通常要其设置为off



文章来源: My limited FPS : 60