Creative SoundBlaster X-Fi

Часть 3. Технология X-RAM

 

Как вы помните, в старших моделях X-Fi, Fata1ity и Elite Pro, имеется набортная память X-RAM, объемом 64 Мб. Она используется не для MIDI-семплов, а для хранения или кэширования звуков во время работы игровых приложений. Не известно, в какой момент в Creative было решено поставить на звуковую карту память, но сделано это было довольно странно: X-RAM есть только на двух старших моделях. На младших установлено лишь 2 Мб кэш под нужды DSP.

У пользователей возникают закономерные вопросы: Дает ли X-RAM реальное преимущество в играх? Что предпочесть при выборе из двух аналогичных карт с небольшой разницей в цене — Platinum или Fatal1ty?

Предпосылки появления набортной памяти на звуковых картах таковы. Долгое время существовала проблема с дефицитом оперативной памяти под звук, так что разработчики либо снижали разрядность семплов, что ухудшало качество, либо сжимали в форматы с потерями, MP3 или OGG, что вело к загрузке процессора при распаковке на этапе проигрывания сэмпла. Позже, с веяниями прогресса, ситуация с системной памятью стала не так критична, но по некоторой инерции разработчики шли по проторенному пути.

Так, новейший DOOM3 содержал альтернативный программный звуковой движок с грандиозными замыслами победить все существующие движки, реализованными едва ли на десятую часть, с семплами не самого высокого качества, сжатыми в формат OGG, и распаковываемыми на лету в PCM для микширования и воспроизведения. Creative не устраивала ситуация, когда мировой бестселлер не использовал не то что новейшие расширения EAX, но и даже аппаратный DirectSound, что позволило бы применить качественные алгоритмы 3D звука. Более того, никакой разницы между интегрированным звуком и новейшими картами Creative не было ни в качестве, ни в производительности.

На борьбу с этим упущением были брошены лучшие силы. В том числе Карло Вогельсанг, человек, разрабатывавший звуковой движок в UT2003/UT2004. Интересно было послушать лекцию Карло на КРИ2005 c душераздирающими интимными подробностями о модернизации звукового движка DOOM3. Так, внутри софтовый движок оперировал 256 каналами, с десятком процессов realtime-декодирования OGG в памяти, и с алгоритмом случайного смещения каналов по времени, чтобы не допустить переполнения разрядной сетки буфера. С большим трудом, путём полного переписывания звукового кода, удалось внедрить поддержку DirectSound + всех существующих фич EAX4. При этом Creative пришлось перелопатить весь OpenAL, выпустив специальную новую версию, и переписать драйвера всех своих звуковых карт, также только под одну игру DOOM3. После таких страшных подробностей рассылка EAX4/5 SDK и призывы Creative к разработчикам игр внедрять OpenAL в свои игры, кажется, содержат изрядную долю иронии и могут быть трактованы не иначе как "а вам так слабо?"


КРИ2005: для избранных спеки X-Fi известны задолго до анонса

Но цель оправдала средства. Игра с патчем 1.3 увеличила производительность в FPS до +25%, а трехмерный звук кардинально улучшился, получив, в том числе реально работающую главную фичу EAX4 — Multi-Environment.

OpenAL SDK и X-RAM SDK для разработчиков появились сравнительно недавно, под NDA. При наличии X-RAM по умолчанию драйвера всегда используют набортную память, если только в программе принудительно не сказано обратное. Запрет использования X-RAM может пригодиться для буферов с часто меняющейся информацией или слишком большого размера. Таким образом, по умолчанию семплы кэшируются в X-RAM. Для полного управления всеми предусмотренными режимами и функциями программисту необходимо использовать OpenAL API. Для извлечения максимальной пользы нужно распаковать семплы из форматов OGG, MP3 в набортную память X-RAM на этапе предварительной загрузки уровня игры. Но даже старые приложения могут получить выгоду от X-RAM, так как семплы будут кэшироваться.

