更具体地说,一个桌面 libGDX-LWJGL 应用程序。有一些配置选项可以禁用 CPU 同步以及 vsyncing,但无论应用程序以 60fps 运行。
这对于所有实际用途都很好-但出于好奇,如果没有别的,我想看看帧率可以达到多高。
更具体地说,一个桌面 libGDX-LWJGL 应用程序。有一些配置选项可以禁用 CPU 同步以及 vsyncing,但无论应用程序以 60fps 运行。
这对于所有实际用途都很好-但出于好奇,如果没有别的,我想看看帧率可以达到多高。
由于图书馆的变化, 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 提到的那样。
答案很大程度上取决于您的 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 测量)。
cfg.useCPUSynch
好像已经取出来了。设置cfg.foregroundFPS
为一些大数字反而对我有用。