LINUX.ORG.RU
ФорумTalks

Иан Романик из Intel о Valve Linux Team, патчи для улучшения производительности Left 4 Dead 2 с драйвером Intel

 , , ,


2

3

Last week my team and I spent some time in Bellvue working with Valve's Linux team on their port of Left 4 Dead 2.

It was the most successful work trip I've ever had. The guys at Valve were amazing to work with. They are sharp, driven, and have an aggressive plan. Looking at how far they've come and the short amount of time in which they've done it, I have every confidence that they're going to kick their plan right in the butt. It's going to be a good time to be a Linux gamer.

We had three main goals going in:

  • Help them tune their game for our driver / hardware.
  • Find out where our performance is lacking.
  • Find out what OpenGL features they need / want.

I think we scored on every point. We helped them find some performance bugs in their vertex buffer management (which also affected other GPUs / drivers) and some places where the accidentally triggered shader recompiles. This gave some healthy performance improvements.

We also found some areas where our driver really, really needs to improve. They have a couple shaders that devolve into register spilling nightmares. There are also a few places where we eat way, way too much CPU. A lot of these problems mirror issues that we've seen with other game engines (e.g., Unigine).

These have been a lot easier to diagnose on L4D2 because we have access to their source code. Being able to take a profile that shows times in the driver and in the application makes a world of difference. Being able to tweak little things in the app (what happens if I do this...) is also helpful for diagnosing performance problems. Eric has already started landing patches for L4D2 performance, and there will be many more over the coming weeks.

The funny thing is Valve guys say the same thing about drivers. There were a couple times where we felt like they were trying to convince us that open source drivers are a good idea. We had to remind them that they were preaching to the choir. :) Their problem with closed drivers (on all platforms) is that it's such a blackbox that they have to play guess-and-check games. There's no way for them to know how changing a particular setting will affect the performance. If performance gets worse, they have no way to know why. If they can see where time is going in the driver, they can make much more educated guesses.

We also got some really good feedback about features. The biggest feature they want is better output from GL_ARB_debug_output. They really want to know when they do things that fall off performance paths, trigger shader recompiles, etc. We hacked out some initial versions of this, and it was a big help. Some patches in that area should hit the mailing list soon.

They're also interested in what they call «smart vsync.» Swaps that are scheduled soon enough will have vsync, and the application will be vsync limited. Swaps that are scheduled too late happen immediately. In their words, «Tearing is bad, but dropping to 30fps is worse.» On GLX, we can expose this with GLX_EXT_swap_control_tear.

Отсюда

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

а валв не говорил пока это пыщ-пыщ для линукса не появилось, они молча делали свой фан.

ну не валв, так изнасилованные журнализды говорили.

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

у меня интел, хд3000. и вайн просто как то не признаю.

ну и зря. Отличная штука. Причем не только для игр.

dikiy ★★☆☆☆
()

А вообще еще есть профит, что OpenGL как стандарт нехило усилит свои позиции. Direct3D маст дааааайй!

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

извиняюсь если не правильно понял, просто мне показалось, что вы саркастически отнеслись к размеру патча, про который в топике речь идет

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

Вот кстати cast Xenius.
These have been a lot easier to diagnose on L4D2 because we have access to their source code. Being able to take a profile that shows times in the driver and in the application makes a world of difference.

(Перевод: Это было намного легче диагностировать на L4D2, поскольку у нас был доступ к их исходному коду)

Видите, аргумент в пользу того, что все игры тоже должны быть свободными, а не только прикладные программы. Надеюсь что Valve пойдёт по правильному пути и откроет исходники всего что может. И что авторы Unigine прочитают и всё-таки тоже наконец откроют исходники движка — а без исходников их движок ни нафиг не нужен, как и игры на нём.

Тем не менее, любой проприетарный софт, хоть от Valve, хоть от Canonical, хоть от FSF (представим ситуацию, что таковой будет) — проприетарный, а значит нарушает свободу пользователя, поэтому его не нужно использовать.

Xenius ★★★★★
()
Последнее исправление: Xenius (всего исправлений: 2)
Ответ на: комментарий от Xenius

Надеюсь что Valve пойдёт по правильному пути и откроет исходники всего что может.

размечтался

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

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

УК РФ тоже нарушает свободу граждан :(

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

УК РФ тоже нарушает свободу граждан :(

И к чему ты это пишешь? В части статей ограничения полезные — так как позволяют наказывать тех, кто сам нарушает чужие права и свободы, например в статьях про убийство, причинение тяжкого вреда здоровью и тд. Некоторые статьи УК действительно нарушают свободу, так как криминализуют то, что имеет несоразмерно малую или даже отрицательную общественную опасность. Кроме того есть недостатки в недостаточной чёткости некоторых формулировок, которые позволяют искусственно подгонять действия людей под статью, которая предусматривает незаслуженно низкое или высокое наказание. Примеры сам найдёшь?

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

Пацаны собрались и помогли друг другу.

Звучит как сюжет интересного фильма :3

Тащемта, l4d2 разве на интелах пойдет?

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

На интелах под оффтопиком (на D3D) идут и намного более тяжелые игры, т.е для L4D2 там производительности более чем достаточно.
Проблема только в очень корявой реализации OGL, на винде она такая же корявая и тормозная.

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

Тащемта, l4d2 разве на интелах пойдет?

Конечно, все source-игры пойдут.

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

ну и зря. Отличная штука. Причем не только для игр.

Для игр Wine не нужен.

нужен.

Для чего он ещё не нужен? Или таки нужен?

например IDAPro пускать под ним. Или Delphi. Или анализатор PE-заголовка. Да мало ли что бывает надо.

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

Из радеоновских драйверописателей там кто нибудь отметился?

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

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

Поддержка-то там неполная.

Occlusion query нет. В остальном все в норме (если считать нормой софтовую обработку вертексов)

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

Для игр Wine не нужен.

нужен.

У меня все игры, в которые я играю, работают без Wine, ЧЯДНТ?

например IDAPro пускать под ним.

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

Или Delphi.

Не нужно, Lazarus есть

Или анализатор PE-заголовка.

А что, нет нативных? Я уверен, что есть. Да и зачем вообще анализировать всякую дрянь?

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

У меня все игры, в которые я играю, работают без Wine, ЧЯДНТ?

играешь только в те игры, которые работают без wine. К.О.

например IDAPro пускать под ним.

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

а я пользовался. В этом наша разница :)

Или Delphi.

Не нужно, Lazarus есть

и все же я настаиваю. Да и вообще - я жду того момента, когда в lazarus появится вменяемая контекстная помощью. Хотя бы на уровне Delphi 3.

Или анализатор PE-заголовка.

А что, нет нативных? Я уверен, что есть. Да и зачем вообще анализировать всякую дрянь?

если есть - найди.

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

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

например IDAPro пускать под ним. Или Delphi. Или анализатор PE-заголовка.

Виртуалка, да. А ещё у IDA, ЕМНИП, есть нативная версия.

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

например IDAPro пускать под ним. Или Delphi. Или анализатор PE-заголовка.

Виртуалка, да. А ещё у IDA, ЕМНИП, есть нативная версия.

есть. Но ее намного труднее отрыть.

И пускать в виртуалке то, что можно пустить в wine - это бред.

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

вайн - торт.

А что, этот баг и ещё пачку связанных с многопроцессорными системами, звуком, клавиатурами и Steam'ом уже исправили? А ведь игры на Source имеются статус Platinum в Wine AppDB.

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

Хочется просто чтоб они с начала «стима под линукс» наладили контакт. Вопрос был про свободный драйвер.

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

Но ее намного труднее отрыть.

Это опечатка?

И пускать в виртуалке то, что можно пустить в wine - это бред.

И в чём же это выражается? Или кто-то не слышал про hardware-assisted виртуализацию?

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

Но ее намного труднее отрыть.

Это опечатка?

нет. отрыть == найти.

И пускать в виртуалке то, что можно пустить в wine - это бред.

И в чём же это выражается? Или кто-то не слышал про hardware-assisted виртуализацию?

в том, что ты предлагаешь для запуска одной программы ставить целую ОС.

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

Ну, я не помню, чтобы в Windows-версии Steam и Source-играх отваливался звук, клавиатура или были проблемы с производительностью, в отличие от Wine.

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

Марек вообще Мужик! И сегодня я пару тостов выпил за него) Из моей компании никто не понял кто это, но пофиг:)

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

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

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

нет. отрыть == найти.

Чего искать-то? Вот же.

в том, что ты предлагаешь для запуска одной программы ставить целую ОС.

Ты говоришь «целую ОС» так, словно это не просто горка файлов в контейнере. Виртуализация даёт удобство в выполнении, управлении(снапшоты всякие и т.д.) и нативную производительность. Wine же ничего этого не предоставляет.

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

нет. отрыть == найти.

Чего искать-то? Вот же.

в то время, как мне надо было - не было в свободном доступе.

в том, что ты предлагаешь для запуска одной программы ставить целую ОС.

Ты говоришь «целую ОС» так, словно это не просто горка файлов в контейнере. Виртуализация даёт удобство в выполнении,

у тебя есть горства файлов винды в контейнере? А у меня нет. И времени на установку в виртуалку тоже нет. И желания нет тратить чуть ли не гиг места.

Виртуалку надо как-то подключать к системе. Грузить ее. Она время жрет и память. Это глупость пользовать виртуалку, когда wine работает.

управлении(снапшоты всякие и т.д.) и нативную производительность. Wine же ничего этого не предоставляет.

лолшто? Производительность как раз у wine частенько даже получше нативной.

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

в то время, как мне надо было - не было в свободном доступе.

Откуда бы коммерческой программе быть в «свободном доступе»?

И времени на установку в виртуалку тоже нет.

Это буквально несколько минут.

И желания нет тратить чуть ли не гиг места.

Место на HDD экономишь? Или дисковый трафик?

лолшто? Производительность как раз у wine частенько даже получше нативной.

Я у тебя как раз и спрашивал:

Или кто-то не слышал про hardware-assisted виртуализацию?

Получается, действительно не слышал.

Да и глупо как-то сранивать производительность Wine'а с чем-то ещё, когда в нём там и тут заглушки для вызовов.

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

в то время, как мне надо было - не было в свободном доступе.

Откуда бы коммерческой программе быть в «свободном доступе»?

да.

И времени на установку в виртуалку тоже нет.

Это буквально несколько минут.

которые я не собираюсь тратить. И тем более для этого нужен диск с виндой, который надо скчать. А потом еще неизвестно какие баги полезут. Я уже как-то пытался XP водрузить. Через чам мучений плюнул на это и все.

И желания нет тратить чуть ли не гиг места.

Место на HDD экономишь? Или дисковый трафик?

место. и ОЗУ.

лолшто? Производительность как раз у wine частенько даже получше нативной.

Я у тебя как раз и спрашивал:

Или кто-то не слышал про hardware-assisted виртуализацию?

это не отменяет факта.

Да и глупо как-то сранивать производительность Wine'а с чем-то ещё, когда в нём там и тут заглушки для вызовов.

оно работает как от него требуется, а большего мне не надо.

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

Хочется просто чтоб они с начала «стима под линукс» наладили контакт. Вопрос был про свободный драйвер.

Реализация поддержки GCN, додавливание вопроса с UVD, раскрытие доков по энергосбережению APU имхо всё же важнее. Их работа над поддержкой OpenCL в свободных драйверах - это то, из чего складывается финансирование отдела. Ну и давняя тема HDMI-аудио (там тоже требуется раскрытие документов).
В общем от них все в первую очередь ждут hardware enablement, оптимизациями можно заняться потом, и ими могут заниматься вообще другие люди. Команде Джона логично делать то, что могут заниматься только они, и никто больше - написанием большего количества документации, решением вопросов с её раскрытием и реализацией поддержки нового железа. Он ведь обещал поддержку восьмитысячной серии в свободных драйверах со дня запуска, помните? А ведь для исполнения этого обещания требуются немалые ресурсы, при том что на них и так уже висит куча работы.

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

Реализация поддержки GCN, додавливание вопроса с UVD, раскрытие доков по энергосбережению APU имхо всё же важнее. Их работа над поддержкой OpenCL в свободных драйверах - это то, из чего складывается финансирование отдела. Ну и давняя тема HDMI-аудио (там тоже требуется раскрытие документов).

Я не знаю что внутри АМД происходит но думаю вопрос раскрытия документации/открытия кода лежит не в компетенции программистов а скорее юристов. Так что я думаю врядли прям этим заняты программисты. «поддержкой OpenCL» исключение тут конечно программисты.

Это просто моя хотелка одна из многих. Просто не хочется такого сюрприза когда стим вышел(с играми) на всех дровах работает а с радеонами глючит, но конечно как выйдет примим участие в тестировании:)

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

Или кто-то не слышал про hardware-assisted виртуализацию?

Во первых нужен процессор и материнка с соответствующими характеристиками.
Ещё желательно иметь отдельный hdd, т.к винда очень любит своп и будет работать медленнее на разделе с уже работающей системой.
Для проброса видеокарты нужно специально подобранное (выбор среди очень маленького списка) железо, и то не факт что взлетит.
Ну и в добавок нужно как минимум два адаптера.

В общем это не панацея совсем.

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

вопрос раскрытия документации/открытия кода лежит не в компетенции программистов а скорее юристов

