15

更具体地说,一个桌面 libGDX-LWJGL 应用程序。有一些配置选项可以禁用 CPU 同步以及 vsyncing,但无论应用程序以 60fps 运行。

这对于所有实际用途都很好-但出于好奇,如果没有别的,我想看看帧率可以达到多高。

4

3 回答 3

40

由于图书馆的变化, Rode Hyde的答案不再正确。试试这个:

LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
config.vSyncEnabled = false; // Setting to false disables vertical sync
config.foregroundFPS = 0; // Setting to 0 disables foreground fps throttling
config.backgroundFPS = 0; // Setting to 0 disables background fps throttling

此外,如果可能,请确保 GPU 上的任何硬件 vsync 都已关闭,正如@RodHyde 提到的那样。

于 2014-01-12T00:59:32.680 回答
7

答案很大程度上取决于您的 CPU 和显卡的速度,但是如果您在创建应用程序时尝试如下配置,并在显卡上禁用 vsync,那么这应该会非常困难。

LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration();
cfg.title = "Framerate test";
cfg.width = 1280;
cfg.height = 720;
cfg.fullscreen = false;  
cfg.useGL20 = false;
cfg.useCPUSynch = false;
cfg.forceExit = true;  
cfg.vSyncEnabled = false;

禁用 vsync 将在您的显卡设置中的某个位置。在我的 nVidia 卡上,它在选项中显示为“垂直同步”。它被设置为“自适应”,将帧速率限制在 60fps,但在将其设置为“关闭”后,我看到 > 4000fps(由 fraps 测量

于 2013-02-26T21:06:19.773 回答
3

cfg.useCPUSynch好像已经取出来了。设置cfg.foregroundFPS为一些大数字反而对我有用。

于 2013-08-27T09:55:18.800 回答