Additional Carmack statement on nV3x & Doom3 performance

WaltC

Veteran
http://english.bonusweb.cz/interviews/carmackgfx.html

Hi John,

No doubt you heard about GeForce FX fiasco in Half-Life 2. In your opinion, are these results representative for future DX9 games (including Doom III) or is it just a special case of HL2 code preferring ATI features, as NVIDIA suggests?

John Carmack said:
Unfortunately, it will probably be representative of most DX9 games. Doom has a custom back end that uses the lower precisions on the GF-FX, but when you run it with standard fragment programs just like ATI, it is a lot slower. The precision doesn't really matter to Doom, but that won't be a reasonable option in future games designed around DX9 level hardware as a minimum spec.

John Carmack

Short, but to the point. What we're seeing in DX9 with HL2 is indeed indicative of nV3x. This should pretty much seal it (if anyone doubts it still or thinks Valve and ATi are colluding.)
 
omg ati payed off id and valve to make the fx look bad!?!


sorry, i just had to be the first to say that. ;)
 
kyleb said:
omg ati payed off id and valve to make the fx look bad!?!


sorry, i just had to be the first to say that. ;)

Heh... I have to confess I hadn't thought of that, but now that you mention it I'm sure the possibility will be raised....:D
 
Re: Additional Carmack statement on nV3x & Doom3 perform

http://english.bonusweb.cz/interviews/carmackgfx.html

Hi John,

No doubt you heard about GeForce FX fiasco in Half-Life 2. In your opinion, are these results representative for future DX9 games (including Doom III) or is it just a special case of HL2 code preferring ATI features, as NVIDIA suggests?

The question in and of itself shows exactly how out of touch the general public is. "DX9 games including Doom III?"

It's unfortunate that Carmack has to reiterate, again, that Doom3 does not benefit from DX9 features. The fact that Doom3 doesn't show the same performance discrepancy between NV3x and R3xx that "DX9 games" do is no contradiction, nor is it some mystery.
 
Re: Additional Carmack statement on nV3x & Doom3 perform

Joe DeFuria said:
http://english.bonusweb.cz/interviews/carmackgfx.html

Hi John,

No doubt you heard about GeForce FX fiasco in Half-Life 2. In your opinion, are these results representative for future DX9 games (including Doom III) or is it just a special case of HL2 code preferring ATI features, as NVIDIA suggests?

The question in and of itself shows exactly how out of touch the general public is. "DX9 games including Doom III?"

It's unfortunate that Carmack has to reiterate, again, that Doom3 does not benefit from DX9 features. The fact that Doom3 doesn't show the same performance discrepancy between NV3x and R3xx that "DX9 games" do is no contradiction, nor is it some mystery.

Joe,

I actually concentrated on Carmack's reply and so I missed that little tidbit. However, I think Carmack understood that probably what the question was asking was about Doom 3 performance in addition to DX9 games, as opposed to inferring that D3 was a DX9 game itself. Although I agree it can certainly be read way...:)

It wasn't so much that we didn't already know that full precision paths for OpenGL would cause the nV3x as much trouble as full precision DX9 paths, but rather only that this was another, recent, statement by Carmack indicating nothing has changed, essentially, since he wrote up his nv30/R300 precision comparison some months ago.
 
Walt,

Oh, I have no qubbles at all about John making a clarification, and his comments are completely relevant. ;)

It's just that the general public seems to think that Doom3 requires the use of the same tech as DX9 games. And I'd bet my house that the person who asked the question thought that way too.

I'm willing to bet that Carmack addressed the question to take some of the undeserved heat off of fellow development house Valve.
 
Actually, Doom 3 does benefit from DX9 features. You'll note in past articles/interviews/etc that even the R200 path may in some instances need two passes, while the NV30 and ARB2 path never need more than one. This, IMHO, is a definite benefit, though admittedly a small one and obviously by no means makes DX9-level hardware a requirement for the highest detail levels (except in terms of offering good performance, perhaps).
 
Ostsol said:
Actually, Doom 3 does benefit from DX9 features. You'll note in past articles/interviews/etc that even the R200 path may in some instances need two passes, while the NV30 and ARB2 path never need more than one.

Where did you read that about the R200?

The NV2x path (DX 8.0) can need multiple passes per light, but the R200 (DX 8.1 equivalent), only needs one pass.
 
Joe DeFuria said:
Walt,