Из новых игр, на 100% поддерживающих X-Fi c EAX5/X-RAM, следует обратить внимание на Quake4. Игра не требует никаких патчей, так как базируется на DOOM3 1.3.

Мы также попросили Creative предоставить нам копию UT2004 пресловутого X-Fi Edition. Патч должен выйти для широких масс по официальным каналам, но почему-то никак не выходит.

Так как внешне игра ничем не отличалась от обычной пропатченной, пришлось долго выяснять, как узнать, что за версию нам прислали и какие параметры включают/отключают спец.поддержку. Спустя месяц из Штатов пришел ответ, что изменять можно количество голосов в .ini файле: параметр зовется Channels=XX, другой параметр MaxAudioVoices=XX относится к ISACT. Можно также воспользоваться командой 'STAT AUDIO' в консоли UT2K4, чтобы увидеть текущий режим.


UT2004 X-Fi Edition

По традиции iXBT с честью несет знамя с надписью "заноза в заднице Creative". Поэтому сразу после разоблачения технологии 24-bit Crystalizer мы продолжили заниматься любимым делом. Дождавшись выхода X-RAM SDK, мы оперативно выпустили новую версию нашего теста RightMark 3DSound. Отдел поддержки разработчиков Creative любезно помог нам понять некоторые неясные моменты, и тест, спустя несколько бета-версий, был, наконец, выпущен.

Обновления коснулись теста загрузки CPU. Добавлено:

  • определение наличия и подсчет количества набортной памяти X-RAM;
  • определение наличия поддержки EAX 5.0 (DirectSound, OpenAL);
  • режим принудительного отключения X-RAM;
  • контроль количества использования X-RAM в log-файле;
  • режим X-RAM ON фиксируется в XML-файле результата и просматривается затем в модуле DataAnalyzer.

При тестировании мы столкнулись с серьезными затруднениями в тщетных попытках выявления преимущества от применения X-RAM в синтетике. Даже при самом тщательном тестировании и вычищении всех узких мест кода по производительности, выигрыш составил десятые доли процента. Казалось бы — в реальных играх выигрыш есть, а в синтетике — нет. Мы обратились за разъяснениями в Creative и даже готовы были выслать код для инспекции. В Creative восприняли эту новость спокойно и даже не стали оспаривать, что в синтетике X-RAM даст выигрыш. Из разъяснений Creative получалось, что сравнивать мы должны преимущества от X-RAM при предварительной распаковке OGG по сравнению с раскодированием в реальном времени. Такую версию мы, конечно, выпустим в ближайшее время, но уже сейчас кажется бессмысленным такое доказательство — в играх действительно уже есть большой прирост от такого использования X-RAM. Интересно другое: почему тогда нельзя использовать системную память под хранение семплов? И какой смысл в покупке более дорогих звуковых карт с набортной памятью для геймеров? Смысл сейчас есть, но есть ощущение, что поддерживается он несколько искусственно: в случае наличия X-RAM распаковка идет заранее, а в случае отсутствия X-RAM семплы почему-то раскодируются в реальном времени под эгидой экономии системной памяти, без всякой проверки её количества в рабочей машине. Можно предположить почему — в разработке звуковых движков таких игр принимали участия сотрудники Creative, а компании выгодно создать искусственный гандикап для своих карт.

Тем временем, мы продолжили свои исследования — вдруг от X-RAM будет выигрыш и в синтетике? Мы пробовали разные варианты и режимы тестирования, улучшали достоверность звукового движка. Последнее, что было сделано — это эмуляция загрузки системной памяти во время теста задачей, слабо загружающей процессор — пересылка больших объемов целочисленных данных в разные участки заранее зарезервированной памяти.

В обновленной 1 февраля 2006 года версии 2.2 пакета RightMark 3DSound были добавлены две новых функции: "Load system memory" с регулировкой количества памяти и размера куска данных в процентах и опция "Sample size" изменения размера семпла для контроля общего размера памяти под семплы.

