3dlabs Permedia 3D review

Pervasive Media

Creative 3D Blaster VLB failed to impress, but even before its release, 3Dlabs was already making waves about much improved consumer chip for 1996- Permedia. A complete solution and relatively cheap Permedia was the first incarnation of "Pervasive 3D" strategy of good for everything affordable graphics architecture. Among the 3d solutions of 1996 were fast add-on only cards like Voodoo Graphics, all universal architectures had bigger or smaller performance problems. 3dlabs was about to change that by "hyper pipeline" fusing 2d functionality into 3d units. Texture units can tile blits, bilinear filter can stretch them, chroma key testing can be used for transparent blits. DOS, Windows, video, authoring, 3d gaming- Permedia should have mastered it all. IBM's 0,35-micron process exceeded the target clock of 50 MHz and the first cards used 60 MHz. This resulted in claimed 30 bilineary filtered MTexel/s fillrate, however using palletized textures and omitting real-world complications like alpha blending.

Architecture

pipeline

The pipeline is controlled by 32-bit registry file preceded by 64 entry deep 41 bits wide FIFO, to accommodate with data also 9-bit tag directing work of the various pipeline stages. All can be covered under DMA engine and there is also the option of direct memory access around the pipeline. Without Delta chip in front, Permedia leaves geometry setup tasks to the CPU. 3d engine is an evolution of Gaming Glint, basic fillrates are the same. The rasterizer is plenty fast, close to promised polygon rates even with smooth Gouraud shading and specular lighting. Scissoring and stenciling units remained. Color precision is rather disappointing because precision was at some places reduced to 5 bits per channel. Also dithering to 16 bit sometimes produces a bit too noticeable patterns. The main feature set addition was "full speed" bilinear filter, however, in the tests performance drop is significant. What more the filter does not seem to be interpolating. Instead, it looks rather like offsetting texels to partially overlap each other and crossfade of colors. Considering the serious past 3dlabs comes from, I would guess this is some desperate hack, rather than a design choice. Poor presentation of the texturing unit is completed by a lack of mipmapping. Now let me try to demonstrate its inaccuracies errors, along with that joke of bilinear filter. I will use lightmap from Quake, but mind you this was observed in any application.


Texels warps by camera angel and form clear abnormalities like the vertical line in the center.

Permedia supports 8880 RGBA textures, but their use is extremely limited due to poor memory management. Next pipeline stage does not impress either. There is only one texture slot and multiplicative blending is not supported. Vertex fog is blended with transparent textures properly, frame buffer dithering is sensitive enough. Depth buffer precision was not always sufficient, causing a bit of z-fighting here and there. OpenGL revealed only 15 bits are used at low resolutions. Local memory was unified to maximize capacity utilization and all the traffic now goes through casual 64-bit bus, yet 32-bit framebuffer does not significantly slow down rendering in comparison with reduced colors. Permedia was an early adopter of SGRAM and enjoyed the bandwidth, block fills, and per-window double buffering. Initially, IBM delivered external DAC with 16 entry RGBA lookup table supporting 4 bit palletized textures. 3Dlabs also started manufacturing and co-marketing alliance with Texas Instruments, which prepared own DAC. More importantly, TI's manufacturing advanced enough to ship new Permedia revision (TVP4010-80) by the end of 1996 with frequency bumped up to 83 MHz.

Cards


Can you find the last minute resistor fix?

3Dlabs did not really market the first Permedia as a gamers product, perhaps they were hoping Creative will do it for them. Although Creative licensed the core and announced its card with CGL support, it seems they did not go into production and only sample board is known (thanks Gona). Such a change of mind at the last moment could have been shower too cold for the gaming ambitions of 3Dlabs, even if they bought CGL license to allow for 3D Blaster compatibility. The investigation of compatibility of various Permedia cards was not yet concluded.

