LINUX.ORG.RU

Представители Valve раскрыли подробности оптимизации движка Source под OpenGL

 , , , ,


1

4

На конференции SIGGRAPH компания Valve публично продемонстрировала портированный для Linux игровой движок Source, на примере запуска в Linux игры Left 4 Dead 2. Одновременно была показана презентация, в которой были раскрыты подробности проведённой оптимизации, в результате которой движок Source с компонентом рендеринга через OpenGL, запускаемый в Linux, продемонстрировал более высокие результаты производительности, чем при использовании Direct3D при запуске игры в Windows 7 (315 FPS против 270 FPS). Докладчиком по данному вопросу выступил Рич Гелдрих (Rich Geldreich), автор открытой библиотеки Crunch, ныне работающий в Valve.

Наиболее интересные моменты:

  • В среднем, на видеокарте NVIDIA GeForce GTX 680, при использовании OpenGL движок на 11% быстрее, чем при использовании Direct3D. Предполагается, что можно отыграть еще около 5% путем оптимизации транслятора вызовов Direct3D в OpenGL.
  • Наиболее удивительным фактом является то, что движок работает быстрее, несмотря на то, что рендеринг производится путем транслирования Direct3D вызовов и абстракций в вызовы и абстракции OpenGL. При этом есть дополнительный слой — транслятор, что однако не помешало итоговой конструкции работать быстрее оригинала. Транслятор реализует маппинг Direct3D 9 в OpenGL практически 1 в 1.
  • В случае многопоточных видеодрайверов паразитная нагрузка от транслятора и OpenGL соотносится как 50/50. Однако, если видеодрайвер однопоточный, в вызовах OpenGL может быть потрачено до 80% времени, а в трансляторе лишь 20%. Отмечается, что компания NVIDIA проделала много работы по организации многопоточности в своем драйвере.
  • Valve сотрудничают с компанией Intel (которая недавно как раз представила очередную порцию изменений в драйвере по просьбе Valve), AMD и NVIDIA. Изначально у выполняющей работу по портированию для Linux команды Valve был довольно ограниченный опыт. В основном помогла тактика интенсивного профилирования с анализом где сколько времени тратится на различные вызовы. Целью было учесть каждую микросекунду.
  • Наиболее сложным было собственно профилирование. Во-первых, сам игровой движок многопоточный, что существенно усложняет его профилирование. Во-вторых, большинство средств профилирования не видит нить видеодрайвера, обрабатывающую запросы на рендеринг. В-третьих, у движка Source множество опций и он сильно масштабируем под разные конфигурации.
  • Кроме всего прочего, был использован инструментарий от RAD Game Tools под названием Telemetry.

Некоторые оптимизации:

  • поддержка многопоточности в режиме OpenGL;
  • убрано большинство вызовов glXMakeCurrent;
  • исправлено использование pthreads;
  • сокращен оверхед трансляции D3D->GL путем переписывания самых горячих мест;
  • улучшен dirty range tracking;
  • добавлен отдельный однородный массив для базовых матриц;
  • улучшено обновление динамических буферов и оптимизации настроек компилятора. Наиболее полезными в плане улучшения производительности было использование опции компилятора «-ffast-math» и отключение опции «-fPIC».

Новость взята с opennet.ru

>>> Подробности



Проверено: JB ()
Последнее исправление: JB (всего исправлений: 3)

Ответ на: комментарий от Sadler

Если не считать физики, parallax mapping, полностью динамического освещения и всех других фич современных движков.

Darkplaces запусти. Будет тебе и параллакс и блум и хдр и амбиент оклужн.
Что до физики (касается и ivanlex) Havoc, используемый в Source - сторонняя разработка и частью Source-а не является.

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

ПРЯМО СЕЙЧАС

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

Придется подождать, почему-то мне кажется что лично вам Valve ничего не должен.

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

Ну раз уж и DNF вышел. Вопрос только когда :)

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

кроме таинственных динамических теней (которые я видел ещё в q3test)?

Где вы их видели? Да в тесте отродясь кроме кружочка темного пятнышка около ног ничего не было.

Со скелетной - да, беда. Для Tech3 один умелец потом прикрутил ЕМНИП.

Внешние библиотеки ÜberTools к разработке которых Id не имеет никакого отношения.