Тестирование показало, что изменение количества буферов, размера и включение загрузки памяти для эмуляции нагрузки на шину процессор-память не выявляют заметных преимуществ применения X-RAM. На процессоре P4 3.4 ГГц уменьшение загрузки CPU от включения X-RAM составляет 0,1%. Тогда как изменение количества буферов адекватно в разы изменяет загрузку процессора.

Обладатели X-Fi c X-RAM при желании могут повторить наш эксперимент. Напомню, необходимо перевести X-Fi в Game Mode и выбрать в тесте устройство X-Fi в списке OpenAL устройств системы.

По итогам исследования мы можем попытаться ответить на поставленные в начале статьи вопросы:

Дает ли X-RAM реальное преимущество в играх? Даёт, но достоверно об этом известно только про новые игры с участием программистов Creative в процессе разработки. Таких игр пока мало, но они весьма хитовые: DOOM3 1.3, DOOM3:ROE, Quake4, BattleField 2, BattleField 2:SF. Учитывая то, что EAX5/X-RAM SDK вышли недавно, есть повод для оптимизма – возможно, игр скоро станет больше. Но так как OpenAL слишком медленно приживается среди разработчиков из-за сильных различий с DirectSound, можно сделать вывод, что ситуация здесь резко не изменится.

Что предпочесть при выборе из двух аналогичных карт с небольшой разницей в цене — Platinum или Fatal1ty? Fatal1ty выберут те, кому важен небольшой прирост производительности в перечисленных выше играх и осознание того, что карта полностью раскрывает свой потенциал. Для прагматиков лучше подойдет Platinum.

 

2 февраля 2006 Г.

Creative X-Fi: ���������� X-RAM

Creative SoundBlaster X-Fi

����� 3. ���������� X-RAM

 

��� �� �������, � ������� ������� X-Fi, Fata1ity � Elite Pro, ������� ��������� ������ X-RAM, ������� 64 ��. ��� ������������ �� ��� MIDI-�������, � ��� �������� ��� ����������� ������ �� ����� ������ ������� ����������. �� ��������, � ����� ������ � Creative ���� ������ ��������� �� �������� ����� ������, �� ������� ��� ���� �������� �������: X-RAM ���� ������ �� ���� ������� �������. �� ������� ����������� ���� 2 �� ��� ��� ����� DSP.

� ������������� ��������� ������������ �������: ���� �� X-RAM �������� ������������ � �����? ��� ����������� ��� ������ �� ���� ����������� ���� � ��������� �������� � ���� — Platinum ��� Fatal1ty?

����������� ��������� ��������� ������ �� �������� ������ ������. ������ ����� ������������ �������� � ��������� ����������� ������ ��� ����, ��� ��� ������������ ���� ������� ����������� �������, ��� �������� ��������, ���� ������� � ������� � ��������, MP3 ��� OGG, ��� ���� � �������� ���������� ��� ���������� �� ����� ������������ ������. �����, � �������� ���������, �������� � ��������� ������� ����� �� ��� ��������, �� �� ��������� ������� ������������ ��� �� ������������ ����.

���, �������� DOOM3 �������� �������������� ����������� �������� ������ � ������������ ��������� �������� ��� ������������ ������, �������������� ���� �� �� ������� �����, � �������� �� ������ �������� ��������, ������� � ������ OGG, � ���������������� �� ���� � PCM ��� ������������ � ���������������. Creative �� ���������� ��������, ����� ������� ���������� �� ����������� �� �� ��� �������� ���������� EAX, �� � ���� ���������� DirectSound, ��� ��������� �� ��������� ������������ ��������� 3D �����. ����� ����, ������� ������� ����� ��������������� ������ � ��������� ������� Creative �� ���� �� � ��������, �� � ������������������.

�� ������ � ���� ��������� ���� ������� ������ ����. � ��� ����� ����� ����������, �������, ��������������� �������� ������ � UT2003/UT2004. ��������� ���� ��������� ������ ����� �� ���2005 c ���������������� ��������� ������������� � ������������ ��������� ������ DOOM3. ���, ������ �������� ������ ���������� 256 ��������, � �������� ��������� realtime-������������� OGG � ������, � � ���������� ���������� �������� ������� �� �������, ����� �� ��������� ������������ ��������� ����� ������. � ������� ������, ���� ������� ������������� ��������� ����, ������� �������� ��������� DirectSound + ���� ������������ ��� EAX4. ��� ���� Creative �������� ������������ ���� OpenAL, �������� ����������� ����� ������, � ���������� �������� ���� ����� �������� ����, ����� ������ ��� ���� ���� DOOM3. ����� ����� �������� ������������ �������� EAX4/5 SDK � ������� Creative � ������������� ��� �������� OpenAL � ���� ����, �������, �������� �������� ���� ������ � ����� ���� ���������� �� ����� ��� "� ��� ��� �����?"


���2005: ��� ��������� ����� X-Fi �������� ������� �� ������

�� ���� ��������� ��������. ���� � ������ 1.3 ��������� ������������������ � FPS �� +25%, � ���������� ���� ����������� ���������, �������, � ��� ����� ������� ���������� ������� ���� EAX4 — Multi-Environment.

OpenAL SDK � X-RAM SDK ��� ������������� ��������� ������������ �������, ��� NDA. ��� ������� X-RAM �� ��������� �������� ������ ���������� ��������� ������, ���� ������ � ��������� ������������� �� ������� ��������. ������ ������������� X-RAM ����� ����������� ��� ������� � ����� ���������� ����������� ��� ������� �������� �������. ����� �������, �� ��������� ������ ���������� � X-RAM. ��� ������� ���������� ����� ���������������� �������� � ��������� ������������ ���������� ������������ OpenAL API. ��� ���������� ������������ ������ ����� ����������� ������ �� �������� OGG, MP3 � ��������� ������ X-RAM �� ����� ��������������� �������� ������ ����. �� ���� ������ ���������� ����� �������� ������ �� X-RAM, ��� ��� ������ ����� ������������.

�� ����� ���, �� 100% �������������� X-Fi c EAX5/X-RAM, ������� �������� �������� �� Quake4. ���� �� ������� ������� ������, ��� ��� ���������� �� DOOM3 1.3.

�� ����� ��������� Creative ������������ ��� ����� UT2004 ������������ X-Fi Edition. ���� ������ ����� ��� ������� ���� �� ����������� �������, �� ������-�� ����� �� �������.

��� ��� ������ ���� ����� �� ���������� �� ������� ������������, �������� ����� ��������, ��� ������, ��� �� ������ ��� �������� � ����� ��������� ��������/��������� ����.���������. ������ ����� �� ������ ������ �����, ��� �������� ����� ���������� ������� � .ini �����: �������� ������� Channels=XX, ������ �������� MaxAudioVoices=XX ��������� � ISACT. ����� ����� ��������������� �������� 'STAT AUDIO' � ������� UT2K4, ����� ������� ������� �����.


UT2004 X-Fi Edition

�� �������� iXBT � ������ ����� ����� � �������� "������ � ������� Creative". ������� ����� ����� ������������ ���������� 24-bit Crystalizer �� ���������� ���������� ������� �����. ���������� ������ X-RAM SDK, �� ���������� ��������� ����� ������ ������ ����� RightMark 3DSound. ����� ��������� ������������� Creative ������� ����� ��� ������ ��������� ������� �������, � ����, ������ ��������� ����-������, ���, �������, �������.

���������� ��������� ����� �������� CPU. ���������:

  • ����������� ������� � ������� ���������� ��������� ������ X-RAM;
  • ����������� ������� ��������� EAX 5.0 (DirectSound, OpenAL);
  • ����� ��������������� ���������� X-RAM;
  • �������� ���������� ������������� X-RAM � log-�����;
  • ����� X-RAM ON ����������� � XML-����� ���������� � ��������������� ����� � ������ DataAnalyzer.

