关于N卡如何关闭垂直同步
Tofloor
poster avatar
xuey
deepin
2020-07-28 02:20
Author
下载了CS1.6,最高帧率只有59-60FPS,在Windows下关闭垂直同步可以到99FPS,在Linux下的450 nvidia设置里没有禁用“同步到VBlank”的复选框;以下方案中用最后那个命令启动游戏,我试了一下,还是限制在60FPS,有大佬知道怎么操作吗?

---------------------------------------------------------------------------------------------------------------------
linux - 禁用glxgears的垂直同步
有时您需要检查Linux 3D加速是否真的有效(除了glxinfo输出)。 这可以通过glxgears工具快速完成。 然而,FPS通常限于显示器垂直刷新率(即60fps)。 因此,该工具或多或少变得无用,因为即使是软件渲染也可以在现代CPU上轻松生成60FPS的glxgears。
我发现很难找到一个快速简单的解决方案,我回答了我自己的问题。 希望它可以节省您的时间。

linux
3d
glx

willsteel asked 2019-05-29T07:47:40Z


[size=1.2em]7个解决方案

94 votes

vblank_mode环境变量可以解决这个问题。 然后,您应该在现代硬件上获得数百FPS。 而且您现在可以将结果与其他人进行比较。
$>   vblank_mode=0 glxgears

willsteel answered 2019-05-29T07:47:55Z

52 votes

如果您使用的是NVIDIA闭源驱动程序,则可以使用__GL_SYNC_TO_VBLANK环境变量动态改变垂直同步模式:
~$ __GL_SYNC_TO_VBLANK=1 glxgearsRunning synchronized to the vertical refresh.  The framerate should beapproximately the same as the monitor refresh rate.299 frames in 5.0 seconds = 59.631 FPS~$ __GL_SYNC_TO_VBLANK=0 glxgears123259 frames in 5.0 seconds = 24651.678 FPS
这对我来说在Ubuntu 14.04上使用346.46 NVIDIA驱动程序。


ali_m answered 2019-05-29T07:48:28Z

25 votes

适用于英特尔显卡和AMD / ATI开源图形驱动程序
找到nvidia-settings的“设备”部分,其中包含以下指令之一:
  • nvidia-settings
  • nvidia-settings
  • nvidia-settings
并将以下行添加到该部分:
Option     "SwapbuffersWait"       "false"
并将nvidia-settings环境变量设置为X Screen 0 / OpenGL Settings / Sync to VBlank运行您的应用程序:
$ vblank_mode=0 glxgears对于Nvidia图形与专有的Nvidia驱动程序$ echo "0/SyncToVBlank=0" >> ~/.nvidia-settings-rc
通过取消选中X Screen 0 / OpenGL Settings / Sync to VBlank的选项,可以在nvidia-settings GUI中进行相同的更改。或者,如果您只是在不修改~/.nvidia-settings-rc文件的情况下测试设置,则可以执行以下操作:
$ nvidia-settings --load-config-only --assign="SyncToVBlank=0"  # disable vertical sync$ glxgears  # test it out$ nvidia-settings --load-config-only  # restore your original vertical sync setting

nocnokneo answered 2019-05-29T07:49:44Z

6 votes

在nvidia-settings(OpenGL设置选项卡)中禁用“同步到VBlank”复选框对我来说非常有用。


neutro answered 2019-05-29T07:50:14Z

4 votes

我找到了一个解决方案,可以在英特尔卡和使用大黄蜂的nvidia卡中使用。
>   export vblank_mode = 0
用glxgears
...
optirun glxgears
...
export vblank_mode = 1


olmerg answered 2019-05-29T07:51:21Z

2 votes

对于英特尔驱动程序,也有这种方法
禁用垂直同步(VSYNC)
英特尔驱动程序使用三重缓冲进行垂直同步,这样可以实现全面的性能并避免撕裂。 要关闭垂直同步(例如,用于基准测试),请在主目录中使用此.drirc:
               

kevinf answered 2019-05-29T07:52:01Z

1 votes

综上所述,这是一个可以工作的命令行:
env vblank_mode=0 __GL_SYNC_TO_VBLANK=0 glxgears
这具有为Mesa和NVidia驱动程序工作的优点,并且不需要对配置文件进行任何更改。
玩笑


Krellan answered 2019-05-29T07:52:37Z

translate from https://stackoverflow.com:/questions/17196117/disable-vertical-sync-for-glxgears





Reply Favorite View the author
All Replies
avatar
kyy_1
deepin
2020-07-28 02:33
#1
游戏里面关,没有吗?
Reply View the author
Comments
xuey
2020-07-28 03:18
没有