Хабраиндекс
770,59
28 мая 2012 в 16:30

Игры разума. Разбираемся с Intel HD graphics. И играем?

image
На недавно прошедшей Конференции Разработчиков Игр, в то время как по выставке ходили девушки, еще более длинноногие и менее одетые, чем на фото, я, инженер по программным решениям Intel, рассказывала «об особенностях интергированных графических решений Intel и их эффективном использовании при разработке игр».
К моему удивлению, слушателями доклада оказались не только разработчики игр и те, кто ошибся аудиторией, но и простые пользователи Intel HD Graphics.
Поэтому, то есть, по многочисленным появкам слушателей, знакомлю с этим докладом и вас.

Доклад с подобной темой я делаю ежегодно уже раз в шестой-седьмой. Но, конечно же, я не повторяю один и тот же рассказ из года в год. И даже не делаю ремейки! Время идет, Intel
постоянно представляет новые графические решения, соответственно появляются новые требующие освещения вопросы.

Но кое-что остается без перемен — вступление, сообщающее, что рынок Интегрированной Графики Intel сейчас огромен, будет сильно расти и дальше, причем, среди всех категорий пользователей, так что эти GPU необходимо учитывать при разработке игр и прочих графических приложений
И если раньше единственное подтверждение этих слов было теоретическое — соответсвующий график или диаграмма из какого-нибудь серьезного источника типа Mercury Research, то теперь у меня появилось практическое и наглядное подтверждение. Ультрабуки. Переход на устройства этого типа столь же неизбежен для пользователей, как и завершившийся не так давно переход от ЭЛТ телевизоров и мониторов к ЖК.
Хотя спецификация ультрабука и не требует наличия встроенного GPU, но жесткие требования к его габаритам не позволяют вставить туда дискретную графическую карту, не сплюснутую предварительно танком. Поэтому во всех ультрабуках (а не только тех, что у девушек на фото) используется интегрированное с процессором решение — Intel HD Graphics.

Intel HD Graghics. Сurriculum vitae.

gpu features

Впервые графическое ядро Intel переехало к CPU с северного моста материнской платы в 2010, и сразу же сменило имя — c Intel GMA (Graphics Media Accelerator) на Intel HD Graphics. Но это пока был еще «гражданский брак», GPU не был полностью интегрирован с CPU, он даже производился по другой технологии — 45nm против 32nm у CPU. Но, благодаря архитектурным улучшениям и повышению рабочей частоты, скорость обработки 3D в сравнении с прошлой версией Intel GMA выросла на 70%.
В 2011 в ядро Sandy Bridge была интегрирована Intel HD Graphics второго поколения. По первоначальному плану в мобильные устройства должна была ставиться модификация GT1 — версия Intel HD 2000 с 6 исполнительными устройствами (Execution Units или EU), а в десктопные (модификация GT2) — Intel HD 3000 с 12 EU. (Кстати архитектура HD Graphics изначально закладывала возможность технически простейшего добавления EU.)
Но, в итоге, в мобильные устройства попала Intel HD 3000, а в подавляющую часть десктопных — Intel HD 2000.
И, наконец, ровно месяц назад, в паре с Intel Ivy Bridge CPU появилась Intel HD Graphics 3. HD Graphics третьего поколения отличается не только увеличением числа EU до 16 для десктопной модификации HD Graphics 4000, но и улучшением самих EU, способных к исполнению трех инструкций за такт, а также появлением L3 cache, дополнительного текстурного семплера и полной поддержкой в железе DirectX 11. Еще одна уникальная фишка третьего поколения CPU — варьируемый размер векторных инструкций EU. Система способна диспетчеризовать логические потоки HLSL на исполнительные устройства как SIMD8, SIMD16 или SIMD32.

На слайде ниже показаны более детальные сравнительные характеристики Intel HD:image
Почему слайд такой серый? А потому, что совершенно секретный! В изначальной версии на нем стоял гриф Intel Confidential, означающий строгий запрет к распространению, а также присутствовало не три колонки, а четыре. В четвертой колонке были характеристики новой, еще не выпущенной Intel GPU. Соответственно, по сравнению с той, еще не существующей новинкой, все остальное показывалось просто серым. Раскрашивать слайд я не стала — это же не «17 мгновений Весны».

Intel HD Graghics третьего поколения. Характеристика с места работы.

Какие же игры играбельны на Intel HD 4000, то есть, показывют фреймрейт больший или равный 25 кадрам? Если цитировать соответствующую страницу на сайте Intel, то — «большинство мейнстрим игр на разрешении экрана 1280х720 или лучше». На том же сайте приведен далеко не полный список из более чем ста современных игр, производительность которых на Intel HD 4000/2500 подтверждена инженерами Intel.
А теперь — независимое внешнее тестирование. Заслуживающий доверия международный сайт с говорящим названием www.notebookcheck.net, занимающийся тестированием ВСЕХ видеокарт, встречающихся в нетбуках-ноутбуках-ультрабуках, недавно опубликовал результаты тестирования Intel HD 4000. Детально проверены например, такие игры, как Metro 2033, Call of Duty: Modern Warfare 3, Battlefield 3, Fifa 2012 и бенчмарк Unigine Heaven 2.1. Не буду пересказывать результаты, смотрите оригинал.

Напоследок, выборка из общей таблицы результатов синтетических тестов, сделанная для разных Intel GPU. Обратите внимание на изменение позиции в рейтинге прозводительности карт:
image

Вывод notebookcheck: «В целом, мы впечатлены новым графическим ядром Intel. Производительность по сравнению с HD 3000 улучшилась на 30%. Эта разница может быть даже больше — до 40%, если GPU спарено с мощным четырехядерным Ivy Bridge CPU, например, i7-3610QM.

Так что же делать, если ваша любимая игра на Intel HD не работает должным образом? Советы, даваемые www.intel.com/support/graphics/sb/cs-010486.htm, на первый взгляд выглядят Капитаном Очевидность: поменять настройки игры, проверить наличие новых патчей к игре, установить свежий драйвер Intel. Но на деле эти советы работают. Инженеры Intel тесно сотрудничают с разработчиками игр, в том числе и при создании патчей для совместимости с Intel GPU. Также, как заметил notebookcheck, „slowly but surely“ ( „медленно, но верно“) улучшаются драйвера Intel как по корректности, так и по производительности работы, что приводит к решению проблем с играми.
game not working

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

Краткие советы создателям игр


1. Корректно определяйте параметры графической системы и ее возможности — поддержку шейдеров, расширений DX и доступную видеопамять (учтите, что у Intel GPU нет отдельной видеопамяти, она совместно с CPU использует память системную).

Посмотреть на пример исходного кода и бинарника приложения для корректного и полного определения параметров системы с Intel GPU — GPU Detect можно здесь.
Кроме того, Microsoft DirectX SDK (июнь 2010) включает пример Video Memory для определения размера доступной видеопамяти. Советуем также поискать в Интернете „Get Video Memory Via WMI“.

2. Учитывайте возможности Turbo Boost. Благодаря Turbo Boost частота Intel GPU может увеличиваться в два раза, давая существеный прирост производительности. Но только если это позволяет термальное состояние системы. А это происходит по понятным причинам только когда не сильно занят, то есть, не сильно нагрет CPU.

Вытекающий отсюда совет — как можно реже использовать запрос состояния CPU — GetData(). Учтите, что вызов GetData() в цикле с ожиданием результата — это 100% загрузка CPU. В случае крайней необходимости делайте запросы к CPU в начале отрисовки кадра и загружайте CPU какой-нибудь полезной работой перед получением результатов GetData. В этом случае ожидание CPU будет минимально.

3. Используйте реализуемое Intel GPU раннее отсечение по Z (Early Z rejection). Эта технология позволяет заранее отбрасывать из дальнейшей обработки, т.е. не выполняя дорогостоящие с точки пиксельные шейдеры, фрагменты, не проходящие тест глубины, — загораживаемые другими объектами.

Для результативного использования Early Z существуют два метода:
— сортировка и отрисовка объектов от ближних к дальним по глубине (front to back)
— предпроход без отрисовки с заполнением буфера глубины и маскированием заведомо невидимых на финальном изображении областей.
Понятно, что первый способ не подойдет для сцен с (полу)прозрачными объектами, а второй имеет значительные накладные расходы.
Исходный код примеров использования Early Z можно посмотреть здесь.

4. Здравый смысл и общие советы по оптимизации графических приложений. Их для Intel GPU никто не отменял. Уменьшайте количество смен графических состояний и шейдеров, группируйте вызовы отрисовки, избегайте чтения из render targets, да и вообще не используйте более трех буферов отрисовки. Также оптимизируйте геометрию (Direct3D D3DXOptimizeVertices и D3DXOptimizeFaces) для кешей вершинных пре- и пост- преобразований DirectX.

5. И, наконец, для эффективноего обнаружения проблем с производительностью DirectX приложений на Intel GPU используйте бесплатный инструмент Intel GPAimage
+34
175348
87
vikky13 66,5

Комментарии (60)

+2
Stmf, #
Оии, какие милые костюмчики. А где такой можно достать?)
+1
Agent_Smith, #
Как ни крути, но Toshiba смотрится лучше всех.
+10
serega011, #
Ну не знаю, оранжевый lenovo на мой взгляд лучше:)
+1
Aldorr, #
Тоже за оранжевый Lenovo, но вот «тема сисек» раскрыта не полностью у всей четвёрки.
0
Kislov, #
Нене, однозначно Тошиба. 2-2.
+5
vikky13, #
У меня нет. Могу предложить только туфли :)
–12
Mobby, #
Мм девушка на хабрее…
+9
tangro, #
Виктория тут уже давно. Советую посмотреть другие её статьи и еще вот эти материалы. Вызывает не «мм», а большое уважение.
+2
Mobby, #
Ы данном случае «мм» было как раз уважение и интерес)
0
Gluttton, #
Вот если бы они еще и по техпроцессу в 45 нм были выполнены ;).
0
SovGVD, #
Можно погуглить zentai и батик, потом купить белый костюм и разукрасить как душе угодно.
+2
DmitryMe, #
На костюмы нанесен рисунок, очень похожий на «изображение начинки процессора» — куча прямоугольников разных цветов. Где бы узнать, как конкретно получаются такие изображения и что там что?
+5
soulburner, #
Боюсь вас расстроить, но по ходу дела, тут без раздевания девушки не обойсить ))))
0
DmitryBabokin, #
Такой оборот дела не должен расстраивать! :))
0
nerudo, #
Где б нарыть простое и короткое сравнение по разным графическим платформам — по одной/две видеосистемы из нынешнего и пары-тройки предыдущих поколений всех роизводителей? Чтоб вообще понимать масштабы различия между встроенной интеловской графикой, к примеру, и дешевой внешней АМДшной.
+4
vanfukov, #
0
vikky13, #
Я же сказала www.notebookcheck.net — там есть все, что вы просите.
0
tFirma, #
У меня, кстати, Fallout NV на Intel HD 3000 делал так же, как на скриншоте третий, около недели или двух, а потом сдался и запустился =)
+1
vikky13, #
Вы выиграли :)
А если серьезно, то NV был специально поправлен для Intel GPU -там по умолчанию не определялась поддержка шейдерной модели 2а и 2b (шейдеры длиннее 64 инструкций), а они использовались.
0
tFirma, #
Я так и подумал, что NV обновился, т.к. обновлений драйверов не замечал.
0
halyavin, #
Если ваши видеокарты поддерживают OpenCL, то расскажите тогда какое у вас на видеокартах количество ядер, количество мультипроцессоров, размер варпа, размер общей памяти, число регистров, размеры кэшей, максимальная пропускная способность памяти? Так же жизненно важно знать как работает coalescing при различных паттернах доступа к глобальной памяти.
Это все конечно можно замерить, но для этого нужна сама видеокарта.
0
vikky13, #
Количество EU И параметры памяти указаны в посте-см.картинки. Для остального надо копать документацию, по возможности посмотрю и напишу.
0
halyavin, #
О, теперь вижу. 16 ядер и 25.6Gb/sec.
На счет остального — можете просто дать ссылку на документацию, где есть эта информация.
0
safright, #
Вопрос по графике на Cedarview: недавно Ф-Центр сделал один занимательный тест для D2500HN и Intel DN2800MT, в котором 2d-графика на новых атомах явно хромает, по крайней мере при работе с ОС и для VC1.
Меня до крайности прельщает возможность где-то через полгода приобрести нетбук на пассивном охлаждении для легковесных операций, но картинки, показанные в этом тесте как-то очень печалят. Это проблемы развития платформы или ситуация не будет исправлена?
0
vikky13, #
Могу только дать вам ссылку по теме, сорри, но она на английском — www.phoronix.com/scan.php?page=news_item&px=MTA1NDU
0
safright, #
Спасибо за ссылку, этого достаточно.
Хорошо, что отказываетесь; плохо, что придется ждать.
0
flexoid, #
Т.е. по видеокартам на Ivy Bridge уже рассекретили инфу? Ждем обзоры новых процессоров, особенно ультрамобильные интересуют.
+1
vikky13, #
Они присутствуют на рынке с конца апреля. Какие уж тут секреты.
0
flexoid, #
Таак, я чего-то напутал?
0
vikky13, #
Скорее не напутали, а пропустили. Например, habrahabr.ru/post/142734/
0
flexoid, #
Но ведь тестов же нету. Во всех относительно недавних обзорах ультрабуков, в которых уже стоит процессор Ivy Bridge сообщается, что, мол, Intel пока запрещает разглашать какие-либо показатели этих процессоров.
0
vikky13, #
Данные, приведенные мной — публичны. Это точно. За все остальное ручаться не могу.
0
vanfukov, #
Я приводил картинку и ссылку на тесты на три камента выше.
0
tronix286, #
Да ну ладно, полноте, какие игры? Не дай бог никому чтоб их дети играли в игры на gma 3150 @ atom n450.
+6
vikky13, #
… Да да! И на БК-01 и на Спектруме. И на PC386!
Игры бывают разные, однако.
И то, что вы называете, совсем не новые платформы. А, как известно, за время пути собака могла подрасти :)
0
safright, #
см. вопрос выше про очередное поколение атомов. какая-то странная собака получилась.
0
ruikarikun, #
Ну так и дорога длинная, собака успела ощениться и умереть.
0
tronix286, #
Ну сапер понятно, пойдет. Я говорю про 3D игры, коих, согласитесь сейчас преобладающее количество. Так вот, на сабже (gma 3150) играть в 3D игры нельзя. А всего-то оно (gma 3150) полуторогодовалой давности максимум (2010-2011 год).

И вот сейчас смотрю на тесты и диву даюсь. Intel HD 4000 рвет всякие редоны и даже нвидии в пух и прах. Ну да посмотрим что будет в реальности, особенно со всякими шойдерами и прочими физиксами.

Вообще, если будет конкурентноспособно — это хорошо. Возможно когда-нибудь в далеком будущем мы будем поголовно сидеть на видюхах от интела и вспоминать о ATI или Nvidia как сейчас о 3Dfx.
+1
tangro, #
>рвет всякие редоны и даже нвидии в пух и прах
Оно рвёт в пух и прах радеоны двухлетней давности лоу-енд сегмента. Нынешние топ-видеокарты тот Radeon 6620G из теста выше рвут раз в 8 по производительности.
+1
amarao, #
С учётом уродской позиции nvidia по поддержке драйверов — нафиг сдалось.

Поясняю: intel коммитит в ванильное ядро (opensource драйвера), а nvidia пилит своё проприентарное угрёбище, которое ведёт себя в системе как слон в посудной лавке. При этом поддерживать опенсорсный nouveau они отказываются. Читайте по губам: nvidia отказывается поддерживать опенсорсную версию драйвера к своему собственному железу. Которое люди пишут им бесплатно, а от них требуется лишь подсказать со спецификациями.

В отличие от nvidia intel всё делает правильно, за что им плюс в карму.
0
tangro, #
Я уважаю позицию людей, которые отказывают себе во всём, лишь бы пользоваться опенсорсом, но отказываться от игр\фильмов\работы с 3D и мультимедиа потому что кто-то там что-то куда-то комитит, а кто-то нет, лично я не буду.
0
amarao, #
Объясняю: вопрос не в том, что они «не коммитят», а в том, что не хотят предоставить документацию тем, кто пишет нормальные драйвера.

Ближайшая претензия к проприентарным драйверам nvidia, например, это кривая поддержка xrand (читай, на ходу нельзя менять конфигурацию многомониторной системы), не поддерживается фреймбуффер для виртуальных консолей. Проприентарные драйвера отстают от ванили, так что всегда есть риск наткнуться на несовместимость нового ядра и драйверов.

(Не говоря уже про «удобство» их оригинальной системы установки, которая даже dkms не пользуется).
0
tangro, #
Ну, во-первых, прошло всего чуть больше месяца с момента вступления Nvidia в Linux Foundation — вряд ли они могли за столь малый срок вот так взять и начать активно клепать открытые драйвера.

Во-вторых, моё непонимание было по несколько другому поводу. Люди, которым нужна производительная видеокарта для игр\видео\3D-графики не выберут интегрированную интеловскую графику, равно как не выберут Linux (с любыми драйверами). В таких задачах Винда и Мак идут на шаг впереди, а если Linux выбирается вообще для всего и всегда по религиозным целям — тогда придётся как-то жить с «кривой поддержкой xrand» и прочими чудесами.
0
amarao, #
Вот только не надо про видео, ок? В линуксе с ним ситуация много лучше, чем в виндах (особенно с учётом идиотского парсера RIFF, плохой поддержки кодировок у субтитров и т.д.). Насчёт 3D-графики не знаю, всё, что 3D использует для работы на i3 вполне себе нормально работает.
+2
tangro, #
Вызывает улыбку. Пройдите как пару квестов на вашей линуксовой машинке:
1. Поставьте промышленную видеомонтажку (Avid, Final cut) и сделайте минутный ролик.
2. Поставьте WoT, Diablo III, Crysis, установите настройки на максимум и поиграйте полчаса
3. Поставьте ArchiCAD и поработайте над моделькой в пару миллионов полигонов.

Как успехи?

0
Sap_ru, #
С какого бодуна они должны предоставлять документацию, если там ноу-хау на ноу-хау сидит? Чтобы конкуренты содрали? Правило, что если и открывают, то старье, которое конкурентам и не интересно. Сделайте нормальную поддержку бинарных дров и будет вам счастье.
0
amarao, #
Отсутствию xrandr и дебильному инсталлятору, который из системы слаку делает мы обязаны особенностям ядра линукс? Ну-ну.
+1
sluge, #
Вы удивитесь, но на Intel GMA 4500 и Intel HD идет WOW.
+1
ValdikSS, #
Эх. Как там, под windows, нормально все?
А под linux уже год как не могут сделать vsync. Сидишь и смотришь как дурак рвущееся видео.
0
exaide, #
Мне (для HD2000) помогло добавление следующих строк в /etc/environment
CLUTTER_PAINT=disable-clipped-redraws:disable-culling
CLUTTER_VBLANK=True

0
ValdikSS, #
И тут я такой и говорю: «А у меня кеды»
+4
exaide, #
Бывает :)
0
RussianNeuroMancer, #
www.ixbt.com/cpu/igp-p8-gmahd4000.shtml
«Воодушевленные успехами нового драйвера в профессиональных приложениях, мы настроились и на отсутствие проблем при воспроизведении видео силами GMA HD 3000. Однако надеялись зря — при попытке задействовать аппаратное ускорение на экране все те же артефакты, изредка прерываемые изображением. А вот у GMA HD 4000 никаких проблем нет, что ставит точку в дискуссии, начало которой положила наша статья полугодовой давности. После нее некоторые читатели заявили, что тестирование некорректно, поскольку мы использовали устаревшие версии Media Player Classic Home Cinema и VLC Video Player, так что нечего, дескать, переносить претензии к ним на интегрированную графику Intel. Однако, как видите, проблемы были действительно не в проигрывателях и даже не в драйверах (или не только в драйверах), поскольку новые видеоядра Intel работают «как надо» и в старых программах, а старые этим похвастаться не могут. Всё это в одних и тех же программах, так что уже очевидно, кто виноват.»
+2
ValdikSS, #
Дело не в этом. У меня аппаратное ускорение работает замечательно через vaapi, но вот у драйверов жуткие проблемы с vsync везде, кроме opengl с сурфейсом 16:9 и полной отрисовкой каждого кадра. Это то что я понял самостоятельно, другие подробности не знаю. Я использую kwin с vsync, и картинка рвется пикселей 30-40 сверху, с включенным rc6. Без rc6 — только самая верхняя (ну, или 2) строка. Хотите посмотреть видео 1280x768 — тиринга нет, 1920х1080 — тиринга нет, 720x400 — тиринг есть. В общем, на любом материале, который не ровно 16:9, тиринг есть. Надо будет попробовать пропатчить kwin, чтоб он всегда отрисовывал полностью весь кадр, а не только изменившуюся часть.
+2
RussianNeuroMancer, #
Знаю, читал ваши багрепорты. Цитата была ответом на вопрос «Как там, под windows, нормально все?»
0
gnomeby, #
Самый главный вопрос: если на этом же железе отключить видеопроцессор, то как изменится производительность/отзывчивость для основного процессора?
На древних встроенных Intel видеокартах отключение видео было благом ибо быстрее графический режим отзывался везде.
+1
vikky13, #
Не уверена, что это самый главный ответ, но дела обстоят так: если на системе, где отдельной графики нет, скажем, на ультрабуке, отключить GPU, то производительность поднимется до бесконечности, только воспользоваться этим не выйдет, система просто не заработает :)
Если же отключить GPU на системе с дискретной графикой, т.е. перейти на использование той самой дискретной, то производительность несомненно станет гораздо лучше, CPU свободнее, но батарея долго не протянет.
+1
vikky13, #
забыла еще про один важный момент — то, что написано в посте и комментарии выше, относится к производительности графической системы. А помимо нее в Intel HD Graphics есть блок хардверного кодирования/декодирования видео -Quick Sync Video, так что при отключении Intel GPU обработка видео может существенно замедлиться.
0
DmitryBabokin, #
Что-то, по ходу, я погорячился когда не пошёл на КРИ! Отличные дифчата на картике :)
0
lasc, #
Те интел таки утверждает что HD3000 лучше чем gf9400m? А я вот что-то в TF2 не заметил. Проц мощнее а все по прежнему. Странно да.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.