Для того, чтобы открыть документацию, её нужно написать (имеющаяся внутренняя документация не подходит). Чтобы её написать, нужно понять как работает железо. Для этого нужно реализовать недостающий функционал в драйвере (но на данном этапе не раскрывать код, а написать на основе этого кода документацию, предназначенную для последующего раскрытия; если будет получено добро на раскрытие документации - можно и код закоммитить). И вот уже с документацией разговаривать с юристами и менеджерами, которые будут живо интересоваться, что да как работает, потому что раскрыв то, что нельзя раскрывать, AMD рискует получить многомиллионные иски. Менеджеры и юристы должны убедится, что правильно понимают то, что открывается, прежде чем дадут своё одобрение. В общем, как видите, всё довольно сложно.

Так что я думаю врядли прям этим заняты программисты.

Программисты непосредственно задействованы.

RussianNeuroMancer ★★★★★
() автор топика
Последнее исправление: RussianNeuroMancer (всего исправлений: 2)
Ответ на: комментарий от winddos

Во первых нужен процессор и материнка с соответствующими характеристиками.

Они доступны с 2005-го. Сейчас аппаратной виртуализации нет разве что в обрезках для нетбуков.

Ещё желательно иметь отдельный hdd, т.к винда очень любит своп и будет работать медленнее на разделе с уже работающей системой.

Несколько гигабайт RAM и быстрые диски - тоже давно уже реальность.

Для проброса видеокарты нужно специально подобранное (выбор среди очень маленького списка) железо

А теперь расскажи, много ли приложений(если не считать игрушки), для которых нужен passthrough PCI-устройств, ты реально используешь?

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

Несколько гигабайт RAM и быстрые диски - тоже давно уже реальность.

Это все стоит денег и виртуалка создает оверхед.
Нафига мне сажать батарейку на ноуте виртуалкой, если можно юзать вайн?

Несколько гигабайт RAM и быстрые диски - тоже давно уже реальность.

Так или иначе любая операционка жрет много памяти.
А нормальные ноуты с 8+ гигами памяти стоят обычно не слишком дешего.

Быстрые диски это что? SSD? Чтобы мне его винда убила в два раза быстрее?
Ну а на подавляющем большинстве HDD скорость довольно сильно ограничена.

А теперь расскажи, много ли приложений(если не считать игрушки), для которых нужен passthrough PCI-устройств, ты реально используешь?

Если не считать игрушки и всякий софт где есть 3D, то в остальном у вайна и нет особых примуществ.

Но вопрос в том, что виртуалка это крайний случай (фотошопы гонять, студию).
Для остальных случаев ставить винду в виртуалку если есть вайн - бред.
Ещё не забывай о том, что для установку в виртуалку винду надо купить (OEM нельзя).

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

Ну и ещё одна проблема в виртуалках: без проброса видеокарты там вся отрисовка прет через тот же вайн, только обпертый на ещё кучу костылей.
Т.е все что требует отрисовки (не только 3D) будет всегда медленнее чем в вайне, т.к тупо добавляется дополнительный шаг в отправке команд.

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

Это все стоит денег и виртуалка создает оверхед.

О том и речь, что аппаратную виртуализацию сейчас может даже процессор дешевле 60$.

А нормальные ноуты с 8+ гигами памяти стоят обычно не слишком дешего.

Между тем, 8Гбайт RAM стоят чуть меньше полутора тысяч. Примерно за ~90$ можно и вовсе кит на 16Гбайт купить.

Быстрые диски это что? SSD? Чтобы мне его винда убила в два раза быстрее?

Это HDD.

Если не считать игрушки и всякий софт где есть 3D, то в остальном у вайна и нет особых примуществ.

Софт с 3D(кроме, пожалуй, тяжёлых проектов в пакетах графического моделирования вроде 3ds Max или Maya) и так без проблем работает в виртуалках. Даже некоторые игры.

Ещё не забывай о том, что для установку в виртуалку винду надо купить (OEM нельзя).

Что, срок действия майкрософтовских образов для совместимости с XP уже истёк?

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

При чём тут аккумулятор - не понял(что-то я не замечал ощутимого сокращения времени работы с виртуалкой), но у виртуализации есть одно преимущество, которое сразу ставит на Wine метку «Не нужно»: приложения работают так, как задумано, а не высыпают на пользователя несколько экранов fixme, оставляя его наедине с дебаггером.

И да, они так работают всегда, а не до следующего минорного релиза, в котором всё это поломают в угоду новой игрушке, выдающей в Wine пару fps.

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

Ну и ещё одна проблема в виртуалках: без проброса видеокарты там вся отрисовка прет через тот же вайн, только обпертый на ещё кучу костылей.

Не надо представлять проблемы VMWare как проблемы виртуализации, ага. Так что вторая часть твоего сообщения по умолчанию неверна.

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