Тройная буферизация OpenGl AMD что это такое — включать или нет? (Triple Buffering, tripleBuffering)
Проблемы с качеством изображения в видеоиграх могут возникнуть у любого геймера. Независимо от того насколько мощный у вас ПК. Хотя на старых «машинах» такое встречается все же чаще. В статье разберем, что такое V-sync и чем отличается от G-Sync или FreeSync.
Тройная и двойная буферизация
Двойная буферизация
Двойная буферизация – это такой метод, который позволяет обеспечивать одновременную передачу готового результата и формирование следующего.
Как устроена двойная буферизация в компьютерной графике? Стоит отметить, что существует два варианта, оба из которых решают проблему мерцания и некоторых иных дефектов, но не решают проблему разрыва картинки. Первый, это когда изображение вначале формируется в оперативной памяти компьютера, а затем копируется в буфер монитора (из которого последний считывает и отображает картинку на экране). Второй, это когда видеокарта исходно поддерживает два буфера, которые она меняет без копирования данных, что существенно быстрее. В этом случаем, реже возникают разрывы.
Стоит знать, что под первичным буфером подразумевают тот, в котором хранится картинка, отображаемая в экране монитора. Под вторичным буфером подразумевается тот, в котором генерируется изображение (происходит рендер).
Тройная буферизация
Тройная буферизация – это разновидность двойной буферизации, отличающаяся тем, что используется три буфера данных.
Как устроена тройная буферизация в компьютерной графике? Сам механизм во многом похож, но только используется три буфера данных – первичный и два вторичных. При этом так же возможно использование дополнительных буферов видеокарты в качестве вторичных буферов метода, если таковые существуют.
Зачем это нужно? Дело в том, что в момент копирования данных видеокарта простаивает. Соответственно, дополнительный вторичный буфер решает эту проблему, так как в момент копирования данных, может формироваться следующее изображение. Это позволяет повысить fps.
Однако, обе этих технологии обычно связывают с V-Sync и не просто так. Далее рассмотрим почему.
Принцип работы
В общих чертах примерно так:
Самое главное, что стоит понимать — 1 секунда для нас это мгновенье. Для процессора/видеокарты — значительное время. Именно поэтому в программировании если нужно поставить паузы, то использую как единицу не секунды, а миллисекунды.
Опция в программе AMD Radeon Settings:
Tearing
Разрывы кадров (известные также как тиринг, от англ. Tearing), словно некто порезал картинку в игре на части и неровно склеил, могут серьезно попортить нервы геймеру. Не дав вам возможности, не то что с головой погрузиться в игру, но и просто нормально ее пройти. Выглядит это так:
Чтобы понять, как бороться с разрывами изображения, нужно знать причину их появления. Тут все предельно просто — тиринг вызван отсутствием синхронизации работы видеокарты и монитора. То есть видеокарта генерирует кадры с непостоянной частотой (это называется FPS, фреймрейт). Скорость создания новых кадров зависит от сложности 3D-сцены в видеоигре. Монитор же способен выводить кадры только с фиксированной частотой. Вот из этого несоответствия и рождаются разрывы изображения.
Если бы видеокарта по умолчанию успевала бы отрисовывать кадры перед отправкой их на монитор (как показано на схеме), то разрывы картинки канули бы в Лету. Но это недостижимая мечта.
Для плавной картинки, которую способно воспринимать человеческое зрение нужно минимум 25 к/с, иначе задержки становятся видны невооруженным глазом. Например, у вас монитор с частотой обновления 60 Гц (60 к/с). И слабенькая видеокарта, которая не справляется с генерацией кадров. Она не поспевает за монитором — тот обновляет картинку быстрее, чем видеокарта обрабатывает новые сцены. Поэтому, вместо нового целого кадра, который видеочип не успел создать полностью, монитору приходится показывать половину нового и половину старого кадра. Это и есть разрыв изображения.
Понятно, что эта конкретная проблема вызвана программной стороной медали. Поэтому и исправлять ее мы будем тоже программно.
Примечание: используется ТОЛЬКО для жалоб на спам, рекламу и проблемные сообщения (например, нападки, оскорбления или грубости).
Включать или нет?
Включать необходимо в случае использования VSync в играх. При использовании VSync качество картинки повышается за счет удаления так называемого разрыва изображения, из-за этого может проседать ФПС. Результат — позволяет снизить к минимуму задержки в подготовки данных видеокартой. Особенно касается топовых процессоров/видеокарт.
Тройная буферизация доступна только в OpenGL, для активации в Direct3D играх можно воспользоваться программой RivaTuner.
RivaTuner предназначена для тонкой настройки видеокарт NVIDIA. Присутствуют недокументированные функции драйверов Detonator всех версий, низкоуровневый разгон GPU, исправление рефреша, модуль диагностики.
В обычных условиях тройная буферизация дает повышение производительности, уменьшение количества микрофризов.
Если данный тип буферизации плохо влияет на игру — возможно дело в драйверах. Можно попробовать поставить другие драйвера, предыдущие. Совет — перед установкой сделайте точку восстановления. Если вы недавно устанавливали драйвера, тогда сделайте наоборот — попробуйте восстановить состояние ПК до установки новой версии.
Четырехкратная буферизация
Термин четырехкратная буферизация означает использование двойной буферизации для каждого изображения для левого и правого глаза в стереоскопических реализациях, таким образом, всего четыре буфера (если бы использовалась тройная буферизация, то было бы шесть буферов). Команда на перестановку или копирование буфера обычно применяется к обеим парам одновременно, поэтому один глаз никогда не видит более старое изображение, чем другой.
Стандарты 3D, такие как OpenGL и Direct3D, поддерживают четырехкратную буферизацию.
Рассмотрим, что такое буферизация в играх?
Для передачи изображения игр также используется буферизация. В играх используется как двойная, так и тройная. Двойная буферизация предназначена для более слабых ПК и ОС, в то время как тройная – для более мощных.
Если использовать тройную буферизацию на слабой ОС, игра может глючить. Иными словами, от того, какого вида процесс используется на вашем компьютере, зависит производительность. Игры тоже бывают разные, с разными требованиями к ПК и ОС.
Подбирать вид буферизации достаточно сложно, так как производители игр создают свое детище, используя разнообразные методы. Поэтому на игровых форумах можно часто слышать о том, как определенная игра плохо работает с тройной буферизацией, и наоборот.
В идеале, производители должны указывать системные требования конкретной игры, её совместимость с различными ОС, поддержка буферизации и т. д.
В случае если производитель не дал конкретной информации по поводу совместимости, её можно проверить самому. В любом случае тратится только время, компьютеру это никакого вреда не принесет. Несовместимость можно будет заметить практически сразу, так как она отражается в торможении графической визуализации и плохой синхронизации изображения со звуком.
Дополнительно
| Название | Описание |
|---|---|
| Flip Queue Size | Количество заранее подготавливающихся кадров. Включение может снизить/исключить провалы ФПС. Рекомендуемое значение — 2. При наличии многоядерного процессора значение 0 может снизить производительность. |
| Anisotropic/Trilinear Filtering Optimizations | Оптимизация анизотропной и трилинейной фильтрации. Включение повысит скорость, снижение качества картинки вы вряд ли заметите. Актуально для топовых моделей видеокарт. |
| Адаптивное сглаживание | Сглаживание обьекта (anti-aliasing) происходит не полностью, а только по краям. Эффект достигается использованием сильных сторон мультисемплинга (MSAA) и суперсемплинга (SSAA). |
| Поддержка сжатия DXT | Сжатие текстур без потерь в целях экономии пропускной способности. Рекомендуется включать. |
Другое использование
Двойная буферизация также используется как метод для облегчения чересстрочной развертки или деинтерлейсинга видеосигналов.
Введение
Предлагаем Вашему вниманию полное описание контрольной панели драйвера. Обращаем ваше внимание на то, что некоторые настройки доступны только при определенных типах применяемого оборудования. В данном обзоре мы постарались отразить все возможные настройки.
Смотрите также
Артефакты изображения
С разрывами, подергиваниями и подвисаниями, связанными с проблемами вывода кадров с видеокарты на монитор разобрались. Все остальные неприятности, вызванные другими причинами — это артефакты изображения.
Они представляют собой различные искажения картинки. Это не разрывы кадра. Чаще всего полосы на экране, точки, квадратные и прямоугольные скопления, фантомы и другие искажения. Отметим, что неполадки должны наблюдаться именно во время запуска игр или других «тяжелых» графических приложений, нагружающих видеокарту. Если точки на мониторе висят постоянно, то это битые пиксели. Не перепутайте!
Вот здесь на скриншоте явно не артефакт изображения:
Артефакты изображения могут иметь программное или аппаратное происхождение (как показывает практика, чаще всего второй вариант).
Что можно сделать, чтобы избавиться от артефактов программно:
Проблема может крыться и в самой игре. Скачали пиратский репак — получили проблему с изображением. Крайне редкое явление, но может случиться. Тут поможет установка другой версии игры.
Большинство аппаратных проблем, вызывающих артефакты изображения, своими руками решить невозможно. Просто перечислим их для развития кругозора:
Единственный момент, который можно исправить самостоятельно — это если искажения возникают из-за перегрева видеокарты (проверяем температуру специальной программой, например Everest). Можно почистить ее от пыли, заменить термопасту или поменять систему охлаждения на более мощную.
Но и здесь стоит понимать, что если графический процессор устаревший и не справляется с современными играми, то хоть лед к нему приложите (так делать точно не стоит) — кардинально ситуацию это не исправит.
В случае возникновения подозрения, что шалит именно «железо», несем его в специализированный сервисный центр.
Используем черную магию для создания быстрого кольцевого буфера
Вчера я заглянул на страницу Википедии, посвященную кольцевому буферу (circular buffer), и был заинтригован предполагаемой техникой оптимизации, с которой до этого не был знаком:
В рамках реализации кольцевого буфера нам необходимо обработать случай, когда сообщение попадает на «разрыв» в очереди и должно быть перенесено (wrap around). Очевидная реализация записи в кольцевой буфер может полагаться на побайтовую запись и выглядеть примерно так:
Тот факт, что для индексации в массиве необходима операция деления, затрудняет (если не исключает) векторизацию этой функции и, следовательно, делает ее неоправданно медленной. Хотя есть и другие оптимизации, которые мы можем здесь применить, методика из Википедии, предложенная выше, превосходит аппаратно-независимые подходы в силу того факта, что блок управления памятью может справиться с львиной долей логики циклического переноса за нас. Я был так воодушевлен этой идеей, что не стал проводить никаких дополнительных исследований и реализовал ее, основываясь только на кратком описании, приведенном выше.
В следующих двух разделах рассматривается конструкция кольцевого буфера и логика работы виртуальной памяти соответственно. Если вы не нуждаетесь в освежении этой информации, можете смело пропустить их.
Кольцевой буфер
Учитывая это, мы можем написать простые методы чтения ( get ) и записи ( put ), используя побайтовый доступ:
Обратите внимание, что этот метод put идентичен приведенной ранее варианту, за исключением того, что мы теперь проверяем, что свободного места достаточно прежде чем пытаться писать. Я также намеренно пренебрег логикой синхронизации (которая была бы абсолютно необходима для любого реального применения кольцевого буфера).
А вот пример использования этого кольцевого буфера:
Наш код прост и отлично работает. Но почему бы не усложнить его немного?
Встречайте таблицу страниц
На заре персональных компьютеров компьютеры могли одновременно запускать только одну программу. Какую бы программу мы ни запустили, она будет иметь полный прямой доступ к физической памяти. Оказывается, если мы хотим запустить несколько программ вместе, они будут бороться за то, какие области этой памяти они хотят использовать. Решением этого конфликта является виртуальная память, благодаря которой каждая программа считает, что она контролирует всю память, но на самом деле операционная система решает, кто какую память получает.
Таблица страниц для некоторой программы А может выглядеть следующим:
Номер виртуальной страницы
ATI Tray Tools F.A.Q.
Модуль Разгона
ATT не позволяет больше увеличивать частоту видео процессора! Что делать?
Заходим в настройки программы (Tools & Options) в закладке General Options в разделе Overclocking Limits увеличиваем Overclock limit. По умолчанию используется максимально допустимая частота как 50% плюс к частоте прошитой в БИОС видео карты.
Что можно менять безопасно в таймингах и не повредит ли это видео карте?
Менять можно любые тайминги, но делать это надо очень осторожно иначе Вы можете повредить видео карту. Универсального метода для редактирования таймингов нет. У каждого типа памяти есть свои тайминги, а также свой разгонный потенциал.
Что делает опция Clock generation method
ATT может разгонять карту в двух режимах.
Что это за кнопка Calculate?
Это кнопка позволяет просмотреть то, как будет АТТ вычислять делитель для заданной частоты. Как это можно применять? При разгоне видео карты желательно, чтобы делитель был минимальным. С наименьшим делителем достигается наилучшая стабильность. Используя кнопку Calculate Вы всегда сможете проконтролировать, какой делитель будет получен при нужной частоте.
Какой делитель используется при нажатии на кнопку Set Default Clocks
При выставлении значений по умолчанию ATT всегда использует стандартный для видео карты делитель. Вне зависимости от того, какой режим разгона был Вам выбран.
Какой 3D API используется в 3D Renderer
ATT использует OpenGL для прорисовки 3Д сцены и HLSL в качестве шейдеров. Для работы шейдеров необходима поддержка пиксельных шейдеров версии 2.0. Хотя сами шейдеры и не используют всех возможностей PS 2.0 у OpenGL драйвер от ATI есть свои ограничения на использование некоторых расширений OpenGL. Которые активизируются только при наличии аппаратной поддержки PS 2.0. При запуске на картах без поддержки PS 2.0. ATT будет прорисовывать иную сцену с применением прозрачности и технологии Environment Mapping.
Как лучше всего применять artifact tester?
Есть несколько способов нахождения максимально стабильных частот видео карты. Но к сожалению идеального среди них нет и вряд ли он когда ни будь будет. Я могу посоветовать следующие шаги:
Какие видео карты поддерживаются ATT для управления контролем оборотов куллера?
АТТ поддерживает управление оборотами на видео картах, оснащенных сенсорами LM63, а также видео карты от ASUS оснащенные сенсором FinTEK. Видео карты оснащенные сенсором WinBond (от Gigabyte) пока не поддерживаются.
Игровые профайлы
Как создать игровой профайл
Также доступная опция для форсирования тройного буфера для игр, использующих API Direct3D 8 или 9.
Должен ли я запускать игру через меню ATT или созданный через Game Profiles shortcut чтобы применились указанные мной настройки?
Нет, этого делать совершенно не обязательно. ATT имеет уникальную систему автоматического определения запущенного приложения, при котором все настройки для запущенной игры применяются автоматически. Вы вольны запускать игру из любого места. Единственное правило исполняемый файл для игры, должен быть расположен именно в том каталоге, путь к которому указан в игровом профиле.
Что делает кнопка Delete outdated game profiles?
Почему у меня на компьютере можно выбирать только один 3D профайл для игры, а у моего знакомого два варианта под Direct3D и OpenGL?
ATT может функционировать в двух режимах. Стандартном, если у Вас установлен Catalyst Control Panel и в режиме CCC если у Вас установлен Catalyst Control Center. В последнем режиме все настройки для 3D графики сведены в одно окно и соответственно Вы сможете выбирать только один игровой профайл.
Надо ли мне создавать shortcut для игры через кнопку Create Desktop Shortcut?
В этом нет никакой необходимости. АТТ имеет встроенную опцию по автоматическому определению запущенного приложения, при котором Вы можете запускать игру из любого места и любым удобным для Вас методом. При обнаружении запуска игры, которая зарегистрирована в игровых профайлах, АТТ автоматически применить все необходимые настройки и буде ожидать окончания игры для возврата установок на предыдущие значения если Вы явно указали это делать отметив опцию Restore previous settings after game end.
Я форсирую использование цветового профиля для игры, но результата не видно. В чем проблема?
Многие игры использует лаунчер. Примером тому может служить Half-Life2, который часто запускается через Steam.exe хотя сама игра это hl2.exe. Если у Вас не срабатывает опция форсирования цвета, то значить вы не правильно указали исполняемый файл для игры.
Я указал в опциях разгона для игры Auto 2d/3d, но карта при запуске игры не разгоняется!
Если Вы указываете в опциях игрового профайла использовать Auro 2d/3d разгон, то сама система Auto 2d/3d тоже должна быть активирована, иначе АТТ не сможет разогнать карту для этой игры. При отключенном модуле auto 2d/3d, рекомендуется выбирать готовый разгонный профайл.
Что дает форсирование тройной буферизации?
Если вы не включаете Vsync, то данная опция вам не нужна. Однако, если вы включаете Vsync то кол-во кадров в игре у вас будет ограничено частотой развертки или ее половиной, или половиной от половины и так далее. То есть при Vsync=60 Hz у вас FPS Будет или 60 или 30 или 15. Так работает система прорисовки с ожиданием обратного хода луча. Для избежания этого применяется третий буфер, можно назвать его запасным. При включении форсирования тройной буферизации у вас не будет больше провалов в FPS так как если карта не успела прорисовать кадр, то следующий кадр не будет потерян, а будет прорисован в тот самый третий буфер. Более подробную информацию Вы можете найти в интернете.
ATT имеет уникальную систему OnScreen Display, которая позволяет выводить прямо в игровую сцену самой игры множество параметров.
Основные настройки позволяют включать или отключать OSD полностью, а также запрещать вывод OSD информации при проигрывании видео файлов. Настрока угла экрана для вывода OSD информации, а также опция для временного отключения вывода информации. OSD состоит из двух модулей.
Я включил показ всех опций FlashOSD и теперь у меня тормозят игры!
Этого и следовало ожидать :). FlashOSD очень тяжелый для прорисовки модуль и потому я настоятельно не рекомендую включать его на постоянный показ! Данный модуль практически не поддается оптимизации так как внедрение в прорисовку чужой программы, может повлечь за собой не предсказуемые результаты! На данный момент АТТ использует самый безопасный из всех методов прорисовки, впервые примененный в программе FRAPS, но и самых трудоемкий для видео карты. При показе FPS нагрузки практически нет, так как к примеру при показе 8888 будет выводится всего 20 прямоугольников (если используются стандартные шрифты для вывода FPS). При прорисовке же FlashOSD кол-во прорисовываемых прямоугольников увеличивает в несколько раз!
Как я могу сместить положение счетчика FPS?
Глобальной настройки для изменения стандартного положения счетчика FPS и текстовой информации FlashOSD нет, однако Вы можете это сделать для конкретной игры, создав для нее игровой профайл и указав смещение по осям X и Y. Учтите, что Direct3D использует начало координат с левого верхнего угла экрана, а OpenGL с левого нижнего.
Настройки Direct3D
Я совсем не знаю что за настройки в Direct3D. Что мне делать?
Большинство настроек в Direct3D повторяют основные настройки Контрольной Панели. Нет надобности расписывать все, так как на любом сайте можно найти большое кол-во информации. Воспользуйтесь поиском.
Объясните про действие дополнительных Direct3D настроек.
Из дополнительных настроек можно выделить к примеру оптимизацию анизотропной и трилинейной фильтрации. В общих словах эти оптимизации дают увеличение производительности с небольшой потерей качества. Что же именно происходит при включении этих опций я рассказать не могу так как эти оптимизации нигде не описаны.
Я слышал, что Frame Treshold для TAA не работает на новый версиях Каталиста. Правда ли это?
Обтяните действие Catalyst A.I.
Также как и оптимизации анизотропной и трилинейной фильтрации, опция Catalyst A.I. нигде не описана. Основное действие этой опции, это оптимизации под конкретное приложение. Catalyst определяет запущенное приложение по имени исполняемого файла и производит определенные «махинации» для увеличения производительности.
Почему Refresh Override не всегда срабатывает?
Flip Queue Size. Что это за опция?
Обьясните на примерах действие опций Анизотропной фильтрации (Anisotropic Filtering) и Сглаживания (Antialiasing)
Flip queue size что это
None of these fixes are bannable. You are only modifying your graphics driver options or the games config files.
Advanced Warfare doesn’t use Valve Anti Cheat and every known Anti Cheat Program only auto-bans if you’re modifying memory addresses or game files
Also you shouldn’t use macros which abuse anything (e.g.: No recoil or Auto fire).
That said, I won’t take responsibility if your account still gets banned for whatever reason or you break your computer in any way.
NVIDIA released a new WHQL driver which updates the Advanced Warfare profile with Stereo and SLI profiles.
Regardless of whether you’re using SLI or not you should install it to ensure the best performance:
What will probably fix your performance issues and possible input lag in-game is trying to decrease the pre-rendered frame limit from 3 (default) to 1.
As of 09.12.2014 there’s the so called Omega driver (version 14.12) available for AMD users. Among other features there supposedly are performance increases of up to 30% in several games including COD:AW
So in case you aren’t using it already download it here:
The AMD Control Center doesn’t allow you to change the Maximum pre-rendered frames (actually the AMD equivalent setting is called Flip queue size) that easily.
The option is hidden and can only be changed by using the third-party tool RadeonPro.
Since I don’t own a Radeon card the following steps were not tested. It could be that changing the Flip Queue Size worsens your performance or a different value might be better.
Probably already known to you but in case you haven’t changed it yet:
Matchmaking by default looks for games with a maximal ping of 400. By changing the value to another one (100 is recommended) you can avoid most lags in game.
The config file which contains this value is in the folder players2 inside your COD:AW folder
e.g.: C:\Program Files (x86)\Steam\SteamApps\common\Call of Duty Advanced Warfare\players2
Changing several values in the config file will activate raw input and disable mouse acceleration completely.
The config file which contains these values is in the folder players2 inside your COD:AW folder
e.g.: C:\Program Files (x86)\Steam\SteamApps\common\Call of Duty Advanced Warfare\players2
You already have a slider to change your mouse sensitivity ingame but if you want to change your sensitivity numerically you can do this in the config file.
Why would you do this? One of the reasons is that every COD game uses the same way of calculating the sensitivity. So you can use the same sensitivity in every COD game.
Please note that the sensitivity is also influenced by your FOV.
The config file which contains this value is in the folder players2 inside your COD:AW folder
e.g.: C:\Program Files (x86)\Steam\SteamApps\common\Call of Duty Advanced Warfare\players2
To fix this simply disable the two options «Cache Spot Shadow Maps» and «Cache Sun Shadow Maps» in the advanced graphics options menu in-game.
Simply said: Vertical sync (or V-Sync) locks yours framerate to your monitor’s refresh rate.
e.g. 60HZ monitor → maximum of 60fps
The problem is the way that V-Sync works, as it introduces input lag. Some say it’s not noticeable while others say they can’t play any game (shooter) with it activated.
The option is called ‘Sync Every Frame‘ in the options menu of COD:AW.
If you want to disable it, you can do so now. The disadvantage of doing so is screen tearing.
Less of a fix and more of a «how-to get your NAT type to be open».
Well, you have to open several ports to do so.
3074, 3478, 4379-4380, 27000-27031, 27036
If you want it (a little bit) more comfortably you can also activate UPNP in your router settings which will automatically open and close ports as the application desires which might pose a security threat although there apparently are not too many malicious programs abusing UPNP.
For more information about how to port-forward your specific router for this specific game visit this link:















