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. It was 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 only add-on 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 target clock of 50 MHz and 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. All can be covered under DMA engine and there is also 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. 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. The main feature set addition was "full speed" bilinear filter, however, in the tests performance drop is significant. What more the filter does not really seem to be interpolating, 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 texturing unit is completed by lack of mip mapping. Now let me try to demonstrate its inaccuracies errors, along with 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 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. Permedia was an early adopter of SGRAM, and enjoyed the bandwidth, block fills and per-window double buffering. 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. 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


No better camera was around :(

3Dlabs did not really marketed first Permedia as gamers product, perhaps they were hoping Creative will do it for them. Although Creative licensed the core and announced own cards with CGL support, it seems they did not went into production and only sample board is known (thanks Gona). Such a change of mind in last moment could have been shower too cold for gaming ambitions of 3Dlabs, even if they bought CGL license to allow for 3D Blaster compatibility. Permedia can work with memory capacity from 2 to 8 megabytes. Above is earlier card, fabricated in IBM. For professional cards DAC by IBM was used as well, but here we see that Texas Instruments DAC works as well. Below is later version of Permedia from Texas Instruments, on ExpertColor board. Both cards came with 4 MB of memory, which is for reasons explained later not that much for 3d gaming. Control panels says 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 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 full triangle and AA setup engine on a separate chip called Delta, as was shown in the intro on 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 geometry performance of Permedia (per clock not sustainably much better than that of Glint) by factor of 1.5-3. And just like any hardware triangle setup it also reduces bus traffic.

Experience

First disappointment are 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 default demo, though it is still not enough to enjoy regular game without some white polygons. 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 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 Whipeout 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 result of 16 bit depth. But testing done with other games confirmed that Permedia takes small hit from true color framebuffer, around 10%. To enjoy 32 bit textures on top of that one really 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 has to render the transparent pixels black. There are also situations when transparent textures are rendered correctly only up front 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 own quirks, it seems old Permedia was no longer paid attention to since second one came out. Tried 2105 as well, but d3d is no longer compatible, OpenGL ICD is usable though. In fact 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 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 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.

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 was the NT chipset with Delta, how it would spice things up remains to be seen.

Conclusion

After this examination it is more clear why Permedia did not spread that much. It's 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 professional pedigree is missing, in fact 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 much further. If 3dlabs did not phase out drivers, who knows what could be achieved. That and some additional 2MB more memory, Permedia in it's 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 focus on integration and performance enhancements 3dlabs succeeded a lot more following year with second pervasive chip.

continue to Permedia 2 review