Oh, I have no qubbles at all about John making a clarification, and his comments are completely relevant. ;)

It's just that the general public seems to think that Doom3 requires the use of the same tech as DX9 games. And I'd bet my house that the person who asked the question thought that way too.

I'm willing to bet that Carmack addressed the question to take some of the undeserved heat off of fellow development house Valve.

I can definitely see your point, but I really think the poster in this case was simply asking for Carmack's opinion on whether or not the Valve-ATi demonstration was on the level, from Carmack's point of view. And Carmack responded that Valve's experience was entirely congruent with his own. But since it will be possible in Doom3 to run the Arb2 path at full precision for both products, in a sense I think this does qualify as at least a DX9-ish feature (or you could call it an ARB2 feature, instead.) At least the public perception that whether it's DX9 or the ARB2 path the R3x0 blows nV3x out of the water is firming up nicely....That's got to count for something...:D
 
I am very very very glad carmack said this, I have heard many people saying Nvidia paid off iD (although they paid activision not id). And that b/c nvidia paid them JC would lie and pretend that the geforcefx was better, make the r3x look bad and so forth.
 
As of the end of January .plan update:
"...R200 (full featured, almost always single pass interaction rendering)..."

And a closer look reveals a pretty clear indication that the outlook at the beginning of the thread is not new:

"For developers doing forward looking work, there is a different tradeoff --the NV30 runs fragment programs much slower..."

I think the first part of that is fairly unambiguous, especially considering the discussion that followed...

That (long) discussion, seemingly largely forgotten, which I think also seems relevant to what Doom 3 might be growing into while we wait (and remarkably relevant to several recent discussions):

...
It is going to require fairly deep, non-backwards-compatible modifications to
an engine to take real advantage of the new features, but working with
ARB_fragment_program is really a lot of fun, so I have added a few little
tweaks to the current codebase on the ARB2 path:

High dynamic color ranges are supported internally, rather than with
post-blending. This gives a few more bits of color precision in the final
image, but it isn't something that you really notice.

Per-pixel environment mapping, rather than per-vertex. This fixes a pet-peeve
of mine, which is large panes of environment mapped glass that aren't
tessellated enough, giving that awful warping-around-the-triangulation effect
as you move past them.

Light and view vectors normalized with math, rather than a cube map. On
future hardware this will likely be a performance improvement due to the
decrease in bandwidth, but current hardware has the computation and bandwidth
balanced such that it is pretty much a wash. What it does (in conjunction
with floating point math) give you is a perfectly smooth specular highlight,
instead of the pixelish blob that we get on older generations of cards.

There are some more things I am playing around with, that will probably remain
in the engine as novelties, but not supported features:

Per-pixel reflection vector calculations for specular, instead of an
interpolated half-angle. The only remaining effect that has any visual
dependency on the underlying geometry is the shape of the specular highlight.
Ideally, you want the same final image for a surface regardless of if it is
two giant triangles, or a mesh of 1024 triangles. This will not be true if
any calculation done at a vertex involves anything other than linear math
operations. The specular half-angle calculation involves normalizations, so
the interpolation across triangles on a surface will be dependent on exactly
where the vertexes are located. The most visible end result of this is that
on large, flat, shiny surfaces where you expect a clean highlight circle
moving across it, you wind up with a highlight that distorts into an L shape
around the triangulation line.

The extra instructions to implement this did have a noticeable performance
hit, and I was a little surprised to see that the highlights not only
stabilized in shape, but also sharpened up quite a bit, changing the scene
more than I expected. This probably isn't a good tradeoff today for a gamer,
but it is nice for any kind of high-fidelity rendering.

Renormalization of surface normal map samples makes significant quality
improvements in magnified textures, turning tight, blurred corners into shiny,
smooth pockets, but it introduces a huge amount of aliasing on minimized
textures. Blending between the cases is possible with fragment programs, but
the performance overhead does start piling up, and it may require stashing
some information in the normal map alpha channel that varies with mip level.
Doing good filtering of a specularly lit normal map texture is a fairly
interesting problem, with lots of subtle issues.

Bump mapped ambient lighting will give much better looking outdoor and
well-lit scenes. This only became possible with dependent texture reads, and
it requires new designer and tool-chain support to implement well, so it isn't
easy to test globally with the current Doom datasets, but isolated demos are
promising.

