Summary: NVIDIA Editor's Day occured last week, but we weren't content just to give a news summary of it for you. We took a look at NVIDIA's claims, their points of contention with their competitors - straight to the pros. With honest commentary from programmers Tim Sweeney of Epic and Tim Little of ION Storm, as well as answers from various devs about why they came, we bring you this 9-page report on the event. Read, digest, and be merry.
NVIDIA Strikes Back?
There’s a lot you may have heard about NVIDIA Editor’s Day. No doubt there are plenty of reports floating about the conference and what happened. You’ve certainly read reports of game developers showing up to support NVIDIA, and others simply taking the time to market their games. There has no doubt been coverage, honest and disingenuous, favorable and otherwise, of the statements made by NVIDIA’s engineers and reps, as well as their esteemed CEO, Jen-Hsun Huang.
However, I should make it clear – while I have as much interest or more in hardware than your typical hardcore gamer, I’m no Brandon or Chris. So rather than focusing on the technical aspects of what NVIDIA was saying and elaborating on that, I’ve approached the game developers themselves for comments and elaborations. Some have chosen to remain anonymous or stay off the record, but their answers to various questions have shaped the opinions that lie herein.
But first, a prelude
Firstly, and this has nothing to do with the conference, it’s time to clear the air of a little popular myth. NVIDIA isn’t 3dfx. NVIDIA’s development as a company doesn’t mirror that of 3dfx. To dispel notions of NVIDIA’s impending doom, the “3dfx curse” and other such nonsense, all one needs to do is look at the financial results for NVIDIA and ATI. Both experienced gains in the last quarter, and while NVIDIA is down relative to its peak, they still maintain a lead that they aren’t keen on relinquishing.
A critical look
At lunch, we humble members of the press enjoyed “a fireside chat” with the disarmingly matter-of-fact Jen-Hsun, and Todd Hollenshead, CEO of id. To get a full appreciation of the effect this had, it helps to remember that id has an untarnished reputation in the industry. Nobody is about to accuse John Carmack of fudging numbers or bias when it comes to computer hardware, while id’s financial status and fierce independence makes it rather unlikely they were bought a spot at the conference or compelled through contract to appear. A quick email to Todd Hollenshead resulted in the predictable response:
With such unflinching support, it becomes very difficult to separate the honest statements made by both presenters, and the colorful angles presented by Jen-Hsun Huang along with the rest of the NVIDIA staff. This is compounded by the disturbingly open and honest discussion going on at the event, with NVIDIA being barraged by questions and a few accusations at many opportunities. Finding a great big lie is a lot easier than catching the small spins put on every answer.
Jen-Hsun’s pet Paper Tiger
During the dialogue with Todd, Jen-Hsun made it a point to downplay ATI as a rival despite their strong resurgence which coincided with the release of the R300 and R350. Rather, he was focused on Intel as a competitor, stating that NVIDIA lost its pre-eminent position to Intel because of the embedded graphics hardware market. “Free”, as he stated, “is hard to say no to”. Putting the onus on writers, Mr. Huang suggested including benchmarks of embedded chipsets, in order to demonstrate their inferiority to the public.
To those who haven’t been paying much attention, NVIDIA has been receiving a beating in several media outlets for their “optimizations” to certain driver releases, in order to improve the apparent performance of the NV3x line. There were charges, very fair in many cases, that these optimizations were little more than cheats.
Q: How has your driver development changed as a result of the cheating accusations?
Strong words, certainly. As you can see in Chris’s image quality shootout, for the most part, NVIDIA has backed them up. There are certainly optimizations out there that affect image quality (such as the fishy trilinear in UT2K3), but in general this can be considered a good development. Indeed, NVIDIA placed the onus on journalists to hold ATI up to the same standards, demonstrating several optimizations that cheat end-users of image quality, in current Catalyst drivers.
One of the more interesting points Jen-Hsun tried to make was that ATI apparently spends far too much of its time worrying about what NVIDIA does. Allegedly, ATI engineers dissect NVIDIA drivers and attempt to spot optimizations that affect image quality. Then, in turn, they passed this information on to journalists at ATI Shader Day.
NVIDIA representatives took pains to mention their driver stability and were backed up on this by several developers. They brought up a statistic about tech call support ratios. Despite comprising a large fraction of the chipsets used with the game, only 6 out of 250 calls would be regarding NVIDIA hardware. Unspoken, and likely exaggerated, is the implication that the remaining 244 were about “the red company”.
The devs themselves
There are more than enough rabid fans of each company out there that accusations of bias, buy-offs and marketing contracts are sure to fly at the developers and even media who attended the event. Todd Hollenshead already gave his reasons for attending on page two, but two quotes from Randy Pitchford of Gearbox shed more light on the matter.
the reasons i went:
Harvey took the time to demonstrate DX2 at the conference, but his tech man was unable to make the show. However, he was generous with his time and allowed us to badger his programmers who are currently in CrunchTime™ on the last days of DX2’s development.
SIDEBAR: Gearbox is strongly contemplating an attempt to work co-op into Halo. There are no guarantees but the company is willing to spends its money and time on the task.
24 is too much?
Editor's Note: Brandon Bell: Gabe never said that FP16 wasn't enough for HDR though, it's just that their [Valve's] implementation uses floating point render targets which currently aren't supported by NVIDIA drivers. You can see this in the ShaderMark testing with GeForce FX 5700U, where the ATI cards are able to complete HDR tests, but the NVIDIA cards can't run them.
As you can see above, Brandon corrected a misconception of mine. I’ve left the remainder of the article untouched, in order to maintain integrity, but please keep the above in mind when reading the following. We’ll also be looking further into the non-functioning ShaderMark tests. -ed
One of Gabe Newell’s most memorable accusations levied at NVIDIA was that 16-bit is not enough for High Dynamic Range, or HDR. While we were awaiting answers from the developers we polled on this, I decided to see if I can find out for myself just what, exactly, High Dynamic Range is. NVIDIA’s GDC presentation and the SIGGRAPH High Dynamic Range Image Editor pdf can help explain in detail.
It turns out that lighting in computer graphics has thus far been controlled by a mere 8 bits. This means that there are 256 levels of intensity available to regulate a scene using what’s called a radiance map. This means that every light source and object has to fit somewhere into this scale. 256 levels isn’t a whole lot of detail.
To give you an example of how it’s limiting, click to pages 6 and 7 of the SIGGRAPH link. The images on page 6 are virtually identical. 8-bit detail is as good as 16-bit for this scene. However, the moment you modulate the level of intensity, as on page 7, you suddenly see the limitations of 256 levels of detail. The one on the left-hand side is left with 4 brightness levels for its pixels.
In a way, it’s best to think of HDR as a film camera with film that can adjust its exposure time dynamically to suit the situation. It could take a picture of the night sky and then capture an Alex Gonzalez home run ball against a sunny afternoon sky, all without changing the roll of film.
Is 16-bit enough?
Now that’s the $65,535 question! Is Gabe Newell right and 16-bit HDR is inadequate? Yes and no. Perhaps, for Half-Life 2’s purposes, there will be such drastic changes of light intensity that 16-bit has the same relative weakness that 16-bit rendering does.
Tim Sweeney as a more technical explanation of HDR.
So how come we have such wildly different architectures, even in the presence of a regulating standard like DirectX?
Tim Sweeney: The DirectX9 spec defines a core feature set that all implementations must have, plus a set of optional capabilities. Unfortunately, the set of optional capabilities ranges from multiple render target to floating-point precision (some vendors use 24-bit, others use 32-bit, but potentially a vendor with some bizarre 19-1/2 bit format could claim DirectX9 compliance).
We also asked if 24-bit precision and the 64 shader instruction limit were significant detriments to ATI, to which Tim responded with a negative:
Tim Sweeney: The tradeoffs ATI made with 24-bit floating point and with the 64 instruction limit are quite reasonable for the Radeon's generation. Of course, as developers, we always want more precision and more instructions from future hardware!
So what does it mean? Odds are that your Radeon won’t be made obsolete, but optional high-detail features on future games will not work. The question is, of course, when will those games come out and will DX9-generation cards even be fast enough to run them with those details anyway? So we gave Tim a related question:
FiringSquad: Do you believe it'd be possible to take advantage of the longer instructions on current NVIDIA hardware without bringing performance to a standstill?
Tim Sweeney: You definitely wouldn't want to use a 4096-instruction pixel shader in a game shipping this year, but I can see cases where an 80- or 100- instruction pixel shader would be nice. In our third-generation Unreal engine work, we have lots of shaders where 100-200 instructions are desirable.
Beyond this generation though, talking about 3- or 4-digit instruction count limits in programs is very archaic - the theoretical instruction count limit on a Pentium 4 is 4294967296, and on an Athlon 64 is 18446744073709551616. The trend in pixel shading is to move towards higher-level languages like HL SL, where there is no obvious relationship between the source code you write, and the number of assembly language instructions generated. So, over the next few generations of GPU's, we really need to move away from fixed limits; all resources including program size and texture resolution should be limited only by available physical and virtual memory.
To understand Tim’s answer it helps to have some knowledge of what HLSL is, and how shaders are currently programmed. At the NVIDIA conference we were shown several batches of shader code, which would look very familiar to those of us who have done assembly programming. The language is very low-level and quite literally involves giving specific instructions about moving data to and from registers, multiplying, adding and subtracting by hand. Even simple concepts like “while” loops are non-existent in basic shader language. That is all changing with DX9 and the introduction of HLSL.
HLSL, or High Level Shader Language, is just that. It is to shader language what C is to assembly. What this means, of course, is that the programmer won’t have any control over the exact instructions being done by the computer, and thus won’t know how many instructions his program will take until after it’s compiled. That’s why, as Tim says, it’s very important for future cards to have instruction limits so high that for all intents and purposes they don’t exist. (Curious what HLSL looks like? Take a look! Curious about basic pixel shader language? The Direct3D 8.1 tutorial has some – do a search for ‘m3x3’ to see.)
SIDEBAR: Tim was the only dev to go on the record with his technical answers even if they might upset NVIDIA or ATI. I tried avoiding bugging the higher-profile devs like Tim or John until it was clear time was running out.
24-bit is not enough?
Going back for a professional opinion on the “24-bit is not enough” point that NVIDIA had:
Note: when I asked the following question, I mixed up 16- and 32-bit’s IEEE status; it’s not a mistake by NVIDIA.
FiringSquad: Related question: NVIDIA also stated that 24-bit is not a standard, while16 is an IEEE standard and 32-bit is a non-formal standard that has evolved in other industries. Would you say that 24-bit's "non-standard" status is a limitation? Wouldn't, in fact, its existence and current popularity among PC developers make it a de-facto standard?
Tim Sweeney: 32-bit and 64-bit floating point are defined by the IEEE 754 standard, ratified back around 1985, and are supported by the vast majority of the world's CPU's. This is definitely the direction GPU's ought to go in the future. In the meantime, I'm not aware of any similar standards covering 16-bit or 24-bit floating point, but if you're writing a game that's shipping this year or next, these formats are well-defined and supporting them isn't exactly rocket science.
As Tim clearly points out, 24-bit not being an official standard isn’t at all limiting to developers. It’s got clearly defined guidelines, is widely accepted among gamers and thus developers will continue to develop with it in mind.
However, in the future, we will migrate to 32-bit and even 64-bit (or 48-bit?) shaders. The actual life expectancy of current cards is unknown. While no one is likely to decide that NV3X or R300-series cards are obsolete prematurely, what we may see is the evolution of graphical features that the cards can’t display, even though they’re more than fast enough for the game. We’ve already witnessed this with the Voodoo5 and Voodoo3. Then again, there’s no guarantee this will occur.
SIDEBAR: Railroad Tycoon 3 is pretty sweet.
Like Epic, ION Storm was also generous with their time and they provided answers to some questions as well, this time provided in simply Q&A format. (Note: questions were edited after the fact for brevity and clarity.) Tim Little is the Director of Technology at ION Storm and has been responsible for the development of their own custom rasterizer, Iris, to go along with the rest of the Unreal Engine technology they licensed from Epic.
FiringSquad: NVIDIA’s claim is that their card is easy to program for but more difficult to optimize. Recent benchmarks and John Carmack’s January 29, 2003 .plan suggest that NVIDIA may be correct. What’s your take on this?
Tim Little: In DirectX 9 shaders compile down to a common intermediate format that the driver then compiles into something that works on the hardware. The closer the mapping of that intermediate format to the hardware the more direct control the application developer has over the degree of optimization. The driver must be sensitive to the amount of time spent on optimization while compiling the shader as it cannot be done as an offline process. I'll point out that id uses OpenGL and IHV extensions which offer better direct control over these kinds of issues at other expenses.
FiringSquad: ATI beat NVIDIA to market, and presumably developers, by at least 3 months. Do you think that developers starting development specifically with ATI hardware in mind contributed to NVIDIA’s woes?
Tim Little: The fact that ATI had hardware sooner than nVIDIA played into a number of things, not the least of which is how much influence they may have had on the DX9 specs. When you have hardware available for the API provider to work with during development, the API may just work better with your hardware. The opposite can also be true, if you have a full spec before you implement your hardware, your hardware will probably work better with it. I think nVIDIA fell in-between, they were both too late to strongly influence the spec, and not late enough to benefit from it. I believe that as nVIDIA's drivers improve in bridging the gap between API and hardware their performance will continue to improve. The other factor is that R300 and NV3x have different capabilities, and the fact that ATI was in developers' hands earlier did lead to developers using those capabilities, some of which are problematic to adapt to the NV3x cards. In short yes, nVIDIA was hurt by ATI beating them to market by such a large margin.
FiringSquad: NVIDIA asserted numerous times that their cards have a sufficient number of registers. However, on at least two occasions during the conference they stressed that optimizations in the ForceWare driver release would alleviate scheduling conflicts, notably a shader program using too many registers, or a single register seeing too many access attempts. Would you agree then with NVIDIA that it’s the drivers and programming, not the register count that is/was a problem with the FX cards?
Tim Little: Yes, I give several examples above of the reasons that the drivers play such a crucial role for nVIDIA. Given time they will begin to approach the performance the hardware is capable of in D3D. I believe that from a hardware standpoint the differentiators are the features of the high end cards more so than performance.
FiringSquad: Have you found the 64 shader instruction limit on ATI hardware actually limiting?
Tim Little: This wasn't an issue for DX:IW or for our Thief project, but certainly may come into play on some of our newer titles.
SIDEBAR: Wow, everybody was cutting it close with their deadlines.
It’s become rather trendy to bash NVIDIA lately. People like winners and people love underdogs. ATI is both right now – they’ve climbed their way out of the abyss and even disregarding the NV30 production delays, their timetable was catching up to NVIDIA’s. NVIDIA, in the meanwhile, is the top dog that stumbled, and it’s always fun taking the king of the hill down. Ignoring all those feelings, putting fanboyism aside, is quite important on getting a clear perspective on matters.
The first matter is that NVIDIA isn’t dead, dying or on their way to a premature end. There was nothing about the manner of the NVIDIA reps that suggested panic, despair or even worry. Although this was obviously the image they were trying to portray… real, personal confidence is a difficult thing to fake and there was no fakery here.
The second matter is to discount NVIDIA’s claims of ATI’s technological backwardness and waste of engineering resources on discovering ‘optimizations’ in NVIDIA drivers. ATI was making good progress before NVIDIA miscalculated with the 0.13micron gamble that led to the NV30 delay. The R300 and R350 are also arguably better for today’s needs than the NV3X cards. There’s nothing to stop ATI from making the necessary changes in future cards.
It’s difficult not to come away with a guardedly optimistic impression of NVIDIA and their prospects, despite my initial cynicism. They had an open forum during the whole conference, answering questions and accusations. They acknowledged past mistakes, and built upon them. Some of NVIDIA’s comments went through the PR processing machine a few too many times, but in general their honesty and forthrightness was admirable.
FiringSquad would like to thank Harvey Smith of ION Storm, Todd Hollenshead of id Software, Randy Pitchford of Gearbox Software, and especially the two Tims – Tim Little of ION Storm and Tim Sweeney of Epic.
SIDEBAR: Article word count: 5752, including HTML and other formatting code.
|© Copyright 2003 FS Media, Inc.|