Permedia can work with a memory capacity of 2 to 8 megabytes. Above is one of the earlier card, fabricated in IBM. For professional cards, DAC by IBM was used as well, but we see that other DACs can also work, in this case by Texas Instruments. This brings us to the later version of Permedia from Texas Instruments, below is a board by ExpertColor. Both cards came with 4 MB of memory, which is for reasons explained later not that much for 3d gaming. Control panels say the system clock of boards is 70 MHz, Powertune shows core/memory clock of 40/60 MHz for both. Actually applying that clock affects performance, so I think there is no detection, just an assumption of the original SKU. The chip barely gets warm, memory is rated for 10ns, and the TI cards can run at 57/87 "perftune" clocks. Looks like nice 25% headroom, anything more and random dots appear. Expertcolor Permedia 3000 board

3Dlabs developed a full triangle and AA setup engine on a separate chip called Delta, as was shown in the intro on the 500TX card. Delta also increased floating-point and sub-pixel precision. It was manufactured at IBM's 0.45-micron process and peaked 100 MFlops at 40 MHz. This $35 chip paired with Permedia formed "Permedia NT" SKU and targeted graphics workstations. Delta boosted the geometry performance of Permedia (per clock not sustainably much better than that of Glint) by a factor of 1.5-3. And just like any hardware triangle setup it also reduces bus traffic. This chipset is represented by Diamond FireGL 1000 card, which couples the Delta with the TVP4010-60.

Experience

The first disappointment is errors caused by insufficient memory, so unexpected with 4MB of universal memory. Default driver settings are not at all helpful for gaming. To get reasonable compatibility disable rectangular allocator and enable texture compression for OpenGL. It isn't anything worthy of the compression name, it just effectively reduces textures into quarters. But without it, the Permedia will just drop almost all textures in GlQuake. Pallete extension does not look very compatible here. It is possible to see all textures at least in the default demo, though it is still not enough to enjoy regular game without some white polygons. The bigass demo is a different beast, some player skins were dropped and in the heat of explosions Permedia was often giving up on bilinear filtering. Disabling texture modulation can help some d3d games to run.


These tests will be remembered as endless fight for more texture memory.
See Permedia 3D gallery

Quake 2 has its own problems, transparency does not work and some polygons always turn black during explosions. There are games refusing to work in any case: Falcon 4.0, MDK, Motoracer 2, NHL 99, Quake 3. X: Beyond the Frontier test and Wipeout completely freezes the PC. Sin would also, but Chromatic's wrapper is an alternative, even if badly looking. The Sky texture of Lands of Lore 2 suffers from blinking. 32-bit color depth result from Incoming was discarded because building textures were simply dropped and the framerate exceeded the result of 16-bit depth. But testing done with other games confirmed that Permedia takes a small hit from true color framebuffer, around 10%. To enjoy 32-bit textures on top of that one has to go for a card with more memory. Resident Evil often suffers from large horizontal bars covering the actual scenes. Then there are all the issues caused by missing multiplicative blending operation. You won't get to see any textures in Thief, Shogo, and Warbirds. Many projectiles in shooting games depend on texture multiplication to make their edges transparent, Permedia ends up rendering the transparent pixels black. There are also situations when transparent textures are rendered correctly only upfront ignoring z-buffered hidden pixel removal. Turok is pretty much unplayable because of all the solid skies and other errors. No smoke was rendered in Ultimate Race Pro. Environmental mapping is out of the question. OpenGL driver can accelerate Su-27, but smoke is not blended. And I probably forgot about many smaller issues.

bilinear filter
Major image quality degradation is caused by the lame bilinear filter.