��� ������������ �� ����������� � ���������� ������������� � ������� �������� ��������� ������������ �� ���������� X-RAM � ���������. ���� ��� ����� ���������� ������������ � ��������� ���� ����� ���� ���� �� ������������������, ������� �������� ������� ���� ��������. �������� �� — � �������� ����� ������� ����, � � ��������� — ���. �� ���������� �� ������������� � Creative � ���� ������ ���� ������� ��� ��� ���������. � Creative ���������� ��� ������� �������� � ���� �� ����� ����������, ��� � ��������� X-RAM ���� �������. �� ����������� Creative ����������, ��� ���������� �� ������ ������������ �� X-RAM ��� ��������������� ���������� OGG �� ��������� � ��������������� � �������� �������. ����� ������ ��, �������, �������� � ��������� �����, �� ��� ������ ������� ������������� ����� �������������� — � ����� ������������� ��� ���� ������� ������� �� ������ ������������� X-RAM. ��������� ������: ������ ����� ������ ������������ ��������� ������ ��� �������� �������? � ����� ����� � ������� ����� ������� �������� ���� � ��������� ������� ��� ��������? ����� ������ ����, �� ���� ��������, ��� �������������� �� ��������� ������������: � ������ ������� X-RAM ���������� ���� �������, � � ������ ���������� X-RAM ������ ������-�� ������������� � �������� ������� ��� ������ �������� ��������� ������, ��� ������ �������� � ���������� � ������� ������. ����� ������������ ������ — � ���������� �������� ������� ����� ��� ��������� ������� ���������� Creative, � �������� ������� ������� ������������� �������� ��� ����� ����.

��� ��������, �� ���������� ���� ������������ — ����� �� X-RAM ����� ������� � � ���������? �� ��������� ������ �������� � ������ ������������, �������� ������������� ��������� ������. ���������, ��� ���� ������� — ��� �������� �������� ��������� ������ �� ����� ����� �������, ����� ����������� ��������� — ��������� ������� ������� ������������� ������ � ������ ������� ������� ����������������� ������.

� ����������� 1 ������� 2006 ���� ������ 2.2 ������ RightMark 3DSound ���� ��������� ��� ����� �������: "Load system memory" � ������������ ���������� ������ � ������� ����� ������ � ��������� � ����� "Sample size" ��������� ������� ������ ��� �������� ������ ������� ������ ��� ������.

������������ ��������, ��� ��������� ���������� �������, ������� � ��������� �������� ������ ��� �������� �������� �� ���� ���������-������ �� �������� �������� ����������� ���������� X-RAM. �� ���������� P4 3.4 ��� ���������� �������� CPU �� ��������� X-RAM ���������� 0,1%. ����� ��� ��������� ���������� ������� ��������� � ���� �������� �������� ����������.

���������� X-Fi c X-RAM ��� ������� ����� ��������� ��� �����������. �������, ���������� ��������� X-Fi � Game Mode � ������� � ����� ���������� X-Fi � ������ OpenAL ��������� �������.

�� ������ ������������ �� ����� ���������� �������� �� ������������ � ������ ������ �������:

���� �� X-RAM �������� ������������ � �����? ���, �� ���������� �� ���� �������� ������ ��� ����� ���� � �������� ������������� Creative � �������� ����������. ����� ��� ���� ����, �� ��� ������ �������: DOOM3 1.3, DOOM3:ROE, Quake4, BattleField 2, BattleField 2:SF. �������� ��, ��� EAX5/X-RAM SDK ����� �������, ���� ����� ��� ��������� � ��������, ��� ����� ������ ������. �� ��� ��� OpenAL ������� �������� ����������� ����� ������������� ��-�� ������� �������� � DirectSound, ����� ������� �����, ��� �������� ����� ����� �� ���������.

��� ����������� ��� ������ �� ���� ����������� ���� � ��������� �������� � ���� — Platinum ��� Fatal1ty? Fatal1ty ������� ��, ���� ����� ��������� ������� ������������������ � ������������� ���� ����� � ��������� ����, ��� ����� ��������� ���������� ���� ���������. ��� ����������� ����� �������� Platinum.