X-3DFX interview!

The Irish and the American 3dfx

Márton: How was the software development for 3dfx split up between you (the Irish and the American team, and between the 35 people (35, right?) in the Irish team)?

Paul: There were 19 developers and 6 Quality Assurance staff in the Belfast office. Of these developers, 1 was multimedia - developing drivers for the Voodoo TV, 6 were the (entire) tools team, and the rest were the Sustaining Engineering department. There are more engineers in the building that originally worked for STB, but they were spun off to form Enseo, for high end multimedia and video products.

All the Tools work was done in this office. For the drivers, the main core was developed by the engineers in San Jose and Dallas, with the Sustaining Engineers taking care of legacy products. By legacy I mean the Voodoo5! The core work and driver set was developed in the states and generally a while before release Belfast took control, fixing any bugs that were left.

Hirdetés


 

Márton: What does driver optimization mean? How do you "tweak" drivers for maximum performance? You change certain core routines to assembly language, or change something algorithmically, or...?

(It was always a mistery to me, that 3dfx and nVidia both could release drivers that improved performance considerably, say, about +20-30% from time to time. How? How can someone do a tweak in the driver that yields this much performance, but was not possible to implement in the first release? Or is this due to the timeframe, that companies have to keep with product releases, in other words, is there no time to fully get to know the hardware before writing drivers?)

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.


 

Márton: In what programming language(s) do you write drivers/3dfx Tools?

Paul: The drivers are basically coded in C, with some assembly. The Tools is a different matter. All the code is done in C++, initially making use of MFC, but this was dropped because of problems with multithreading. Other technologies involved in the tools are COM, with substantial use made of the Platform SDK for reference (I know I used it an awful lot).

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

  • VIA interview, 2002!

    Ready for some hot stuff? Want to know what's cooking in VIA's labs? Wanna break some NDAs? Well, we won't, but still, prepare for a cool interview with one of the big guys: VIA.

  • VIA interjú, 2002

    Az interjú, ami körbejárta a világot, most magyarul is olvasható. Alaposan megkínoztuk a VIA-t, a kérdések teljes spektrumát zúdítva rájuk.

  • Interview with XGI

    XGI is a new player in the GPU-field and the recently announced Volari series stirred quite a bit of attention. It's time to look behind the scenes.