Well, such was the impression from 2101 driver the 3dlabs support page still suggest to use. But then I tried driver 2103, despite it offering only Permedia 2 strings, and what do you know, it works. With its quirks, it seems old Permedia was no longer paid attention to since the second one came out. Tried 2105 as well, but d3d is no longer compatible, OpenGL ICD is usable though. In fact, ICD version 1.24 is the only hope for properly blended dynamic lighting in Quake 2. What improvements came with the new driver? Many blending errors were fixed, Expendable, Turok, Final Reality, Myth II are almost perfect. Lands of Lore 2 looks correct as well, but performance dived below 2 fps. Other than that there are plenty of performance improvements for newer games. Falcon 4.0 works, often too dark (learned some tricks from Nvidia?), but the Permedia renders what it can. Textures are finally seen in Unreal, though lightmaps cannot be blended with it. In Shogo lighting does not work at all, so things are fine as such. Finally the icing on the cake, Quake 3, with some texture chaos and ignored shaders, but it runs. MDK finally works and X Beyond the Frontier struggles with transparencies but is able to finish. Myth II framerate is much higher but at cost of such bugs that I decided to discard it. In the end, the only total losses are 3dmark 99, Motoracer 2, and Wipeout 2097. That is admirable compatibility for a 1996 chip, and if anyone has interesting driver versions (2102 and 2104?), I would like to get even more out of her. Another possibility for more accurate data could be OpenGL tests under Windows NT.

Viper Racing
Default 3Dlabs driver of Windows 98 (SE) has also something to offer: Viper Racing without blending artifacts. However texture resolution is lowered- unless the Permedia has 8 MB of memory. Click on the picture to see it.

The massive memory of the Permedia NT solves any memory constraints. Textures are never dropped. Otherwise rendering quality remains the same. The bad memory allocation can still haunt a user. For example, Motoracer 2 ran only at 320x240.

Quake2 NT
Permedia NT 8 MB bravely rendering Quake 2 with full textures

Here are some more pictures from the FireGL 1000:

Results

After the first driver I found closest speed competitor in the first revision of 6326 by SiS. As usual, to view minimal framerates click on the image.

3Dlabs Permedia 3D benchmark

The two contenders were tied at average framerates and Permedia took a 10 % lead over the 6326 in minimal fps. Still, I would rather judge overall 3d performance of Permedia as slightly inferior, because of bigger image quality issues. When results from driver 2103 came together, comparison against similar kind of products like Revolution 3D and Millennium 2 seem to be good idea, but Permedia is lagging behind even more. How about slowest version of Matrox Mystique?

3Dlabs Permedia 3D benchmark

Faster Permedia by Texas Instruments matches Mystique at lowest framerate and falls behind by 10% at average one. The difference between two Permedia cards in both is 10%. While in terms of pure framerates it falls behind younger "productivity" cards such as Millennium II, 3dlabs offered friendlier price tag and more advanced features.

Plus there is the NT chipset in the form of FireGL 1000. The Delta setup engine on this system can be contra-productive. Occasionally the framerate is below the basic cards, but this being rare I deem the power of the setup engine was more than adequate for its time. The true difference comes when the extra four MB of memory comes in handy. No more texture trashing, and in the case of OpenGL no more need for "texture compression". However, rendering the full textures lowers framerate farther yet. 640x480 in texture heavy games is too much for any Permedia. On average the NT at 60 MHz performed only 10 % faster than Permedia-60. Therefore this NT configuration would be behind fast-clocked Permedia-80 by similar amount.

Conclusion

After this examination, it is more clear why Permedia did not spread that much. Its raw performance for 1996 is not that bad, pricing was reasonable, but limited feature set, memory management issues, and drivers not friendly to gaming could not impress consumers. Much of the professional pedigree is missing. True to be told, the impression was often quite the opposite. In the end, I got higher than expected results from the card, but after long and patient tweaking. For example, make a comparison to PCX. It had also severe limitations, but PowerVR's support reached and lasted further. If 3dlabs did not phase out drivers, who knows what could be achieved. That and some additional 2MB more memory, Permedia in its time could be second only to 3dfx. On the other hand, as a professional solution, cheap Permedia might not have looked serious enough. It was a compromise that mastered none. The strategy was sound, how it was executed is another question. With a focus on integration and performance enhancements, 3dlabs succeeded a lot more following year with the second pervasive chip.

continue to Permedia 2 review