В папу и слова его не верю. А вот энтузиасты, утекший код SourceEngine сравнивали с кодом от Id и совпадений не нашли.

Позвольте спросить вас - где вы такую траву берете забористую? Обидно что не делитесь. Отсутствие физического движка вы не отрицаете?!

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

Мы же про Игры. Когда я играл в Heavy Rain, то как-то быстро забыл, что на PC графика лучше. А что до дешевле - хрен уж с ним. Раз в 2-3 месяца можно потратиться.

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

vertexua> А зачем они транслировали Direct3D в OpenGL?

Затем, что у них нет времени на полный переход на OpenGL. Им надо как можно скорее на линукс убежать, пока мелкософт не поджал. А затем наверняка Valve предоставит инструментарий для портирования, основываясь на своём опыте.

Я предполагаю, что полный переход на OpenGL будет сделан в Source 2, на котором выйдет Half-Life 3.

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

Мы же про Игры.

Почти все что есть на приставках есть и на PC c лучшей графикой, поэтому не вижу вообще никакого смысла в приставке. В того же бетмана гораздо приятнее играть в full hd с эффектами по максимому и с включенным physx

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

А они разве будут делать Source 2 отдельно?! Они же хотели постепенно обновлять SourceEngine?!

Просто я не в курсе последних заявлений. Может пропустил?

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

bhfq> То-то у меня все виндовые игрушки лагать начинают со временем. Ой значит это виноват Catalyst 12.6 зараза.

Не Catalyst, а KDE4. Посмотри загрузку процессора через top во время лагов. Сразу увидишь, в чём дело.

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

ivanlex> А они разве будут делать Source 2 отдельно?! Они же хотели постепенно обновлять SourceEngine?!

Я думаю, что таки будут. Как миниум в виде серьёзной переработки Source. Дело в том, что Source основан на движке первой кваки с элементами движка второй кваки. И, сохраняя совместимость со старыми играми и исправляя его в сторону современных движков, не выйдет его доработать. Всё, что может сделать Valve - это пихнуть немного плюшек туда и сильно обновить рендерер. Всё. Если же делать полностью современный движок - придётся его так переработать. что совместимости с предыдущими версиями не останется.

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

Где вы их видели? Да в тесте отродясь кроме кружочка темного пятнышка около ног ничего не было.

4.2.
r_stencilBits 8
cg_shadows 2

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

На чистом OpenGL без прослойки выйдет ещё быстрее.

Вопрос то в том, насколько эта скорость оправдает средства. То есть кроме переписывания существующего кода придется еще и поддерживать 2 версии.

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

Да нет. Без композитинга. В KDE4 процесс X.org начинает жрать более 100% CPU. В других DE и WM такая проблема не наблюдается. И эта проблема замечена далеко не только мной и далеко не только на Debian. Как правило смена KDE4 на XFCE4 помогает.

Quasar ★★★★★
()

Предполагается, что можно отыграть еще около 5% путем оптимизации транслятора вызовов Direct3D в OpenGL.

т.е. оно так прибито гвоздями к прямому3д, что приходится лепить такое? и всё равно получается ненативная реализация обгоняет венду. хе-хе. хотя неудивительно, толстый гейб (среди прочих) нам эту венду и принёс.

Транслятор реализует маппинг Direct3D 9 в OpenGL практически 1 в 1.

вот бы его прикрутить к wine и хорошим винтажным играм поможет, а валве наконец будет нужна. эх, мечты.

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

Вы из тех кто хочет все и сразу?

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

Придется подождать

Я это слышал ещё 10 лет назад. Обещаний было море от разных корпораций, фирм, и т.д. А по факту мы имеет то, что мы сейчас имеем.

Те порты, примеры которых вы привели не имели сопоставимого финансирования.

И тем не менее они всё же вышли, в отличие от тех, которые финансирование имели, но не имели никакого конечного результата

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

Две версии рендерера. В том же Unreal Engine рендеринг сделан фактически отдельными модулями. Ничто не мешает сделать то же самое и Valve с Source.

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

Мне с майнкрафтом даже голые иксы не помогли, но это майнкрафт :<...

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

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

А вообще оценивать современные движки на основании того, что у них было в прародителях - тупость величайшая. Как только ты предоставишь мне игру, в которой я не смогу отличить, сделана ли она на q1 или на Source, тогда и поговорим.

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

