First post, by ChrisR3tro

User metadata
Rank Member

Hey folks,

since I have been reading that there supposedly are performance differences between the two revisions of the Vortex II chip (AU8830 rev. A2 vs. B0), I decided to try and measure these using Quake III as a benchmark tool. Just wanted to share my findings here with everybody.

Benchmark system specs:

  • Mainboard: ASRock 775i65G R3.0
  • CPU: Intel Celeron 450 @ 2.2 GHz ("Conroe", Intel Core-based)
  • Graphics: nVidia GeForce FX 5500 based
  • RAM: 512 MB DDR
  • Soundcard: Aureal SQ2500 / Diamond Monster Sound II MX300* (both Aureal Vortex II AU8830 based)

*) The MX300 has an earlier "A2" revision of the AU8830 chip, whereas the SQ2500 has a "B0" revision.

All benchmarks were done with Quake III 1.11 due to the following reasons. Quake III 1.15c has a bug that the "crackling fire" background noise in the first map (Q3DM1) is completely inaudible when A3D is enabled. Also L/R channels are switched using A3D on 1.15c (tested with drivers 2048). Earlier drivers don't seem to experience the channel swapping issue. Later revisions of Quake III dropped A3D support altogether. To my knowledge, 1.25p still has the A3D option in menu and in 1.27g it was gone.

All this has led me to the conclusion that the A3D implementation in Quake III has been treated as an orphan to begin with. It seems buggy and inconsistent throughout all the later point releases. Sound occlusions for example, one of the main features of A3D has been disabled by default and the overall sound quality is not something to remember, speaking totally subjectively, of course. I have re-enabled the occlusions using a console command (see below).

Nevertheless I think the game may be a good candidate to try to measure AU8830-A2 vs AU8830-B0 performance.

The graphics quality was reduced as much as possible to minimize impact of graphics card on benchmark results. Here's a small Quake III config file I have used to run the benchmarks:

//A3D benchmark config

//Turn down graphics stuff
set com_maxfps 0

seta cg_drawCrosshair "0"
seta cg_drawCrosshairNames "0"
seta cg_marks "0"
seta cg_drawfps 1
seta cg_draw3dIcons 0
seta cg_drawGun 0
seta cg_shadows 0
seta cg_simpleItems 1

seta r_swapInterval "0"
seta r_detailtextures 0
seta r_textureMode "GL_NEAREST"
seta r_texturebits "16"
seta r_colorbits "16"
seta r_depthbits "16"
seta r_fastsky "1"
seta r_dynamiclight "0"
seta r_dlightBacks "0"
seta r_mode 0

//Audio and A3D
seta s_volume "0.7"
seta s_musicvolume "0.2"
seta s_khz 44
seta s_loadas8bit "0"
seta s_occlude "1.0"

//Start demo
//timedemo 1
//demo demo001

Benchmarks were run in Quake's "timedemo" mode using demo file "demo001". If you place my config file as a3dbench.cfg in the baseq3-subfolder. The following console commands start the benchmark:

exec a3d
timedemo 1
demo demo001

I have included some benchmark results with A3D turned off just for comparison. I always did four benchmark runs and took the average. The result of the first run was discarded to minimize any type caching done by the game between tests (you never know...).

2040 version drivers

SQ2500 A3D Off: 556.7 fps / 558.0 fps / 552.8 fps = 555.9 fps
SQ2500 A3D On: 311.3 fps / 299.6 fps / 301.7 fps = 304.2 fps
MX300 A3D Off: 527.7 fps / 514.1 fps / 528.5 fps = 523.4 fps
MX300 A3D On: 305.6 fps / 307.3 fps / 291.8 fps = 301.6 fps

2041 version drivers

SQ2500 A3D Off: 562.0 fps / 561.1 fps / 561.1 fps = 561.4 fps
SQ2500 A3D On: 319.2 fps / 305.5 fps / 314.6 fps = 313.1 fps
MX300 A3D Off: 541.2 fps / 536.5 fps / 536.9 fps = 538.2 fps
MX300 A3D On: 293.1 fps / 310.6 fps / 314.6 fps = 306.1 fps

