WaltC said:
Dave H, I think you might be getting ahead of yourself here. First you say, "The mipmap transitions are clearly visible..." and then, "in motion I'd imagine they'd stand out quite a bit."
Yes, referring to
one screenshot posted here and clearly chosen to highlight the effect.
Then you say, "Both Kyle and B
rett state that the transitions aren't visible even in motion " and "You seem to be implying the opposite. I trust your eyes a good deal more than theirs. But for that reason specifically--how noticable is it, exactly?"
Right, across a cross-section of representative environments throughout the game.
In the first paragraph you correctly realize that if you can see a mipmap band in a screen shot you can bet it's visible when the game is in motion. But in your second paragraph you state that Dave B. "implies" the visible mipmap boundaries which in your first paragraph you state "... are clearly visible..." and then, "in motion I'd imagine they'd stand out quite a bit." Didn't you more or less answer your question as to what Dave B. "implied" by your observations as you stated them in your first paragraph?
IE, the screenshots by Dave B. didn't just "imply" it, they proved it. Right?...
No. The screenshot by Dave B. proves that the problem is visible in certain selected corners of the game. I only have the 2-level demo of UT2003, so I can't speak on this with any authority, but I get the feeling that the environments shown in Kyle's pics are more representative of the game as a whole. Indeed I don't think Wavey would deny that he picked that spot for the screenshot because it showed off the issue to greater effect than any old average spot in the game. What I'm wondering--and what I'd like Dave to comment on--is just how unrepresentative of the game as a whole that spot is.
It strikes me that Dave mentioned that both the IQ degredation and the performance benefits increase in levels where detail textures were more heavily used. (Which makes a lot of sense.) If it turns out that [H] chose areas of the game where few detail textures were in use, then their investigation would lose a lot of credibility. One would hope they at least checked out all the areas shown in those benchmarks that caused the controversy in the first place; if they didn't, then shame on them.
Again: I don't have the game, so I don't know the answers to these questions. Just one of the things I'm hoping Dave or anyone else with an NV3x will be able to quantify and comment on.
Also, what I got out of [H]'s text was not so much that they "couldn't see any mipmap boundaries" when playing the game, but rather that "what mipmap boundaries you can see while playing the game don't matter since you are running around fragging people and don't have time to judge the IQ." IE, what I got from [H] was simply that "it didn't matter" if mipmap boundaries were occasionally visible since in all likelyhood "you wouldn't notice them" when playing the game because your attention would be elsewhere.
That's not what I got out of their text. What I got from it was that they couldn't see any mipmap boundaries, except perhaps very faintly, only with no AF, and only when looking explicitly for them. They are quite clear that in their opinion the differences in texture filtering quality (or perhaps LOD?) between the two cards (a factor that is almost never discussed) greatly overshadowed any difference due to visible mipmap boundaries.
A couple of problems with this approach...
Yes, it's accurate to state that a direct comparison of nVidia's faux-trilinear with ATi's bilinear would be incorrect from an IQ standpoint. It is also, therefore, equally incorrect to compare nVidia's faux-trilinear with ATi's full trilinear, for the same reason. [H] incorrectly does this.
Not at all.
According to [H], the difference between Nvidia's faux-trilinear and ATI's bilinear was immediately noticable, distracting, and caused an obvious degredation in output quality. Whereas, according to them, the difference between faux-trilinear and full trilinear was not at all noticeable unless one went looking for it (and usually not even then); and even then was not as noticable as other IQ differences which are commonly accepted in "apples-to-apples" comparisons.
Should we not compare R3x0 to NV3x with no AF because it is generally agreed that NV3x has slightly better texture quality at those settings? Should we not compare NV3x to R3x0 at 8xAF with UT2003 and 44.03 drivers because both [H] and AMDMB found the R3x0 has significantly better texture quality on certain polygons at those settings? (Possibly...but then what are you going to compare?) Should we not compare R3x0 to NV3x at 8xAF in other games/with other drivers, because previous comparisons have generally found that NV3x has slightly better texture quality at those settings? Should we not compare NV3x to R3x0 at 4xMSAA? (I know your feelings on the subect, but not very many people agree.)
No. We should try to set up as fair a comparison as possible, first of all. But then, in addition to providing fps numbers, we should
- Provide screenshots and/or other means of verification so that readers can decide for themselves how fair the comparison is and whether they prefer one card to another
- Discuss in detail the reviewer's subjective opinion on the IQ impact of any output discrepancies
- Discuss the technological reasons for any performance advantages the various cards may be getting by various known deviations from the competition and/or reference behavior, whether resulting in visible IQ differences or not
Obviously not all reviews are going to live up to this standard, particularly the last part, which is something I would only expect from a technologically competent reviewer like Dave. While [H] has not done much on the technology detail part, with the publication of this article they've done a beautiful job on the first two items. (And frankly, if [H] were to try to go into the details of what's going on they'd get everything wrong, so best that they didn't.)
Just to be clear--"IQ" doesn't refer to a checklist of features. IQ refers to how good the image looks on the screen. If faux-trilinear looks broadly the same as full trilinear, then by definition it has broadly the same IQ. Even though it may be rendering a significantly different workload. If that were the case, comparing faux-trilinear to full trilinear may not be proper in a technology oriented review like one here at B3D, but it would be perfectly appropriate in a game output oriented review like those at [H].
Second, it should not be forgotten that nVidia has not stopped doing full trilinear in other games--and that this situation only applies to UT2K3. As someone else stated, if nVidia does full trilinear in Unreal 2, and pretty much everything else, why is it only in UT2K3 that nVidia feels it is necessary or beneficial to eliminate the option of full trilinear filtering (regardless of whether faux-trilinear is made available as an option or not)? Best answer so far is that nVidia has singled out UT2K3 in this regard because its associated canned timedemos (Antalus Fly-By, etc.) are so often used for benchmarking by hardware review sites.
Another good answer is that UT2003 is heavily texture-filtering bound, and that thus this optimization is particularly likely to address a bottleneck. Another good answer is that UT2003 is particularly full of environments where this optimization is not noticeable, which is why Kyle was able to post so many pictures without finding any problems. Or perhaps it is in use in other games, and we just don't know about it. How many games support turning on colored mipmaps to examing texture filtering properties?
Clearly, nVidia obviously feels there is a difference between its faux-trilinear and full trilinear filtering, else the only thing the nVidia drivers would provide for every application would be its faux-variety of trilinear filtering. Right?
Not necessarily. See above.
SSAA and MSAA are simply different methods of doing the same thing--FSAA.
Yeah, and flat shading and photon mapping are simply different methods of doing lighting. Are you really trying to argue that the difference between SSAA and MSAA causes less of a subjective change in the output than this faux-trilinear does vs. full trilinear in UT203? :?
The difference here would be the rough equivalent of an IHV claiming to do SSAA while it was in reality doing MSAA while claiming it was legitmate to call it "SSAA" because "most of the time" it looked "almost as good." Problem is that regardless of how good it looks there would be no justification for calling MSAA SSAA as the two aren't the same. Likewise, whatever nVidia's doing in UT2K3 it's not the same as full trilinear and "looks almost as good" simply doesn't count. Whatever is being done is being done at the expense of full trilinear support in the game, and that's the problem.
Where did Nvidia claim they were doing full trilinear? All they promised was "quality image quality"!
Now, Rev has suggested that Nvidia
did claim in their materials for reviewers that Quality == trilinear, in which case they are reneging on a promise made to
reviewers. I don't want to underplay the fact that that's a really bad thing. Bad Nvidia!
But obviously it's nothing new in the context of Nvidia's behavior over the past year or so. Of course it is a problem in that it has lead to a bunch of reviews incorrectly assuming that NV3x Quality was performing the same workload as R3x0 Quality...although the latter turned out not to be doing trilinear on UT2003 detail textures
either, let's not forget.
All of this highlights the need for reviewers to be vigilent that their benchmarks are really testing what they expect. In the case of a technically oriented review like those at B3D, that means practicing due diligence to make sure that benchmarked configurations are undergoing broadly the same workload (up to API-conformance invariance). In the case of a game experience oriented review like those at [H], that means practicing due diligence to make sure that benchmarked configurations are producing output of broadly the same subjective quality. Perhaps they should search for and comment on game-specific optimizations so that their audience realizes that results may not be applicable to all games, but that is generally true even without drivers using game-specific settings, and tends to undercut the fallacy that game experience oriented reviews are really all that useful.
But I digress. The point is not that Nvidia was misleading. Everyone knows that. Everyone agrees on that. I'm not defending Nvidia.
The point is that, having discovered that, [H] is behooved only to determine the IQ impact of this optimization, and thus determine whether the assumption underlying their benchmarks--that NV35 and R350 offer comparable image output when running UT2003 at the settings benchmarked--was actually false. They did an apparently quite thorough investigation, and came to the apparently correct determination that the IQ actually is comparable at those settings. And you and others are condemning them for their determination, despite offering absolutely no evidence or reasoning why it was incorrect
for [H]'s purposes as a game experience oriented review site.
And NV1 did quadratic primatives for free.
Isn't it established (or at least insanely likely) that GF1's free trilinear was more a case of a buggy 2nd TMU/pipe? Even if not, free trilinear is an extremely bad design decision, considering how many textures aren't meant to recieve trilinear even when it's properly enabled. There is a reason we haven't seen it
since GF1.
Nothing is free in 3D (to quote Kristoff.) Any misapprehension you may have along those lines is, well...a misapprehension...
BTW, like nv30, nv1 was a failure commercially.
Heh. I know that; that was essentially the subtext of my admonition to Wavey. Of course using quadratics as the primatives for NV1 wasn't free; it gutted the performance of the entire part. (And believe me, compared to NV1, NV30 was the success of the decade.)
Neither was trilinear really "free" on the GF1. Given that the refresh part, GF2, mysteriously made a 4x2xbilinear part out of the 4x1xtrilinear of the GF1, it seems extremely likely that GF1 was designed to be 4x2xbi, but for some reason--whether bug or just some contraint that prevented them from putting in or validating that last little tiny bit of logic functionality--the second TMU in each pipe was unable to read from a different texture than the first, hence its usefulness was restricted to sampling and filtering a second mipmap of the same texture dealt with by the first TMU.
Having said that, and in no way meaning to contradict Kristof's words of wisdom, the notion that nothing comes for free in 3d is an emergent property that just happens to almost always be true, rather than a fundamental law. And it only holds true when the people who have come before you have done their jobs right and not left any pure performance wins on the table. That is, the only reason there are no new techniques to be had that are all advantage and no disadvantage vs. existing methods is that the people who came up with the existing method were not idiots.
But in the case of full trilinear, I'm wondering why not. I'm sure someone on this board call fill in my flimsy knowledge: why
should we be sampling from two mipmaps even when the calculated LOD is close to the mipmap LOD (i.e. around the middle of a mipmap band)? If the point of trilinear is merely to avoid visible mipmap transitions, what on earth is wrong with just doing trilinear in a narrow range around the transitions and leaving the rest of the image bilinear? Is there some texture aliasing problem that trilinear helps? Or what?
Surely this faux-trilinear is not a new idea. But what exactly is wrong with it, beyond not conforming to the definition in Fundamentals of Computer Graphics as per
Tim Sweeney's email?
The problem, again, is that it is only for UT2K3 that nVidia has tried to eliminate full trilinear filtering. In most everything else, if not everything else, nVidia still does full trilinear. As such, nVidia's driver behavior in UT2K3 in this regard is very much the exception, not the rule.
The simple answer as to why nVidia does not universally discard full trilinear filtering support in favor of the faux-trilinear employed for UT2K3 should be obvious--full trilinear support produces better IQ than nVidia's performance-oriented compromise, and this is not lost on nVidia. The central question here is not whether nVidia's compromise is "almost as good" as full trilinear, the central question is why has nVidia coded its drivers to deliver a performance trilinear, even when the application itself requests the drivers provide full trilinear support? And of course there's the question of why nVidia thinks this is needful for UT2K3 but apparently nothing else?
Well we should hardly forget that this shortcut is being applied only in the case of UT2003's
detail textures. Presumably there is something about extremely high-resolution textures that makes enabling faux-trilinear less noticeable. It is obvious why it makes cutting down on trilinear work yield a much higher speedup.
But on the flipside none of that stuff should excuse us from getting to the bottom of what seems to be a very interesting issue.
It's interesting only because nVidia has removed the option of full trilinear support from its drivers with respect to UT2K3, IMO.
Guess this is an agree to disagree kind of thing. But honestly, aren't you the least bit intrigued that they managed to find such a significant performance increase on the table without noticeably affecting output quality? If not, I'd suggest that you're more interested in the graphics market as morality play than for its technological content. (Not that there's anything wrong with that.)
I think you are reading way too much into it. nVidia is obviously not proposing "an alternative to full trilinear support" or anything like that. If that was the case we'd see an option in the Detonator control panel allowing this technique for all 3D games. Instead, the truth seems much more mundane and, sadly, predictible: it's just a hack nVidia's put into its drivers for UT2K3 to help out its scores relative to R3xx in UT2K3 when trilinear filtering support is enabled in the application.
These sorts of hacks have always existed, are used by Nvidia, ATI and every other IHV [Q: then why doesn't Unwinder's anti-detect impact ATI performance on more games? A: we have no proof it is detecting all game-specific optimizations in either ATI's or Nvidia's drivers], and are 100% commonly accepted practice so long as output conformance is not broken. Here we have a situation where the output is not conformant, but the difference is apparently not subjectively noticeable to the end-user. But this is far from the only example of that sort of optimization either.
All those other optimizations are uncontroversial or at least unremarked upon. I'm not saying this sort of thing shouldn't be looked into. In fact that they
should be looked into--and that's
exactly what [H] has done. They've found that in this case the optimization doesn't impact subjective output quality, which, by the standards of their reviews, is all that matters.
They're also calling on Nvidia to make this optimization selectable in the drivers, and indicated that Nvidia will be doing exactly that. The fact that it wasn't is bad on Nvidia's part, and [H] has criticized Nvidia for that.
The only thing they haven't done is the only thing that would satisfy you, namely disqualify all Nvidia products from consideration because Nvidia has engaged in slimy behavior.
That's the problem with viewing the realtime graphics ASIC industry as a morality play. It may be fun for a while. But the actors would rather view it as reality, and thus they're inevitably going to disappoint you.