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)

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

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

Сейчас просто не выгодно переписывать большую часть кода движка для уже не новых игр. Написать такую прослойку вполне сойдет.

bhfq
()

Хотеть CS Source нативный, сильно хотеть.

leg0las
()

раз пять порвали этот боян в толксах

derlafff
()

Наиболее полезными в плане улучшения производительности было использование опции компилятора "-ffast-math" и отключение опции "-fPIC".

отключение опции "-fPIC".

Всё-таки x32 не такая уж глупая идея.

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

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

Все равно быстрее вышло, так что врятли будут переписывать на чистый opengl.

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

Думаю закрытымы они уже не будут, не зря же их открыли. Хорошие но закрытые уже есть, зачем им делать то же что и конкуренты?

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

Насколько я понял - это Valve сделали себе свой транслятор, а NVidia просто оптимизировали те части драйвера, с которыми взаимодействует Source. А Valve соответственно сообщает производителям видеокарт, где и в каких частях их драйвера проседают.

ivanlex
()

Хорошая новость. Хотя большинство и не играют, но видеодрайвера юзают все. :)

renya
()

Перестаньте уже копировать желтизну с этого сайта (http://www.phoronix.com/).

Все официальные релизы Valve публикует в своём блоге, все что пишут другие издания - желтизна и догадки.

Этот похороникс уже обещал 2 года назад, что стим выйдет аж через месяц и привели картинку с запущенным стим клиентом в wine)))

lexxus-lex
()

Мне вот одно только не ясно, а шейдеры как. Шейдеры тоже транслировать из HLSL в GLSL?

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

Мб таки просто компилить как есть?

anonymous
()

Движок туда, движок сюда

Надоели радостные вопли про движки. Игры-то когда будут? Сейчас игр под Linux по качеству сопоставимых с виндовыми можно по пальцам пересчитать. Зато о движках трубят уже несколько лет.

anonymous
()

Portal 2 под вайном тем временем стал работать просто идеально.

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

Я куплю. Наверное таких как я - не один. Цена игр в Steam очень демократична, особенно учитывая плюшки Steam-аккаунта. Буду очень ждать так же выхода модов на Source под Линукс (в частности буду ждать появления Zombie Panic Source).

ivanlex
()

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

p.s. Ну да, я знаю, сильно изменённый, но мы то помним, откуда у него ноги растут.

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

Да я тоже куплю, вот только остаётся вопрос, а сколько же нас таких?
Хотя я не думаю что вальвовцы альтруистичны и не провели исследований, но всё-таки.

WatchCat 👍
()

OpenSource

наверное всё-таки «Коммерческое ПО»

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

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

Jaga
()

На таком движке не терпится написать, например, смотрелку для IFC.

Ждём релиза.

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

Не во все. Если моды используют свои или сторонние библиотеки, то без портирования данных библиотек мод не будет работоспособным. Так что про все моды говорить не приходиться. С каждым модом индивидуально. Если мод дополнительные библиотеки не юзает, то должно быть все ОК.

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

Да, через PAE умеет, и даже больше 32 ГБ ОЗУ. А PAE в Ubuntu работает «искаропки». Возможно Ваша материнская плата не будет поддерживать столько ОЗУ, сколько поддерживает 32-битная Ubuntu.

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

Без этих радостных воплей ни о каком прогрессе и говорить бы не приходилось.

Прогресс - это когда я вижу КОНЕЧНЫЙ результат. А пока его не видать!

А ты купишь?

Куплю. Если стоимость будет такая же как стоимость игрушек под Винду в магазине. 150-300 руб. за диск меня не разорят.

Что такое «качество» в вашем понимании?

Это как в машине, есть Запорожец и есть Мерседес. Оба машины, на обеих можно ездить, но вот впечатления разные. Например был такой движок FreeCraft который умел то же, что и Blizzard'овский Warcraft, но без коммерческих текстур и рисунков это выглядело убого. Или возьмите известную игру «Battle for wesnoth». Может оно и круто, но внешний вид просто убивает. Пример с другой стороны - посмотрите как народ заигрывался в Desciplies II, а ведь сам игропроцесс там убог до смехоты. Зато как красиво, зато какие эффекты в боях.

anonymous
()

почему open source игры такое УГ по производительности? в игрострое не запачкан. совсем не понимаю каким образом игра запущенная через транслятор показывает столь много попугаев, а нативные open source поделки тормозят?

из минусов прихода игроделов на уютненький GNU/Linux вижу следущее: Придется покупать дорогущую ненужную горячую видеокарту: сейчас смысла иметь железку за дикие килограммы денег нет, т.к. утилизировать её мощь совершенно нечем, кроме как bitcoin и вычисления на CUDO. Производители игр смогут устроить очередной videodriverhell Не все дистрибутивы будут в равном положении перед игростроителями, т.к. виндовозный подход запиливания одного exe'шника для всех никто не отменял. Где лицензионные игры, там и пиратские сборки с кучей вирусов, троянов и cookies Очередной ад антивирусов как следствие предыдущего пункта

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

движок первой кваки

Слишком толсто.

Приди на автосалон и тыкай пальцем в новые суперкары, приговаривая "Ололо, да это же паровая телега Кюньо! Ну да, сильно изменённая, но мы то помним, откуда у неё ноги растут."

kranky
()
Последнее исправление: kranky (всего исправлений: 1)
Ответ на: комментарий от ist76

Ну, с такими мыслями... Тогда и последний CoD - тоже первоквака? CoD же на движке, основанным на третьекваке, который на второкваке, который на первокваке?! Вообщем, бред вы сморозили, сударь, причем откровенный!

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

Приди на автосалон и тыкай пальцем в новые суперкары, приговаривая

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

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

Вообщем, бред вы сморозили, сударь, причем откровенный!

Обоснуй. В чём ключевые отличия IW engine от idTech3? Source от idTech1?

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

Например был такой движок FreeCraft

Или возьмите известную игру «Battle for wesnoth»

За ними стояла корпорация уровня Valve?

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

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

Да хоть тетриса, если он позволит играть в cs, l4d, dota 2 и тд.

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

За ними стояла корпорация уровня Valve?

Ну вот стоит ваша Valve. Результат где? Что я вот ПРЯМО СЕЙЧАС могу купить из игр этой супермегакорпорации, что сравнилось бы по качеству с топовыми виндовыми играми?

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

В чём ключевые отличия IW engine от idTech3?

Полностью переписан рендеринг, который позволил использовать новые возможности. К примеру динамические чети.

Source от idTech1?

Поддержка скелетной анимации, полностью переписан рендеринг, поддержка динамических теней.

И, кстати, со слов Гейба, Source написан с нуля, лишь используя некоторые возможности из из GldSrc, который кстати тоже базируется на QuakeEngine, но очень сильно изменен. Еще в GldSrc была добавлена скелетная анимация и переписан рендеринг, а в частности добавлена поддержка DirectX.

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

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

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

Одним процессом - нет. Для всего остального существует MasterCard^W PAE

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

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

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

Полностью переписан рендеринг, который позволил использовать новые возможности.

Это ты скопипастил что-ли откуда-то? Какие именно там используются новые возможности, кроме таинственных динамических теней (которые я видел ещё в q3test)?

Поддержка скелетной анимации, полностью переписан рендеринг, поддержка динамических теней.

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

И, кстати, со слов Гейба, Source написан с нуля, лишь используя некоторые возможности из из GldSrc, который кстати тоже базируется на QuakeEngine, но очень сильно изменен.

А со слов Папы все, кто не верят в Богородицу, попадут в ад. По факту же, из сурца торчат огромные уши первоквака.

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