Хоть я и люблю Xonotic, но там (как и в движке Darkplaces) до сих пор нет и не предвидится скелетной анимации (или я что то пропустил?). И да, я согласен с разрабами - в сетевом шутере она и не нужна, но в сингловых играх, крайне необходима. А в Source это все есть и работает, и скоро будет работать и на Линукс. Хотеть это!

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

Почти все что есть на приставках есть и на PC

А вот с этим даже при всей своей привязанности к PC-играм не могу согласиться. Это не так.

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

Почти все что есть на приставках есть и на PC c лучшей графикой, поэтому не вижу вообще никакого смысла в приставке.

Навскидку: Heavy Rain, Gran Turismo, Little Big Planet 1-2, Killzone 1-2-3, Resistance 1-2-3, Mortal Kombat, Twisted Metal
да дохрена всякого, чего никогда не будет на PC. Мультиплатформа - да, выглядит на PC поживее, её имеет смысл играть на PC. А с эксклюзивами и выбора никакого нет.

Я не то чтобы агитирую, но выходит, что для игр консоль очень даже имеет смысл.

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

ist76> А вообще, молодцы Valve: с необыкновенным пиететом, под восторженные рукоплескания, показали всем в 2012 году нативно работающий под Linux движок первой кваки.

Вообще-то вся суть даже не в движке, а в том, что Valve сейчас для линукса сделала уже не меньше, чем id. id производителей драйверов никогда не пыталась нагибать и командовать ими - наоборот, тот же Кармак ныл по поводу качества драйверов и говорил, что по этой причине Rage под линукс не будет. А Гейб понял, что к чему, и без нытья начал ко всем подкатывать и требовать. Видим итог - драйверы стали лучше и игры очень скоро будут, а у Кармака от этого случилась острая боль в заднице.

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

Jaga> Мне вот интересно, теоретически портируют, например, HL2 с эпизодами под онтопик, а под них есть куча модов, как они будут себя вести? Удастся в BMS, например, поиграть?

Будут они себя вести не хуже, чем под OS X. Короче - главное, чтобы разработчики модов собрали их под линукс. Это первая квака была написана на платформе типа жабы, поэтому все без исключения игры под движок первокваки распространяются в виду байт-кода. А со второй кваки всё уже собирается под конкретную платформу в виде библиотек.

Quasar ★★★★★
()

хе, я так понимаю, что Direct3D медленнее, чтобы раскручивать геймеров не более мощные видеокарты...

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

А вы из тех кто любит просто потрендеть от том какой может быть крутой никогда не выходившая игрушка

Выходившая, можете посмотреть в стиме.

Я это слышал ещё 10 лет назад. Обещаний было море от разных корпораций, фирм, и т.д. А по факту мы имеет то, что мы сейчас имеем.

Ну то есть значительно возросший интерес к линуксу, его возможности и качество, согласен.

И тем не менее они всё же вышли, в отличие от тех, которые финансирование имели, но не имели никакого конечного результата

Ну примеры же в студию.

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

А в Source это все есть и работает, и скоро будет работать и на Линукс. Хотеть это!

Да я какбе и не против. Просто, могли бы 8 лет назад портировать - ничего не мешало. А сподобились только сейчас. В то время как один малоизвестный разработчик шаровар, в течение 12 лет выпускал linux-версии своих игр через 2 месяца после релиза, без всяких ахов охов и фейерверков.

ist76 ★★★★★
()

ШКАНДАЛЫ ИНТРИГЕ РАССЛЕДОВАНИЯ!!!1111

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

Видим итог - драйверы стали лучше и игры очень скоро будут

Я пока вижу совсем другой итог. 4 абсолютно разные кармаковские игры под линукс, которые много лет есть и работают и одна игра от вальвы, про которую все вокруг говорят, но которой пока нет

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

вот раньше умели делать, на десятилетия вперед.

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

А на макоси оно как работало?

С глюками

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

Прямо сейчас ты можешь пойти в магазин и купить диск Left 4 Dead 2. Как только выйдет линуксовая версия, ты можешь его в стиме под линуксом активировать. А можешь и под вендой, а потом под линуксом поставить.

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

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

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

В Source, кстати, своего движка механики тоже нет. Там Havok.

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