LINUX.ORG.RU
ФорумGames

VSync и тормоза


0

0

Вот мучаюсь с такой проблемой. Если включить vsync, то например в quake3 на карте q3dm0 (на респауне, когда стоишь перед зеркалом) счётчик показывает 23 FPS. Выключаю vsync, на том же самом месте уже 35 FPS. С какой стати? Вот в readme дров nVidia написано, что Page Flipping работает только при включенном Sync To VBlank. Почему тогда скорость не увеличивается, а уменьшается?
Аналогично в rtcw: (уже не помню название карты, что-то там с ракетами) без vsync в тяжелых местах ниже 40 fps не опускается, а как врубишь, так в тех же самых местах 20 выдаёт, причём даже если упереться башкой в пол!
Такое же безобразие творится во всех остальных игрушках. Но меня возмутило больше всего то, что в маздае всё нормально! VSync мне нужен, потому что не выношу tearing (разрывы изображения) на высоких fps. Карточка fx5500.
Что я только не перепробовал. Дрова разные (6629, 7676,8174, 8178) ставил, xorg.conf перелопачивал, ядра 2.6.12 и 2.4.29 пробовал, телек отсоединял, ставил иксы 6.8.2 и 6.9.0... Ничего не помогает. Скажите кто-нибудь, это баг/фича/проблема с руками/в консерватории?

★★

> Что я только не перепробовал. Дрова разные (6629, 7676,8174, 8178) ставил, xorg.conf перелопачивал, ядра 2.6.12 и 2.4.29 пробовал, телек отсоединял, ставил иксы 6.8.2 и 6.9.0...

лучше бы потратил это время на раздачу листовок - на вырученные деньги купил бы нормальную видеокарту и гамал себе бы дальше.

anonymous
()
Ответ на: комментарий от anonymous

Моей видеокарты для моих скромных нужд вполне хватает. Меня волнует не скорость вообще, а её снижение при включенном VSync, какая разница, какая видуха? И почему в оффтопике проблема отсутствует? В общем как всегда, если по делу сказать нечего, начинаются издёвки.

RatMann ★★
() автор топика

Разобрался с причиной проблемы. Всё дело в Triple Buffering, а точнее в его отсутствии в Linux и наличии в mustdie. Дело в том, что если при включенном V-Sync FPS опускается ниже частоты вертикальной развёртки, то он автоматически "ополовинивается". То есть, например, разрешение 1024x768, частота 100Hz, Vsync ON. Пока FPS держится >100, то всё ок, но стоит ему упасть хоть на кадр <100, то всё, приехали, 50 FPS :( Хорошо еще что 100Hz, а если 70? Так что, уважаемый anonymous, не в карте дело. Единственное решение ополовинивания fps это форсирование triple buffering (или выключение vsync и "наслаждение" разрывами кадров). Эта опция появилась в win-forceware сравнительно недавно, так что есть надежда на реализацию и в Linux, хотя поиск по nvnews.net выдаёт только маздайные треды. Неужели линуксоиды настолько нетребовательны, что согласны терпеть tearing? :(

2anonymous: да я уж привык, не обижаюсь :)

RatMann ★★
() автор топика
Ответ на: комментарий от RatMann

>>если при включенном V-Sync FPS опускается ниже частоты вертикальной развёртки, то он автоматически "ополовинивается"<<

Бред сивой кобылы, уж извини. Проверил у себя игры с включенным Vsync - никакого ополовинивания частоты и в помине нет - 75Гц - частота обновления монитора - специально запускал UT2004 и Q4 с такими настройками, чтбоы скорость скакала между 60-90 фпс (может я раньше слеп был). НИКАКОГО ополовинивания. Просто скорость не поднимается ВЫШЕ 75 фпс (максимум частоты обновления моника) - так и скачет - между 60 и 75 фпс. Так что, сэр - причина - не в линухах и не в трипл буфферинге, а - 1. в настройках, 2. косожопом железе. Ройте.

YagMort ★★
()
Ответ на: комментарий от YagMort

>Бред сивой кобылы, уж извини

Ты меня тоже извини, но скажи то же самое людям вот отсюда:

http://www.nvnews.net/vbulletin/showthread.php?t=54736 http://www.nvnews.net/vbulletin/archive/index.php/t-25303.html http://www.nvnews.net/vbulletin/archive/index.php/t-8968.html http://www.nvnews.net/vbulletin/archive/index.php/t-34026.html http://www.nvnews.net/vbulletin/printthread.php?t=41192

Несколько цитат если лень искать:

>With basic vsync your fps is halved when it cannot match the refresh rate. So if you have a refresh of 100, it drops all the way to 50fps even if you could actually do 99fps. So its a pretty useless and outdated tech. Nvidia doesnt support tripple buffering that is capable of syncing each frame to each refresh frame enabling you to get any amount of fps without tearing or slowdown.

>To benefit with Triple buffer you must be using an OpenGL game/application and have vsync turned on. Then if your framerate happens to drop below your refresh rate then your FPS will not get cut in half. If your framerate never drops below your refresh rate with vsync enabled then triple buffer probably won't make any noticable difference.

>When I enable Vertical Sync in games something weird happens. The FPS are either 30 or 60. If it can render 60 it jumps to 60, if it drops below 60 the frames automatically drop to 30. Is this normal behavior for Vertical Sync on an LCD? ... In a word - yes, unless the game supports triple buffering..

>Why, when Vsync is disabled, would a scene give me 65 fps, but as soon as I enable Vsync, that same scene shows 35 fps?? ... Because if the video card can't render what the screen wants fast enough with vsync enabled, it will cut the frame rate in half. This is simply what vsync does and there's not much you can do about it, save for enabling triple buffering. And that's only something that the application itself can do for a Direct3D game.

У буржуев с того форума явно не косожопое железо.

Если всё равно не веришь, то загрузи венду, включи vsync, _выключи_ triplebuffering в дровах (TB форсируется только в OGL) и запусти какую-нибудь OpenGL игруху (только не ut2004/q4, вдруг TB у них "встроен"?) с дикими настройками. Если ты всё равно не увидишь никакого ополовинивания fps, то даже не знаю что и сказать. Наверное у тебя железо волшебное.

>причина - не в линухах и не в трипл буфферинге, а в настройках

Хотелось бы верить, но что уже настраивать-то?

RatMann ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.