Part 3. X-RAM
As you may remember, top X-Fi, Fata1ity and Elite Pro models are equipped with 64 MB of on-board X-RAM memory. It's not for MIDI samples, but for storing and caching sounds in games. We don't know when Creative decided to install memory on sound cards, but it was done in a strange fashion: X-RAM is available only on two top models. Cheaper models are equipped with 2 MB Cache for DSP only.
Naturally, users start asking questions: Does X-RAM provide real advantage in games? What card should be chosen between the two models at slightly different prices — Platinum or Fatal1ty?
Here are prerequisites for the appearance of on-board memory on sounds cards. Developers had had a problem with insufficient audio memory for a long time. So they either reduced capacity of samples, which deteriorated audio quality, or they compressed them into lossy formats, MP3 or OGG, which loaded processors at sample playback stages. Later on, the situation with system memory became not that critical, but developers mechanically followed the beaten track for some time.
For example, the recent DOOM3 had an alternative software audio engine planned to outperform all existing engines, implemented hardly by a tenth part, with low quality samples, compressed into OGG and uncompressed into PCM on-the-fly for mixing and playback. Creative was not content with the situation when the world bestseller didn't use hardware DirectSound, to say nothing of the latest EAX, which would have allowed high-quality 3D sound algorithms. Moreover, there was absolutely no difference between integrated audio and the latest Creative cards neither in quality nor in performance.
The best talents were rushed up to fix this omission. Including Carlo Vogelsang, the man who designed the audio engine in UT2003/UT2004. It was interesting to listen to Carlo's report at Game Developer Forum 2005 with heart-rending intimate details about updating the sound engine in DOOM3. For example, the soft engine operated 256 channels with a dozen real-time OGG decode processes in memory and the algorithm of random time shift of channels to avoid buffer overflow. Support for DirectSound + all existing EAX4 features was hardly introduced by rewriting the audio code from scratch. Creative had to overhaul the entire OpenAL and release a special new version. Besides, it had to rewrite drivers for all its sound cards for DOOM3 alone. After such scary details, EAX4/5 SDK newsletters and Creative's appeal to game developers to introduce OpenAL into their games sounds ironic. It can be interpreted as daring developers to do it.
Game Developer Forum 2005: X-Fi specs are known to a chosen few long before the announcement
But the end justified the means. Patch 1.3 increased the FPS performance to +25%, 3D audio was cardinally improved and got the main EAX4 feature — Multi-Environment.
OpenAL SDK and X-RAM SDK for developers appeared not long ago, for NDA. In case of available X-RAM, drivers always use the on-board memory by default, unless settings force a program to do otherwise. Forcing a program not to use X-RAM may be useful for buffers with rapidly changing data or for very large buffers. Thus, samples are cached in X-RAM by default. Programmers should use OpenAL API for full control of all available modes and functions. To get maximum gains, we should unpack samples from OGG, MP3 formats into on-board X-RAM, when a game level is being preloaded into memory. But even old applications can benefit from X-RAM, as samples will be cached.
Among new 100% X-Fi compatible (EAX5/X-RAM) games we should note Quake4. The game requires no patches, as it's based on DOOM3 1.3.
We also asked Creative to provide a copy of notorious UT2004 X-Fi Edition. The patch should be released officially, but nothing happens we don't know why.
As the game did not differ from a regular patched version, it took us much time to find out what version we had got and what parameters enabled/disabled the special support. A month later we've got a reply from the United States that we can change the number of channels in the .ini file: Channels=XX, the other parameter MaxAudioVoices=XX refers to ISACT. We can also use the 'STAT AUDIO' command from the UT2K4 console to see the current mode.
UT2004 X-Fi Edition
iXBT has been traditionally bearing the Creative's-pain-in-the-ass title. So after we exposed the 24-bit Crystalizer technology, we carried on with our favourite occupation. Having seen the launch of X-RAM SDK, we immediately released a new version of our RightMark 3DSound. Creative's center for supporting developers kindly explained some vague points and after several beta versions our test was finally released.
We modified the CPU load test. Added:
We had serious problems determining X-RAM advantage in synthetic tests. Even most thorough tests with all performance bottlenecks in code removed demonstrate tenths of a single percent. It seems we have performance gains in games and no gains in synthetic tests. We asked Creative to comment on this phenomenon and were even ready to send our code for inspection. Creative has taken the news calmly. It didn't even try to impeach the fact that X-RAM offers no gains in synthetic tests. According to Creative, we should compare X-RAM advantages in OGG predecoding versus real time decoding. We shall certainly release such a version in the nearest future. But even now this proof seems pointless — games indeed enjoy high performance gains from such X-RAM usage. What I wonder is why not use system memory for storing samples? And what's the point in buying more expensive sound cards with on-board memory for gamers? It makes sense today, but we have an impression that it's rather artificial: in case of X-RAM, sound files are unpacked beforehand; but in case of no X-RAM, samples are decoded in real time in order to save system memory irregardless of its size in a computer. We can assume why — Creative employees took part in the development of such audio engines and the company benefits from an artificial handicap in its cards.
Meanwhile we shall proceed with our tests — perhaps we'll see X-RAM gains in synthetics? We've tried various test options and modes and improved veracity of the sound engine. The last thing we have done is to emulate system memory load with a task that almost does not load a processor — transferring large volumes of integer data into various preallocated memory segments.
There are two new functions in RightMark 3DSound 2.2 that was released on February 1: "Load system memory" with adjustable memory size and a chunk of data in percents and "Sample size" option to control the total sample memory size.
Our tests showed that changing a number of buffers, a size and memory load to emulate a load on the processor-memory bus reveal no noticeable X-RAM advantages. In case of a P4 3.4 GHz CPU, enabling X-RAM reduces the CPU load by just 0.1%. But changing a number of buffers adequately changes the CPU load manifold.
The owners of X-Fi cards with X-RAM can repeat our experiment. Remember that you should set X-Fi to Game Mode and choose your X-Fi device in the list of OpenAL devices in the system.
Now we can try to answer the questions that we asked at the beginning of the article:
Does X-RAM provide real advantage in games? It does, but it can be said for sure only about new games that were created in cooperation with Creative programmers. There are only a few such games so far, but they are all hits: DOOM3 1.3, DOOM3:ROE, Quake4, BattleField 2, BattleField 2:SF. Taking into account that EAX5/X-RAM SDK has been released only recently, we have some grounds for optimism – we may have more games soon. But as OpenAL is too slow to take roots among developers because of its differences from DirectSound, we can make a conclusion that the situation will not change much here.
What card should be chosen between the two models at slightly different prices — Platinum or Fatal1ty? Fatal1ty will be chosen by those users who need little performance gains in the above games and who need to be sure that the card reveals its potential to the full. Practical users will choose Platinum.
Maxim Liadov (firstname.lastname@example.org) aka Very Evil Editor
February 7, 2006.
Write a comment below. No registration needed!