Автор Тема: Valve: Source Engine работает на Linux быстрее, чем на Windows  (Прочитано 3913 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sonygod

  • Ушел с форума
  • Сообщений: 7916
  • Пол: Мужской
    • Просмотр профиля
Одним из существенных факторов в создание хорошого игровой опыта является пропускная способность. В данной заметке мы обсудим некоторые вещи, которые мы (Valve) узнали о производительности наших игр, работающих на Linux. Любой разработчик скажет вам, что производительность - это сложная штука. Интереса ради, мы сконцентрируемся на следующей конфигурации:





Мы используем временно 32bit-ную версию Linux, но позже будем работать на 64 bit. Left 4 Dead 2 запущенный на ОС Windows 7 с драйверами Direct3D выдает 270.6fps. Данные полученные на основе внутреннего теста. Когда мы работали с Linux, первоначально игра выдавала всего лишь 6fps. Впрочем это характерно для портов на любой платформе. Улучшение производительности можно разделить на несколько категорий:

> Модификация наших игр для улучшения работы с kernel

> Модификация наших игр для улучшения работы c OpenGL

> Оптимизация графических драйверов

Примером оптимизации первой категории можно назвать смену нашего распределителя памяти для использования более подходящих функций Linux. Это было достигнуло путем внедрения в Source Engine небольшого блока для работы под Linux. Второй категория будет включать в себя снижение накладных расходов для работы с OpenGL и расширение нашего визуализатора новыми интерфейсами для лучшей инкапсуляции OpenGL и Direct3D.

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

После всего этого, Left 4 Dead 2 выдает 315fps на Linux. То факт, что Linux-версия работает быстрее, чем версия для Windows (270fps) кажется немного нелогичным, учитывая большое количество времени, которое мы потратили на оптимизация игры под Windows. Однако это говорит об эффективности ядра операционной системы и OpenGL. Интересно, что в процессе работы с поставщиками оборудования, мы также ускорили работу OpenGL для Windows. С такой конфигурацией Left 4 Dead 2 выдает 303.4 FPS на Windows.

OpenGL vs. Direct3D на Windows 7

Этот опыт наводит на вопрос: почему версия игры на OpenGL работает быстрее чем Direct3D на Windows 7? Похоже, что это не связано с многозадачностью. Мы делали довольно тщательные анализы, и дело в том, что это вызвано несколькими дополнительными микросекундами задержки в группах в Direct3D, которая не влияет на работу OpenGL на Windows 7. Теперь зная, что железо способно на более высокую производительность, мы вернемся и выясним, как смягчить этот эффект в Direct3D.

Работа с производителями железа

Мы работали с NVIDIA, AMD и Intel чтобы улучить графическую производительность драйверов на Linux. Со всеми было приятно работать, и они все отправили к нам своих инженеров, чтобы помочь нам в анализе получаемых данных. Мы моментально нашли все ошибки и баги, и это было круто собрать в одном месте людей разбирающихся в игре, рендеринге, драйверах и железе. Это отличный пример того, каких результатов можно добится благодаря тесному сотрудничеству между  разработчиками ПО и железа, которое принесет пользу сообществу Linux в целом.

Оффлайн GManiac

  • Пользователь
  • Сообщений: 1284
    • Просмотр профиля
Опять Valve, опять линукс. Много чего под линукс работает быстрее, и что? Всё равно на него не пересяду.

Оффлайн Planestranger

  • Пользователь
  • Сообщений: 1837
  • Пол: Мужской
    • Просмотр профиля
Это как у кармака... считают неубитых попугаев... эти FPS без указания видеорежима, всё равно что сферические в вакууме гигатексели, которыми производители консолей меряться любят.
Если при "портировании" отрезать половину графических наворотов - действительно будет быстрее. С писей на телефоны тоже "портируют" ) И-таки да Need for Speed Run на моём телефоне быстрее идёт, чем на старом десктопе. Ура! Горячая новость!

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8121
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Valve'овцы записались в клуб фанатов Линукса? Молодцы конечно - нашли что тестировать, да ещё на таком железе, которое Source Engine и не нужно вовсе.

Оффлайн ~Scorpion-

  • Пользователь
  • Сообщений: 9776
  • Пол: Мужской
  • Unstoppable!
    • Просмотр профиля
Ну и хорошо, что идет быстрее.  Пусть порадуются фэны Линкса.  :) Смогут с удовольствием поиграть в замечательные игры.

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

Короче, это они приободряют Линукс фэнов, чтоб те офигели от счастья, и чтоб гордиться было чем...

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Это, может сообщество линукс типа Red Hat проплатили Valve пиар-кампанию? Ато и правда они как дети малые, то говорят о том что магазин windows 8  это кошмар (я так и не понял каким он там боком к valve относится, раньше вовсе никакого магазина приложений не было и ничего - находили люди steam и без этого магазина. Кому надо тот и так найдёт) и при этом слово магазин пропускают. Теперь меряют fps в недоделанной версии под Linux и в DX под виндовс. Наверняка же от openGL не добиться идентичной картинки как под Windows, всё же DX после 8ой версии хорошо так рвонул вперёд.
Добавлено позже:
Кстати у 64х битных приложений несколько отличается адресация так что если не затачивать приложение под x64, а запустить x86 приложение на x64 системе в режиме эмуляции (как это и происходит со всеми x86 приложениями если кто не знал) то возможно 1/30 фпс (разница в итоге в практически 10 фпс) и будет платой за эту эмуляцию. Ну это мои предположения.

