Почему vblank_mode значительно улучшает частоту кадров в тестах?

8

Я бездельничаю, пытаясь найти лучшее графическое решение для моего ноутбука с Optimus Nvidia. (ASUS K55VD)

У меня запущен шмель, и я использую optirun, когда хочу улучшить производительность графики. Единственная проблема в том, что я не знаю, действительно ли это работает.

Когда я выполняю, например. glxgears я получаю следующие результаты производительности:

обычные glxgears для графики Intel: около 60 FPS
optirun glxgears для графики NVIDIA: около 1300 FPS

Ну, это выглядит хорошо, я думаю ..

Мое удивление начинается, когда я выполняю с vblank_mode = 0 перед обеими командами:

vblank_mode = 0 glxgears дает: около 5000 FPS
vblank_mode = 0 optirun glxgears дает: около 1400 PFS

Почему я получаю такие странные результаты?

dhojgaard
источник

Ответы:

9

vblank_mode=0 говорит графической карте игнорировать частоту обновления вашего монитора и просто пытается достичь максимального значения fps, на которое он способен.

Вы обычно этого не хотите, потому что это приводит к разрыву и бесполезному расходу заряда батареи (вы не можете просматривать больше, чем, в вашем случае, 60 кадров в секунду, потому что ваш монитор не может изменять то, что отображается более 60 раз в секунду ).

Иногда вы можете этого захотеть (например, в онлайн-шутерах, таких как cs: go), потому что в противном случае у вас будет много задержек ввода. Это компромисс между задержкой ввода и разрывом экрана.

Я думаю, что optirun устанавливается vblank_mode=0по умолчанию, поэтому он не меняется независимо от того, указываете вы его или нет. primusrun не делает, и это также заглушки на 60 кадров в секунду без vblank_mode=0.

bercio
источник
Хорошо, спасибо. Итак, как бы вы сравнили primusrun и optirun, чтобы увидеть разные результаты?
dhojgaard
вы бы действительно использовали vblank = 0 для всех случаев. Я считаю, что primusrun должен превосходить optirun во всех случаях. вот некоторые тесты: reddit.com/r/linux/comments/1dafbl/…
bercio