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.

Отсюда

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

всё довольно сложно

Кто бы сомневался( Ну в общем понял.

имеющаяся внутренняя документация не подходит

Они по верилогу пишут? Ну генерят некоторые участки блоба точно по нему.

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

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

Из чего можно сделать следущие вывод: Wine для таких игр не нужен

Например выдрать пароль из обфусцированного бинаря.

А зачем этот пароль?

Да хоть тот же скайп тоже крякают люди.

Зачем? Скайп не нужен, есть мамбл и много других полезных программ

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

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

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

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

Например выдрать пароль из обфусцированного бинаря.

А зачем этот пароль?

чтобы получить деньги :)

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

Зачем?

Чтобы отреверсить протокол и получить возможность создания альтернативных клиентов.

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

Да и зачем вообще анализировать всякую дрянь?

Например чтобы писать свободные драйвера на замену блобам.
Ну или чтобы реверсить форматы типа DWG и писать LibreDWG.

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

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

Звук не отваливается, а игры идут на высших настройках в wine и в windows одинаково. Единственное, что первые две минуты некоторые игры подглючивают, потом работают отлично. Так что разницы в производительности не заметил.

mopsene ★★★
()
Ответ на: комментарий от 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 ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.