The future is in floating point framebuffers. One of the most noticeable
thing this will get you without fundamental algorithm changes is the ability
to use a correct display gamma ramp without destroying the dark color
precision. Unfortunately, using a floating point framebuffer on the current
generation of cards is pretty difficult, because no blending operations are
supported, and the primary thing we need to do is add light contributions
together in the framebuffer. The workaround is to copy the part of the
framebuffer you are going to reference to a texture, and have your fragment
program explicitly add that texture, instead of having the separate blend unit
do it. This is intrusive enough that I probably won't hack up the current
codebase, instead playing around on a forked version.

Floating point framebuffers and complex fragment shaders will also allow much
better volumetric effects, like volumetric illumination of fogged areas with
shadows and additive/subtractive eddy currents.
 
Sxotty said:
I am very very very glad carmack said this, I have heard many people saying Nvidia paid off iD (although they paid activision not id). And that b/c nvidia paid them JC would lie and pretend that the geforcefx was better, make the r3x look bad and so forth.

I think Carmack's said a lot of things over the past months that should make people realize he's not in nVidia's back pocket. Carmack's been pushing OpenGL for years--understandably so--and during the period where nVidia didn't have much in the way of 3d competition--especially in the area of OpenGL driver 3d competition--his public leaning toward nVidia was understandable for that reason alone, if for no other, IMO. I don't see that Carmack has ever done anything to hide that from anybody.

Last year, he stated bluntly that at the time nVidia didn't have anything competitive with R300 so D3 first ran on an R3x0. I think that possibly R3x0 surprised him as much as it surprised most everybody else. While I did think his initial favorable comments about nv30 (except for the fan noise) were too favorable to have merit--to me--I can understand his very human disinclination to change--or at least to sudden sea changes, and that sort of thing.

Now that enough time has elapsed such that a trend is emerging which is practically undeniable by anybody--I wouldn't be surprised to see Carmack's general positions take new directions as time goes on. Like me, Carmack may be an old codger--but he's not *that* old (and neither am I...:)) Heck, I can remember a long, long time ago when Carmack was making statements about ATi products he was testing along with 3dfx's and nVidia's, even--and was frankly surprised to see him investing so much time in the current ATi products when I wasn't interested in them.

So while I can understand why people might misconstrue Carmack's past positions, I can also understand those positions he had when I view the situation from his perspective (as much as I can put myself in his place.)

I frankly think he was embarrassed by the "Doom3 Preview" mess that ensued at a certain nameless website--so much so that he was referring all requests for the "preview" to nVidia--much as if he'd had little to nothing to do with it. So reading between the lines it looks to me like nVidia might have presumed a wee bit too much on Carmack for his liking. I may be all wrong--but that's the way it looks to me. Contrast his behavior with that "preview" to Valve's behavior with its own software in its "preview" in which Valve claimed all the direct credit and responsibility for the software. I think Carmack would have done that, too, had nVidia not usurped his role in relation to the presentation of that software on those nameless web sites. Anyway, this is all just my thinking on it based on what I've seen and heard over the last several months.
 
WaltC said:
Last year, he stated bluntly that at the time nVidia didn't have anything competitive with R300 so D3 first ran on an R3x0. I think that possibly R3x0 surprised him as much as it surprised most everybody else. While I did think his initial favorable comments about nv30 (except for the fan noise) were too favorable to have merit--to me--I can understand his very human disinclination to change--or at least to sudden sea changes, and that sort of thing.


I wonder if something similar will happen with the introduction of the next set of chips (eg R360 or NV38). Which one do you think he would choose this time?
 
I dont think he'll bother to comment on nv38, unless there is a radical change that actually makes it competitive he won't bother. If it is as obvious as a hand in front of your face he figures that the average person can gather it for themselves.
 
phenix said:
I wonder if something similar will happen with the introduction of the next set of chips (eg R360 or NV38). Which one do you think he would choose this time?

I think he's pretty much said all he's going to say on nV3x and R3x0, to date, and what he's been saying has been pretty consistent all year. I agree with Sxotty that he's unlikely to to change his positions relative to R3x0 or nV3x for the foreseeable future--that at full precision nV3x is much slower than R3x0.

It'll be interesting to see what he'll say next year at the introduction of nV4x and R4x0, though. I'm sure that at the moment he's wondering whether ATi can maintain it's consistency going forward, and whether nVidia can rebound. Aren't we all?
 
Back
Top