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.

Отсюда

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Эта проблема у тебя буде в __любой__ виртуальной машине.
Они все реализовывают поддержку D3D и прочих мелкосовтовских графических api через вайн.

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

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

Расскажи как мне засунуть в нетбук 16 гбайт памяти.

Это HDD.

HDD за последние года не стали принципиально быстрее.
И «тихого» ноутбучного диска для виртуалки на которой крутится тяжелый софт может не хватить.
А 10000 rpm это не ноутбучный вариант, да и не десктопный.

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

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

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

Ты о чем? Я сомневаюсь, что так можно делать тем у кого лицензии на винду вообще нет.

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

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

Все кроме отрисовки.

Софта который в вайне не работает довольно мало, к тому же на winehq почти всегда есть описание как и что запускать чтобы работало.

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

Кто тебя заставляет сидеть не на стабильной ветке?
На стабильных ветках все стабильно :)

выдающей в Wine пару fps.

Толсто, в Wine производительность игрушке не сильно меньше, чем на винде.
А иногда выше из за заглушек на части вызовов :)
А иногда выше из за того, что на ntfs все пашет хуже.

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

Ну а как по твоему идет отрисовка (реализованная на всяких DirectDraw/D3D), если доступа к видеокарте у ОС в виртуалке нет?

D3D в виртуалке (без проброса pci) реализуется только через вайн, а его юзают не только игры.

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

Расскажи как мне засунуть в нетбук 16 гбайт памяти.

Нетбук - это убогое устройство by design. В ноутбук - запросто, хоть 32.

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

2004-ый год - Hitachi TravelStar 4200 rpm - ~10Мбайт/с, 2011-ый год - Hitachi TraverStar 5400 rpm(самая тихая модель вообще) - ~80Мбайт/с. И ничего, хватает.

Ты о чем?

Об этом.

Толсто, в Wine производительность игрушке не сильно меньше, чем на винде.

Ты забыл ключевое слово - «иногда».

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

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

Для ускоренного D3D используют код из Wine, точно так же оборачивают всё в OpenGL. Но на D3D это и заканчивается.

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

Да, кстати, если вспоминать о преимуществах виртуализации, можно добавить поддержку x86_64 приложений, которая просто работает. А что там в Wine? Вот то-то и оно.

А ещё seamless-режим, вот.

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

В ноутбук - запросто, хоть 32.

Угу, и в каждый так.

И ничего, хватает.

Зависит от потребностей.
Так или иначе при использовании файла/раздела виртуалка дает оверхед.

Об этом.

А уверен ли ты, что будет легально использовать это под линуксами?

Ты забыл ключевое слово - «иногда».

У меня никогда не было более 10-15% потери производительнсти по сравнению с виндой, как минимум на nVidia с блобом так.
Ну а если игра хочет D3D10/11, то она и в виртуалке у тебя не заработает.

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

Угу, и в каждый так.

Не в каждый, но в каждый новый(но не ультрабук) - минимум 16Гбайт.

Так или иначе при использовании файла/раздела виртуалка дает оверхед.

Можешь прочитать соглашение, если тебя это так волнует. В любом случае, ты же ведь используешь Wine, LAME, x264, Theora?

Ну а если игра хочет D3D10/11, то она и в виртуалке у тебя не заработает.

Речь даже не о DirectX, а хотя бы нормальной поддержке SMP.

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

Да, кстати, если вспоминать о преимуществах виртуализации, можно добавить поддержку x86_64 приложений, которая просто работает. А что там в Wine? Вот то-то и оно.

Я не говорю, что у виртуализации нет преимуществ.
Просто мало кому надо запускать в виртуалке 64-битную систему и софт.
Сам везде юзаю PAE и пока мне вполне хватает лимита памяти.

У wine есть своя ниша и есть софт который через него отлично работает.
Нафига виртуалка, если и так работает!?

А ещё seamless-режим, вот.

Только он во всех виртуалках криват. Плавали, знаем.

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

Только он во всех виртуалках криват. Плавали, знаем.

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

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

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

Уродство или красота здесь не причем.

Вопрос в том, что приложение запущенное в вайне позволяет управлять его окном как мне нравится и более-менее адекватно реагирует на стандартные действия.
А в виртуалках полно багов и иногда изменишь размер окошка, а в виртуалке вместо рабочего стола кровь, кишки итп.
Вайн в этом плане более предсказуем.
А ещё этот режим может отлично работать в compiz+unity, а в metacity+gnome2 упасть.
По крайней мере 5 месяцев назад в том же вируалбоксе была куча глюков с этими режимами.

