De mannen van PlusAbit (oké, een Hongaarse site...) hebben de kans gekregen om een aantal vragen af te schieten richting Paul Mangee en Jonathan Trainor van x-3dfx. Paul en Jonathan waren beide werkzaam in Belfast als software engineer voor 3dfx. Zoals bekend is na de bijna dood van 3dfx x-3dfx opgericht door een groep die-hard 3dfx werknemers om toch door te kunnen blijven gaan. Om maar meteen met de deur in huis te vallen: de mensen van x-3dfx zullen in ieder geval proberen om nieuwe drivers voor de Voodoo familie te schrijven :
There are a lot of developers here who would not like to see their work in recent months go to waste, which is why there has been rumours of driver releases. This is a personal goal for many of the staff, even if as a parting shot. I'm sure no matter what happens a lot of the developers will work on support for the near future, even if it is in their own time.[break]Verder gaat het interview voornamelijk over hoe het leven als software developer was bij 3dfx en hoe ontwikkelen van drivers in zijn werk ging. Hieronder de antwoorden op de vraag hoe het toch mogelijk is dat drivers op een mysterieuze wijze toch altijd sneller kunnen:[/break]Paul: Most of the core 3dfx routines are written in assembly, to get the maximum performance possible, but the rest of the driver was written in C. As far as I know, only the most commonly called code segments were in assembly, as it would take too long to write the entire driver like this.
You are correct, a lot of it has to do with time. Coding large optimised routines in assembly take a lot time to write comparing to writing it in C. Some of the large performance gains have been a result of examining the code generated by the C compilers and spotting segments that could have been done better. There are also tools that were used by the performance team to help them in this analysis (VTune I think was one of them).
Johnny: In addition to what Paul has stated it is a fact that the more you work with a particular piece of hardware, the more familiar you become with it. A better knowledge of the hardware allows software developers to write better code for it, often with tricks and workarounds that improve performance. For example look at the first Playstation games that came out and compare them to the latest Playstation games. The game developers are using the same hardware but they are more familiar with it. I know that a few clever software tricks that significantly improved performance in later drivers.
It is also possible, with some research, to determine what are the most common code paths taken through our drivers when running games. Most time is spent trying to optimize these frequently used routines.