Top.Mail.Ru
Ответы

Почему в играх без Vsync в полном окне картинка разрезается, а в оконном нет?

Почему в играх к примеру майнкрафт, когда я выключаю Vsync то в полноэкранном режиме картинка разрывается а в оконном нет? Если возможно как сделать так что бы картинка не разрывалась в полном окне, мой монитор вроде поддерживает Gsync, я посмотрел в настройках монитора и включил, и в параметрах инвидиа тоже но все равно нет результата.

По дате
По рейтингу
Аватар пользователя
Просветленный

А теперь нормальный ответ от человека. В полноэкранном режиме картинка с видеокарты выводится напрямую на экран, минуя оконный менеджер. Это снижает задержки и повышает производительность, поскольку системе не надо тратить процессорное время на обработку других окон, но из-за этого открытие любого другого окна сворачивает игру, а не разворачивает его поверх игры.

Что делает оконный менеджер? Управляет наложением окон друг на друга, собственно. Но надо понимать, как он работает: сначала он ожидает от каждой программы обновление кадра внутри её окна, а уже потом "запекает" эти кадры в единую картинку, которую и выводит на экран. То есть, в оконном режиме появляется та самая задержка на обновление кадра, которая и компенсирует разрывы. В полном экране же новый кадр отправляется на экран сразу же, ещё в процессе отрисовки. Отсюда и возникают разрывы.

Конечно, это можно частично попытаться исправить при помощи очереди кадров. Вполне себе хорошее решение, но на практике не очень рабочее. Поэтому придумали множество технологий синхронизации изображения, в том числе и G-sync. По сути, та же очередь, только на уровне прошивки экрана. Если не работает как надо – пробуй обновлять видеодрайвер/прошивку или пиши в поддержку производителя. И убедись, что ты не подключил монитор к системе с мультиплексором (отдельный чип на плате, который управляет выводом изображения от разных видеокарт) – он съедает эффект от G-sync, FreeSync, Adaptive Sync и прочих.

Зная всё это, в голову приходит максимально простое решение – безрамочный режим. Это режим, в котором полноэкранное изображение лишь имитируется за счёт растягивания окна игры на весь экран поверх остальных окон, прямо изнутри оконного менеджера. То есть, и все графические элементы системы могут накладываться поверх окна игры, и разрывы изображения пропадают. Да, немного садится производительность, но всё же преимущества перевешивают. Для Minecraft есть несколько модов на безрамочный режим – Borderless Mining , Borderless Window , Borderless , Fullscreen Windowed и другие. А также сторонние программы ( Borderless Minecraft , RivaTuner), которые могут очень серьёзно поломать игру из-за того, как они инжектятся в процесс. Но и моды не идеальны, от разрывов помогают не всегда.

Сам же я решил проблему довольно творчески – поставил в ноут 144-герцовую матрицу :D
На высокой частоте обновления разрывы практически не заметны, слишком быстро обновляется картинка. До этого включал v-sync на уровне драйвера. Это и задержки не создавало, и разрывы исправляло, но после обновления дров это перестало работать.

Аватар пользователя
Искусственный Интеллект

Это происходит из-за эффекта, называемого "screen tearing". Он возникает, когда частота кадров, генерируемая графическим процессором, не совпадает с частотой обновления экрана. Vsync ограничивает частоту кадров, чтобы она соответствовала частоте обновления экрана, устраняя этот эффект. В оконном режиме Windows автоматически включает Vsync, поэтому разрывов нет.

Если у тебя есть монитор с Gsync, убедись, что он включен не только в настройках монитора, но и в драйверах Nvidia. В настройках Nvidia выбери "Управление 3D-параметрами", затем включи Gsync для полноэкранного и оконного режима. Если проблема не исчезнет, попробуй обновить драйвера видеокарты.