24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Почему в одних играх v-sync приводит к задержке, а в других нет?
>>2486875 Когда я включаю в-синк например в кс го я явно чувствуют инпут лаг. Но есть игры где всинк по дефолту прописан в код игры и я не чувствую лага.
>>2486843 (OP) Во-первых, зависит от игры - в гоночках или шутерах задержка чувствуется лучше, чем в слешерке заточенном под 30 фпс. Во-вторых, таки есть разные всинки. Двойной буфер имеет небольшую задержку, но режет фпс пополам, если фпс ниже частоты развертки. Тройной буфер режет всего на треть и дает охуенно плавную картинку, но и лаг гораздо заметнее. Еще есть адаптивный Vsync который просто отключается если фпс низкий, в меню написано что включен, а на самом деле нет.
А еще в винде есть клевый баг, если отключить Aero, то в оконном режиме всинк не пашет(и много чего еще), я долго гадал почему в некоторых играх всинк не хочет работать.
>>2486843 (OP) Потому что если разрабы предпримут специальные меры (с таймингом), то задержку можно сильно уменьшить. Если они этого не сделали, есть костыль - любым способо ограничь фреймрейт в целевую цифру (равную частоте моника или на 1-2 ниже)
Лучше объясните мне, откуда появляются эти разрывы, которые фиксит всинк, играл спокойно, а месяца три назад начали появляться разрывы в тех играх где их небыло
>>2486884 В первом случае тебе доступны оба варианта, а значит можешь сравнить между собой отсутствие и наличие всинка, а во втором случае такой возможности нет, сравнивать не с чем, вот и не видно РАЗНИЦЫ. А какая может быть разница если вариант всего один?
>>2486956 >А еще в винде есть клевый баг, если отключить Aero, то в оконном режиме всинк не пашет Давно известный факт в определенных узких кругах. Недавно попал и сразу узнал.
>>2487151 В смысле? Я играл, потом ни с того, ни с сего начинаются это полосы на экране, может с железом связано? У меня просто проц говно, при не плохой видеокарте
>>2487135 Ты долбоеб или прикидываешься? Я тебе сказал отчетливо что не чувствую инпут лага, какая нахуй разница какая игра и какие варианты, когда оно есть я это вижу когда нет тоже вижу.
>>2487248 Поэтому и не чувствуешь, что сравнить не с чем, так же как некоторые не чувствуют разницу между 30 и 60 fps, потому что 60 у них никогда не было, вот и 30 - идеально плавно, никаких тормозов, а 60 не нужно, ведь то же самое. Суть в том, что судить по одному, без сравнения с другим, - невозможно, так работает мозг, тебе кажется хуйня.
>>2487287 Нет, так ты видишь только огромный лаг, ну как 10 fps любой будет видеть, что тормозит, даже без сравнения, но разницу между 30 и 60 не увидит без сравнения, хотя она тоже серьезна. Суть в том, что ты жрешь говно без выбора, но если бы сравнил, то назад уже бы не хотел возвращаться.
>>2487134 Ну смотри, на видюхе есть условно область памяти, из которой непрерывно построчно на твой моник отправляется картинка, в эту же память все так же пишутся данные текущего кадра игры. Обе операции происходят независимо друг от друга и может случиться такая фигня, что на середине отправки кадра на моник, видюха срендерила новый кадр и отправила его в эту память. Итого выходит, что у тебя на монитор попала верхняя половина старого кадра и нижняя половина более нового. Суть вертикальной синхронизацции- ждать, когда закончится полный цикл чтения картинки для моника и только тогда подменять на новую. В этом суть любой вертикальной синхронизации, разные ее виды- лишь попытки по разному скомпенсировать задержку, которая неизбежна.
Видюха никогда не пишет в память одного кадра одновременно. Области всегда две, одна для отображаемого кадра, а вторая для рисуемого кадра. Когда рисуемый "задний" кадр готов, они просто меняются местами, это происходит мгновенно, на аппаратном уровне, а значит новый кадр появляется на экране мгновенно, сразу весь, наложения друг на друга быть не может в принципе.
>>2487023 Ты лучше скажи во что ты такое играешь и замечаешь лаг? Я вот не замечаю. И этому есть объяснение - руль и так поворачивается плавно, а после поворота колес основная часть реакии машины относительно дороги тоже не сразу следует - тут природная задержка огромна, всинк по сравнению с ней не так велик. Вот если рулить напрямую - мышкой или рулем - тогда да, хотя бы чисто визуально заметно. >>2487143 Осу?
>>2488996 Ниндзя режет как бамбук. А когда всинк включаешь у ниндзи отнимают оружие и он просто мешает двигать камеру, поэтому она медленнее двигается.
>>2487327 Ладно, палю секрет: в моник картинка не мгновенно переносится. А постепенно почти на всем протяжении времени от одного кадра к следующему. Это в vga, слово vsync оттуда - это небольшой промежуток времени между кадрами, когда электронометатеть переносится из конца монитора в начало. чтобы приступтиь к новому кадру. Хм, а в новых форматах не сделали быстрее что ли? Никогда не слышал, что через дисплейпорт меньше тиринга например, хотя по идее можно вообразить такой формат где он минимизируется за счет скорости передачи.
>>2489017 Скорость передачи и ВГА нехреновая, проблема-то в самом факте несинхронности между картой и моником, скорость передачи тут никаким боком, разве что сразу весь кадр кидать за один такт через кабель толщиной в руку.
>>2488996 Проблема в мониторах, а точнее в их аналоговости. Дело в том, что аналоговый сигнал, начиная с кинокамеры, снимающей аналоговый мир, и заканчивая ЭЛТ монитором использует сканирование - быстрая пробежка по всей картинке постоянно, много-много раз в секунду, т.к. это единственный способ передать аналог или перевести его в цифру или наоборот. Поэтому традиционно во всех протоколах передачи видеоданных используется сканирование, т.е. частота кадров, даже в цифровых типа HDMI, ведь они в конце концов сделаны для передачи аналога с теле и кино-камер, которые используют сканирование.
А на детские игрульки большие серьезные дяди, придумывающие эти стандарты, срали с высокой колокольни. В результате, в играх, которые сами по себе цифровые и дисплеи тоже цифровые, сканирование нахуй не нужно, ведь монитор просто может сообщить, что закончил рисовать очередной кадр и дисплей его нарисует. Не нужно никакое сканирование, никакая частота кадров, и не может быть никакого тиринга. Но из за легаси кинцового аналогового говна, эмуляция которого нагорожена поверх цифры, мы имеем что имеем - тиринг, инпут лаг. Жрите кинцо, не подавитесь.
>>2490441 Воображать и не надо, уже есть стандарт Adaptive-Sync, передающий данные о кадрах, теперь только дождаться когда nvidia высунет голову из жопы со своим GSync и перестанет тормозить прогресс.
>>2490454 Ну там не на этом принипе основано, как я понимаю, но решение еще более лучшее, да. И ничто не мешает покупать карточки от амд. Буду не нищим сразу куплю моник с такой хренью.
>>2490723 Вместо того, чтобы использовать открытый и независимый стандарт, крупнейший игрок на рынке заставляет производителей мониторов лепить свой проприетарный чип, который ни с чем больше не будет работать.
>>2491839 Нет. Карта просто рисует изображения так быстро как может, и отправляет самую последнюю сделанную когда монитор будет готов к отрисовке нового кадра.
>>2491895 Это и есть тройной буфферинг, дубина. Только в fast sync отключен пререндер кадров, из-за чего на фпс ниже 2х от частоты развертки начинается лютый статтеринг.
>>2490441 Дело в том что скорость передачи не может быть бесконечно быстрой. Например в FullHD один кадр весит 6 мб 1920 х 1080 х 24 бит / 8 / 1024^2 = 5.93 мб и умножить это на 60гц, то получим 356 мб в секунду.
На самом деле скорость передачи немного больше чем выше указана, так как кроме самой картинки, еще идут пустые строки front и back porch, и vblank. Плюс еще 25% оверхед кодировки 8b10b. Понимаешь в чем проблема? Скорость передачи и так уже очень быстрая, а если бы ты хотел, чтобы кадр передавался практически мгновенно, то скорость нужно было бы увеличить в сотни раз, что очень дорого. Поэтому передача и идет построчно и так же отображается на мониторе – строка за строкой. Именно из-за этой построчной передачи и видны разрывы картинки (tearing), так как монитор находится среди какой-нибудь строки, а видеокарта подсовывает ему уже следующий кадр (buffer swap). Но монитор не может начинать с первой строки, он продолжает рисовать строку на том месте, где и остановился на предыдущем кадре, только теперь из нового кадра, и бац мы видим разрыв картинки. Во поэтому и существует вертикальная синхронизация. В таком режиме видеокарта меняет буферы местами только тогда, когда монитор отрисовал последнюю строку кадра. Отсюда и название "вертикальная", потому что кадр рисуется сверху вниз, а не мгновенно.