Оффлайн ShadowFlash

  • Пользователь
  • Сообщений: 2270
  • Пол: Мужской
    • Просмотр профиля
Цитата
DX под виндовс. Наверняка же от openGL не добиться идентичной картинки как под Windows, всё же DX после 8ой версии хорошо так рвонул вперёд.
Апельсинов не кушал, но осуждаю, так что-ли ?
Почитал бы о возможностях каждого API что-ли для начала, прежде чем рассуждать о балете, первый раз попав в театр.
OpenGL 4.2 = DX11 с небольшим запасом. Бенчмарк Unigine Heaven это более чем доказывает, ибо он умеет и OpenGL 4 и DX11.

Добавлено позже:
Тот же Dolphin туда же кстати, F-Zero GX у меня в Kubuntu на одном и том же моменте на заставке выдает 174-230 fps, DX9 в винде 145-180, DX11 в винде 120-175, OpenGL в винде 150-180.

Еще веселее с аркадными BlazBlue CT/CS, который в вайне идет процентов на 40 быстрее, это с трансляцией DX9 -> OpenGL то.
« Последнее редактирование: 03 Август 2012, 23:48:44 от ShadowFlash »

Оффлайн Йобан Матич

  • Emu-Land Team
  • Сообщений: 2593
  • Пол: Мужской
    • Просмотр профиля
Цитата: ShadowFlash
с трансляцией DX9 -> OpenGL то.

Ага, там вместо половины функций заглушки, лол.

Оффлайн ShadowFlash

  • Пользователь
  • Сообщений: 2270
  • Пол: Мужской
    • Просмотр профиля
Если бы там вместо половины функций были заглушки, то в большей части игр, которые используют DX9 были бы эпические графические баги или крэши, так и было, лет 5-7 назад.

Оффлайн Planestranger

  • Пользователь
  • Сообщений: 1837
  • Пол: Мужской
    • Просмотр профиля
ShadowFlash, в OpenGL только графика, для всего остального придётся использовать сторонние решения и как-то их "гоп до кучки", что гарантирует глюки и падения производительности. в DX - и графика, и звук, и инпут и прочие 33 удовольствия.
и вообще. если OpenGL такой великий и могучий, почему ж idTech 5 так погано выглядит, не просветишь? )

Оффлайн ~Scorpion-

  • Пользователь
  • Сообщений: 9776
  • Пол: Мужской
  • Unstoppable!
    • Просмотр профиля
Цитата: ShadowFlash
так и было, лет 5-7 назад.

Это как?

Оффлайн ParagonUnits

  • Пользователь
  • Сообщений: 10699
  • Пол: Мужской
    • Просмотр профиля
Цитата
если OpenGL такой великий и могучий, почему ж idTech 5 так погано выглядит, не просветишь? )

Потому что это первый проект на этом движке, да и сама игра ориентирована на консоли! Тем более Кармак хотел добиться на консолях стабильно 60 кадров!

Оффлайн Sinеd

  • Пользователь
  • Сообщений: 1280
  • Пол: Мужской
    • Steam
    • Youtube
    • Просмотр профиля
Пожалуй Steam будет очень весомой причиной вновь поставить себе Линуху. Я ещё в 2010 году впервые поюзав Убунту чуял, что у него большие перспективы :)

Оффлайн ShadowFlash

  • Пользователь
  • Сообщений: 2270
  • Пол: Мужской
    • Просмотр профиля
ShadowFlash, в OpenGL только графика, для всего остального придётся использовать сторонние решения и как-то их "гоп до кучки", что гарантирует глюки и падения производительности. в DX - и графика, и звук, и инпут и прочие 33 удовольствия.
и вообще. если OpenGL такой великий и могучий, почему ж idTech 5 так погано выглядит, не просветишь? )

А то убогих DX движков, выглядящих куда хуже idTech5 мало. И тормозных при этом, как чорт знает что. И траха с xinput, геймпадами и прочим в DX нету ? И почему отдельная либа для звука гарантирует глюки. Over9000 софта юзают OpenAL, SDL и нифига не глючит. А пустые циклы как раз вон D3D гоняет. Глайд был крут, 3Dfx накрылся и нету глайда. Microsoft не может накрыться ? История с Kodak говорит о том, что может.
Не забываем так же что OpenGL это промышленный стандарт. И встречается везде, от мобилок до сверхмощного железа. Что облегчает портирование в разы.

Оффлайн Planestranger

  • Пользователь
  • Сообщений: 1837
  • Пол: Мужской
    • Просмотр профиля
Цитата: ShadowFlash
А то убогих DX движков, выглядящих куда хуже idTech5 мало.

на DX всего много. и убогого и красивого. а вот чисто OpenGL профессиональных движков не видно. поделие от старых маразматиков из id - один в поле воин. тот же Unreal Engine в консольной OpenGL-ипостаси выглядит просто как свежая коровья лепёшка по сравнению с писями, о чём выше говорилось.