Я понимаю, что можно использовать виртуалку для софта который пашет очень плохо (например все фотошопы ранее в вайне вообще не работали как и флеш) это вполне нормально.
Но какой смысл использовать виртуалку (нарушая закон или платя за винду), если все работает?

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

Нетбук - это убогое устройство by design. В ноутбук - запросто, хоть 32.

а чем отличается нетбук от ноутбука? где грань?

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

Тебе поговорить в столь поздний час не с кем? Ну, ладно, так уж и быть, подыграю:

MBA - не пойми чтооутбук, вот то недоразумение с Atom'ом - тоже.

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

Обладает небольшой диагональю экрана 7—12 дюймов, низким энергопотреблением, относительно невысокой стоимостью и небольшим весом.

air 11" вписывается

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

Да, кстати, если вспоминать о преимуществах виртуализации, можно добавить поддержку x86_64 приложений, которая просто работает. А что там в Wine? Вот то-то и оно.

Что «оно»? Какие проблемы? Даже в Убунтах сейчас одним кликом ставится WINE с поддержкой x86_64.

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

Wine64 уже зарелизили и он уже доступен в репозиториях дистрибутивов? Он до сих пор нестабилен, если что, считай, только для девелоперов(о чём, кстати, вполне доступно написано).

А с 64-х битными ОС и приложениями в виртуалках всё просто и понятно.

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

Wine64 уже зарелизили и он уже доступен в репозиториях дистрибутивов?

Как, наверное, удивительно быть вами и делать новые открытия каждый день.

Он до сих пор нестабилен, если что, считай

Вы писали если вспоминать о преимуществах виртуализации, можно добавить поддержку x86_64 приложений, которая просто работает. В WINE, как вы прекрасно знаете, «просто работает» не касается и x86-приложений, но если приложение работает (хоть x86, хоть x86_64) почему бы не использовать WINE?

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

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

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

Отлично соскочил с темы беседы и перевёл её на собеседника. Вот, что говорится в FAQ проекта и в Wiki:

2.4. Does Wine run on 64-bit?

Support for 64-bit Windows applications is currently experimental
Wine is also experimentally offered in 64-bit. 32-bit and 64-bit Windows applications (should) work with it.

Wine 64bit and it's WoW64 subsystem aren't ready for public consumption yet. We still recommend the 32bit Wine build for users.

Короче, слив засчитан. Правильную работу никто не гарантирует, так зачем тратить время на эти костыли, когда можно просто работать(ещё один риторический вопрос)?

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

Софта который в вайне не работает довольно мало, к тому же на winehq почти всегда есть описание как и что запускать чтобы работало.

Это все-таки 4.2, как ни жалко. ~20% приложений в winehq имеют рейтинг Garbage на последней стабильной версии вайна.

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

FAQ проекта и в Wiki
Короче, слив засчитан.

Мы обязательно обсудим ваши сантехнические проблемы, когда WINE wiki начнут обновлять более-менее регулярно, а её содержание будет соответсововать реальному положению вещей, а не тому, что было актуально год назад.

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

last edited 2012-06-03 11:35:29

Ещё вопросы? Да и что-то никаких более актуальных источников(ну там changelog'и, сообщения в списках рассылки) ты привести не потрудился.

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

так вот я на это и намекал - четкой грани между ноутбуком и нетбуком нет, только маркетоидная

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

Ещё вопросы?

Да никак вопросов: вы просто не в курсе общего состояния вайновской wiki, дальше спорить смысла не вижу.

Да и что-то никаких более актуальных источников(ну там changelog'и, сообщения в списках рассылки) ты привести не потрудился.

Для нормальных людей всё написано в README. Воображению любителей теорий заговора не помешает разгуляться даже стабильный релиз WINE 1.4, который был выпущен уже с поддержкой x86_64.

Ах да, ткну-ка я вас ещё раз в заданный выше вопрос, а то вас как обычно куда-то заносит от предмета разговора. Как вы говорите? Буквоедство?

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

Ответ содержится в вопросе же. В виртуалках приложения _просто работают_, в Wine они если и работают, то уж совсем не так просто.

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

А 10-15% софта не взлетят на Windows 7, как ни крути.

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

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

Обладает небольшой диагональю экрана 7—12 дюймов, низким энергопотреблением, относительно невысокой стоимостью и небольшим весом.

air 11" вписывается

Он стоит меньше 16 кр?

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

барьер у каждого свой
спецификаций же нет

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