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 ()

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

bhfq ★★★★★ ()

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

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

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

bhfq ★★★★★ ()

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

leg0las ★★★★★ ()

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

derlafff ★★★★★ ()

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

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

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

tailgunner ★★★★★ ()

Valve сотрудничают с компанией Intel

Надеемся и ждем хорошие открытые дрова.

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

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

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

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

А если это будут хорошие но закрытые драйвера. Мы их проигнорируем?

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

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

loz ★★★★★ ()

Отлично, хоть и не играю и сижу на интегрированном ядре, но новости хорошие.

ritsufag ★★★★★ ()

Не понял, они (Nvidia) что, сделали транслятор Direct3D в OpenGL на уровне драйвера?

Kindly_Cat ()
Ответ на: комментарий от 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 ()
Ответ на: Движок туда, движок сюда от anonymous

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

А ты их купишь, о нервный анонимус?

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

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

ivanlex ★★★★ ()

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

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

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

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

WatchCat ★★★★★ ()

OpenSource

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

Ford_Focus ★★★★★ ()
Ответ на: Движок туда, движок сюда от anonymous

Надоели радостные вопли про движки.

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

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

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

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

Просто оставлю это здесь.

Кхм... А 32-разрядная убунта умеет использовать 32 ГБ ОЗУ?

Orlusha ★★★★ ()

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

Ждём релиза.

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

А bms разве вышел уже? Какие еще достойные моды есть?

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

уже давно покупаю игры Steam, наверное как перестал быть студентом))))

sendel ()
Ответ на: комментарий от 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 ★★★★★ ()
Ответ на: комментарий от Tweaker

Да полно крутых модов. Например, Research and Development.

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