2048 version drivers

SQ2500 A3D Off: 560.8 fps / 559.0 fps / 559.7 fps = 559.8 fps
SQ2500 A3D On: 296.9 fps / 286.0 fps / 283.6 fps = 288.8 fps
MX300 A3D Off: 538.8 fps / 538.2 fps / 540.3 fps = 539.1 fps
MX300 A3D On: 280.5 fps / 275.7 fps / 284.3 fps = 280.2 fps

As you can see from the results, A3D alone has a severe impact on performance when enabled. However the difference between the two chip revisions is negligible, I would say. Also the 2048 version drivers seem to be a bit slower overall.


for more Retro-related tidbits visit me on Twitter under @ChrisR3tro.

Reply 1 of 6, by The Serpent Rider

User metadata
Rank l33t

A3D alone has a severe impact on performance

Looks like PCI limitation.

Get up, come on get down with the sickness
Open up your hate, and let it flow into me

Reply 3 of 6, by mothergoose729

User metadata
Rank Oldbie

Interesting results, thanks for sharing. I think the A3D 2.0 cards are best paired with "overkill" CPUs for this reason. Your conroe doesn't look like it had trouble keeping up, but 700mhz PIII or similar might struggle a bit.

Reply 5 of 6, by Ozzuneoj

User metadata
Rank Oldbie

I know this is an old thread, but this is the most recent discussion I could find on the topic of AU8830 revisions.

Is there any known difference between B0AAAA and B0AAAB revisions? I just realized that not all of my B0 revision SQ2500s were exactly the same.

I know the SQ3500 exists (though all the pictures of it seem to be gone from Vogons and the rest of the internet), but is it safe to assume that the B0AAAB is the last revision of the SQ2500 and therefor the last product shipped by Aureal? I wonder what changes they were making to it as the business was coming to an end.

Now for some blitting from the back buffer.

Reply 6 of 6, by ZanQuance

User metadata
Rank Member

AFAIK, it's just a silicon refresh. There aren't any feature or major design changes in the chip. There is a change from the 8830A2 to the 8830B0 in which the internal data bus timings were changed to avoid an 8-cycle WaveTable data fetch stall in the A2 rev. This is why the SQ2500 runs faster, especially in WaveTracing titles, since all reflections are ran through the 64 WaveTable channels.
The stalls in the A2 are avoidable though if they wrote the drivers to move the VDB WaveTable channels so they aren't processed until later in the audio chain.

Long ago (time flies!) I did some preliminary tests in Win98 and remapped the VDB audio chain in the 2041,2048 and 2050 drivers, and saw no speed difference between the SQ2500 and MX300 once I did, however this level of hacking caused random issues whenever the A3DAPI wanted to rework the VDB chain.

There are major differences though between the AU8810, Au8820 and AU8830, although the designs are based on the same core ideas.

[The reason for the delays in the AU8830A2 rev]
The WT cell contains (per channel) a 2nd order butterworth LowPass filter, Sample Rate Converter, Delay lines, and Mixer (for panning and gain)

The Vortex chips have an internal "Vortex audio Data Bus" (VDB) which chains Work To Do (WTD) in a likewise fashion:
VDB chain for WaveTracing (WT_FIFO->WT_Channel->VDB Bus) Each channel (or a 4-Channel downmix of all the WT channels) can be sent to the VDB, typically this appears at the top of the WTD list, but the Sample Rate Converters in the WT cell want 4 samples to interpolate over with a 2-cycle load delay per sample thus the 8-cycle delay.
Since the VDB processes all cells sample synchronous, but walks the WTD chain sequentially, it stalls the audio processing for 8-cycles while it loads the WT channels with the sample data.
Placing the WT channels at least 4 steps lower in the WTD VDB chain allows the WT samples to load while the other blocks are processing their samples and thus mitigates the delay.
The driver programmers didn't know this and load the WT at the top of the WTD list, mainly for reflection processing.

Aureals solution was to revise the chip so that these delays are no longer an issue and prepare new chips for the SQ3500 release.

Hope this shines some light into the benchmarks differences between the chips.