Довольно часто можно столкнуться с мнением, что на Linux нет и не может быть красивой графики в играх, что Linux вообще не для игр и что выпускать версии драйверов с поддержкой OpenGL выше 2.х не имеет смысла, так как нет программ, которые могли бы его использовать. На самом деле это не так.
23 марта 2010 г. интернациональная компания Unigine Corp., состоящая преимущественно из российских программистов и базируюущаяся в Томске, выпустила наконец очередную демонстрацию/бенчмарк своего движка под названием Unigine Heaven под Linux.
Ранее 22 октября 2009 г. была выпущена версия под windows с поддержкой DirectX 11. Задержка Linux версии была связана с отсутствием необходимой поддержки тесселяции в драйверах ATI для текущей 5-й серии видеокарт, а видеокарты Nvidia младше, чем на днях вышедшие Fermi такую функцию не поддерживают. К сожалению данная поддержка так и не появилась к моменту выхода бенчмарка, поэтому разработчики отключили в нем возможность использования тесселяции.
Насколько качественной получилась картинка можно судить по следующим скриншотам:
http://img689.imageshack.us/img689/4607/00007a.jpg
http://img535.imageshack.us/img535/1231/00008o.jpg
http://img535.imageshack.us/img535/407/00011m.jpg
http://img716.imageshack.us/img716/4024/00014.jpg
http://img716.imageshack.us/img716/1735/00017.jpg
Однако несмотря на то, что использование тесселяции отключено разработчиками, ее можно включить вручную, если в файле heaven_2.0.cfg прописать item name="gl_render_use_amd_vertex_shader_tessellator" type="int">1. Unigine Heaven очень активно использует данную технологию. И если в современных DirectX 11 играх, таких как Сталкер: Зов Припяти и Aliens vs. Predator (2010) ее включение едва заметно, то в этой демонстрации разница разительная. Судите сами:
http://img535.imageshack.us/img535/5298/00018u.jpg
http://img697.imageshack.us/img697/7196/00019re.jpg
http://img697.imageshack.us/img697/7894/00020s.jpg
http://img697.imageshack.us/img697/9629/00021c.jpg
http://img163.imageshack.us/img163/1121/00022v.jpg
http://img231.imageshack.us/img231/1219/00023n.jpg
http://img13.imageshack.us/img13/3155/00024z.jpg
http://img715.imageshack.us/img715/8466/00025p.jpg
Раз уж это бенчмарк, то естественно хотелось бы посмотреть, как он оценит мое железо, тем более, что не так давно я перешел на видеокарту производства ATI, которые имеют очень дурную славу под Linux из-за ограниченной реализации своих функций в драйверах, что приводило к тому, что даже значительно более мощные версии видеокарт ATI очень серьезно уступали в производительности более слабым видеокартам производства Nvidia. А о равенстве одинаковых по мощности видеокарт ATI и Nvidia не могло быть и речи. Итак, вот тестовая конфигурация:
Processor: Intel Core 2 Quad CPU Q9550 @ 2.84GHz (Total Cores: 4)
Motherboard: ASUSTeK P5K
Chipset: Intel 82G33/G31/P35/P31 + ICH9
Memory: 3959MB
Disk: 500GB Western Digital WDC WD5000AAKS-0 + 250GB Seagate ST3250410AS
Graphics: ATI Radeon HD 5870 1024MB (850/1200MHz)
Я провел тестирование с помощью Phoronix Test Suite на январской (10.1) и мартовской (10.3) версиях проприетарного драйвера Catalyst, а также проверил насколько сильно падает производительность при включении тесселяции.
Из результатов видно, что кривая падения производительности при увеличении разрешения довольно пологая, что сразу вызвало подозрение, что что-то мешает получить более высокое количество кадров в секунду на низких разрешениях. Подозрение сразу упало на процессор, и оно полностью оправдалось. Максимальная загрузка процессора при работающем бенчмарке оказалась равна 28%, что при наличии 4-х ядер означает, что он задействует чуть больше чем одно ядро. Таким образом, если бы удалось задействовать все 4 ядра, то наверняка количество кадров существенно увеличилось бы не только на малых разрешениях, но и на больших. Думаю, что эту досадную недоработку разработчики поправят в будущих версиях движка.
Разница между январской и мартовской версией Catalyst мало заметна и составляет чуть больше 1 кадра в пользу январского релиза. Тем не менее, не смотря на это небольшое снижение производительности в Unigine Heaven, Catalyst 10.3 очень сильно прибавил, к примеру, в ИЛ-2, запускаемым через wine. Если раньше в отдельных моментах количество кадров падало до 24 кадров, что является позором для видеокарты такого уровня, то мартовские драйверы подняли минимальное значение кадров в секунду до 47. Поэтому развитие проприетарного драйвера от ATI не может не радовать. При этом разница между wine и windows составила всего около 10 кадров в пользу последней.
Что наверное больше всего бросается в глаза на графике результатов, так это насколько сильно включение тесселяции снижает производительность. Такое количество кадров в секунду комфортными не назовешь, не говоря уже о том, что они часто проседали до 5-8 кадров. Но ничего удивительного в этом нет, так как официальный релиз мартовского драйвера не поддерживает OpenGL 3.3/4.0, а значит тесселяция обсчитывается в драйвере неоптимизированно. Логично было бы предположить, что столь сильное падение производительности вызвано дополнительной нагрузкой на процессор, но оказалось, что это не так. При включенной тесселяции нагрузка процессора колебалась в районе 10%, иногда падая до 1%, и подскакивала до 28%, когда в кадре было мало тесселируемых объектов и количество кадров становилось выше 40.
25 марта вышла еще одна очень интригующая новость - ATI выпустила новый бета драйвер, основанный на версии 10.3, но уже с экспериментальной поддержкой OpenGL 3.3/4.0, который даст полную аппаратную поддержку тесселяции не только для карт HD 5***, но и теоретически для HD 4***. К сожалению, мне не удалось проверить насколько сильно эта экспериментальная поддержка повысит производительность. Но в любом случае апрельский драйвер это покажет.
Меня очень порадовало качество поддержки 3D ускорения в проприетарном драйвере ATI под Linux, что обеспечило весьма привлекательную картинку при приемлемом количестве кадров секунду. Однако при прохождении теста в двух местах постоянно были какие-то проблемы с освещением, что приводило к тому, что часть картинки закрывалась черной текстурой. Но при включении свободного обзора, мне воспроизвести этот баг не удалось. Поэтому трудно сказать чья это ошибка, разработчика драйвера или бенчмарка.
Естественно я не мог не сравнить как обстоят дела в стане конкурентов, что позволило бы оценить насколько отличается поддержка ATI и Nvidia в Linux. Вот ссылка на более подробные результаты тестирования HD 5870. Ближайший соперник HD 5870 по скорости - это GTX 295. К сожалению обладатель этой карты провел тестирование только на разрешении 1680x1050. Но и это уже дает определенную информацию. GTX 295 показала в среднем 31 кадр, в то время как HD 5870 - 60. Самое логичное объяснение столь большой разнице заключается в том, что GTX 295 является по сути заводской SLI версией двух урезанных GTX 260 в одном корпусе, и ее эффективность во многом зависит от реализации SLI в драйвере. Видимо в Unigine Heaven в GTX 295 работала только одна карта, это указывает на недоработку в драйвере, что однако бывает встречается и в драйверах под windows. Так же мне удалось найти результаты тестов для GTX 275 и 8800GTS 512. Сравнивая эти результаты с результатами для HD 5870 видно, что паритет сохраняется. Примерно так же эти карты соотносятся и под windows, что означает, что в плане поддержки 3D, проприетарный драйвер ATI догнал своего конкурента от Nvidia. Из этого следует, что времена, когда под Linux карты ATI плелись в хвосте по производительности, к счастью прошли, и пользователи Linux, обладающие современными картами, как от ATI, так и от Nvidia, готовы к появлению новых игр. А это как минимум 2 игры на движке Unigine (одну разрабатывает сама Unigine Corp., а вторая - это Primal Carnage) и конечно игры на движке id Tech 5 - Rage и Doom 4.
Почему-то не удалось отобразить график напрямую на странице, хотя вроде все написал также как было у тебя, ar. Пришлось давать ссылку на imageshack.
Надо в формате ввода выбирать Full HTML. По-умолчанию включен Filtered HTML, который отфильтровывает все, кроме: a, em, strong, cite, code, ul, ol, li, dl, dt, dd и blockquote. Разумеется, с Full HTML нужно быть аккуратным, ибо можно и оформление сломать большой картинкой, и JavaScript вставить со всяким нехорошим кодом. :)
ЗЫ За статью спасибо, график подключил. :)
Пожалуйста :). Думаю надо убрать в ссылке на график width="640px" или снизить ее до родных 600px, а то картинка уже, и это ее растягивает. Я по-разному изгалялся, думал, что сайт не дает отобразить картинку, из-за того что не указана явно ее ширина. Эксклюзив я редактировать не могу.
Прошу уважаемых пользователей Liberatum.ru высказываться по теме, выразить свое мнение, нужны ли вообще подобные статьи-обзоры на Либератуме, и если нужны, то возможно предложить, какие обзоры вы бы хотели видеть в дальнейшем.
Исправлено.
Убрано.
А юзеры уже высказались. Статья на первом месте в блоке «Самое популярное за сегодня», обогнав даже новость о провокаторе Касперском. :)
Полезная статья, хорошие тесты!
Молодцы Unigine, что и для линукса, и для виндовса тесты делают.
Есть хоть чем теперь современные компьютеры красиво из под линукса потестировать.
И с виндозными компьютерами можно в одинаковом тесте "пиписьками" мериться :-))
_____________________
При тестировании для этой статьи, хорошо бы ещё посмотреть, как изменится график, если разогнать процессор, и если разогнать видеокарту (хотя бы символически - процентов на 25 ;-)
_____________________
С Unigine-тестами при долгой проверке стабильности и температурки процессора и прочего хозяйства, можно параллельно запускать что-то вроде такого скрипта:
#!/bin/sh
while true
do
7z b
done
( 7z вместе с p7zip-full поставится )
Можно, конечно, и через вайн запускать виндозный 7zipFM, да и многие тесты, для виндовса сделанные. Но полноценно обойтись только линуксовскими программками же интереснее! :-)))
Для проверки стабильности и температуры можно использовать Mprime. Он хорошо прогревает процессор.
Насчет разгона, идея хорошая. Надо будет подумать.
Почему-то все равно нет вкладки "изменить". Есть только "просмотреть" и "следить". У меня скоро дополнение по статье будет готово и, по-моему, логичнее его разместить тут же :)