JohnH said:For Dx IHV's work very closely with MS during the specification of the API, so nothing that ends up in the API should really be a surprise, some discussion relating to PS2.0 had started before Dx8.1/PS1.4 had seen the light of day.
John.
RussSchultz said:The fact of the matter is, you can accomplish the same thing several different ways using fully compliant DirectX code. Some paths will favor one set of hardware, some the other. Particularly, the way you group primitives makes a large difference. (for example 3dfx hardware had no problem with lots of texture changes and every other piece of hardware did. Its perfectly legal code to change the texture all the time--but it isn't the best way to go for good performance)
I won't argue with you on this because it's true.JohnH said:The idea behind a standard API is that you code your HW to work well with it.
Reverend said:...
I think I said in some thread that I wished FM had implemented what I suggested to them when I read their audit report draft, which was to not use the word "cheat", which should be left to the discretion and decisions of the public (and websites), because I recognized the potential legal danger... but the audit report was scheduled to be public within the next day after I read the draft, so things were already in motion before what I had to say had any, er, importance. I even gave FM my edited draft, substituting all instances of the word "cheat" with what was actually going on. Although I respected the fact that this was entirely in FM's hands in what they choose to call it officially ("cheat" or statements of facts about what's actually happening).
The result is not one which I wished for, for all parties concerned.
RussSchultz said:John, that all is certainly true.
But following a spec doesn't mean that all items are created equal--unless performance measurements are included in those specs.
The fact of the matter is, you can accomplish the same thing several different ways using fully compliant DirectX code. Some paths will favor one set of hardware, some the other. Particularly, the way you group primitives makes a large difference. (for example 3dfx hardware had no problem with lots of texture changes and every other piece of hardware did. Its perfectly legal code to change the texture all the time--but it isn't the best way to go for good performance)
There is no shining path (not even in Peru) that is dictated by Microsoft--simply a set of APIs and expected rendered output. All of the recommendations and performance suggestions don't come from microsoft, but from competing IHV advocates who are attempting to make sure the world uses the path that best suits their hardware. Some of them are universal, others are more vendor specific.
Hanners said:JohnH said:For Dx IHV's work very closely with MS during the specification of the API, so nothing that ends up in the API should really be a surprise, some discussion relating to PS2.0 had started before Dx8.1/PS1.4 had seen the light of day.
John.
You're right in an ideal world, but how often do you see ATi and nVidia pulling in the same direction?
If you look over the last few generations of hardware/DirectX, I don't think ATi and nVidia have ever both gone in exactly the same direction, and both companies have suffered from changes to the DirectX spec brought about (directly or indirectly) by the opposing IHV.
For example, I seem to remember the original Radeon having Vertex shader 1.0 support, only to find that the DirectX spec was changed to 1.1 at the last minute. Then of course, there was Pixel Shader 1.4 which nVidia seemed none to keen on, and most recently the omission of partial precision from the initial DirectX 9 release despite nVidia wanting it included.
digitalwanderer said:I agree that FM shouldn't have used the word "cheat" in the first document. They could have avoided giving nVidia any ammunition to use against them in the first place and it wouldn't have been hard to get the gist across without using that particular word with all it's various legal implications.
Reverend said:I won't argue with you on this because it's true.JohnH said:The idea behind a standard API is that you code your HW to work well with it.
Note that I never said that the default test should be anything other standard API rendering paths. I only said that it would be interesting to see the results (performanceand IQ fidelity, the latter of which should have the standard API path as the basis for comparison) of IHV specific paths. And I never mentioned that IHV-specific paths would, could or should contribute to officially acceptable scoring. Maybe we can have different scores but with the standard API path's score as the only acceptable one?
WaltC said:I disagree with your opinions about "cheating" versus "optimization." The differences in the English language are clear and profuse. When nVidia chopped down the benchmark workload by implementing clip planes, unrendered frame segments, etc., they were clearly "cheating" and not "optimizing" at all. I would not characterize everything nVidia did as a cheat relative to the benchmark, but these things are clearly cheats--the word "optimize" is a gross misdefinition when applied to them.
Rev via email said:Personally, if FM wants to call this a "cheat" and mention it as many times as they have in this draft, they are entitled to it -- this is clearly a matter of declaring their position and views on this issue (and very clearly FM views this as "cheating", regardless of any other alternative word to describe it) and as a party who is no more than a beta-member, B3D really shouldn't be trying to influence FM's view of this by word substitutions.
However, my position is the same as FMs -- they're cheating, there are no two ways about it.
These kind of folks exists everywhere. Even folks that sit on the BOD of any one company.For that reason I applaud the brave souls within the company who had the backbone to stand up for their software and defend it against this kind of wilful manipulation and attack--the ones who drafted the original audit report. It's just too bad they weren't the ones to make the final decisions (obviously.)
There can be no confusion if what I suggested is implemented and the person presenting the analysis in a publicly-readeable form knows exactly what is going on.JohnH said:But don't you think the presence IHV specific paths leads to confusion in BM's ? As you say, maybe if the results are generated in an un-reportable form, no idea how you'd do that, you know how things innevitably get massaged!
Reverend said:Huh? I never said that I saw "cheats" as "optimizations" (or vice versa). I said that I saw the potentially hazardous (business-wise) legal implications if FM used the word "cheat" (officially) in their audit report and I suggested that it may be better to leave out the word "cheat" in all instances actually used in the official audit report, and leave it to the public/websites to determine if such were "cheats". I suggested that the audit report should stick to reporting the facts ("NVIDIA drivers are inserting clip planes") instead of using the word "cheat" ("NVIDIA drivers are cheating by inserting clip planes").
You misunderstood me. I called what NVIDIA drivers are doing as cheats, like so :
Rev via email said:Personally, if FM wants to call this a "cheat" and mention it as many times as they have in this draft, they are entitled to it -- this is clearly a matter of declaring their position and views on this issue (and very clearly FM views this as "cheating", regardless of any other alternative word to describe it) and as a party who is no more than a beta-member, B3D really shouldn't be trying to influence FM's view of this by word substitutions.
However, my position is the same as FMs -- they're cheating, there are no two ways about it.
These kind of folks exists everywhere. Even folks that sit on the BOD of any one company.
just me said:It's called 'divide & conquer' & the best way to do that is from w/in 'the fold'. NV seems to know that lesson well. "Keep your friends close & your enemies closer".
FM is a business intent on making $$$ so the 'top dogs' can buy new cars, homes, saunas, etc. Keep that in mind & all will become self-evident, IMO.
You're being used for your 'services' B3D, & when those become un-needed (or unwanted) you'll be relegated to a 'silent' BETA partner, IMO. I think you're seeing that already. You & ET were brought in as 'the muscle', & now that that there is a 'truce' ... The fact that the word 'cheat' was used should have opened your eyes on that > you weren't asked into the BETA program for your expertise on legal wording issues, but your expertise on discovering 'cheats'. Since there are no more cheats ...
My worthless .02,
Who are the biggest clients ? Ati and Nv cards makers? 8)WaltC said:Which won't happen if their customers lose faith in the credibility of their products...right? This is what FM should be pondering.
Of course given a uniform level of intelligence and integrety among reviewers this works fine, otherwise anything can be quoted out of context.Reverend said:There can be no confusion if what I suggested is implemented and the person presenting the analysis in a publicly-readeable form knows exactly what is going on.JohnH said:But don't you think the presence IHV specific paths leads to confusion in BM's ? As you say, maybe if the results are generated in an un-reportable form, no idea how you'd do that, you know how things innevitably get massaged!
Well I'd certainly question anything that is at odds with my expectations, other than that see above comment.Will you doubt any reviewer that benches DOOM3 and presents his results in some media form? How do you know he didn't make a mistake and presented charts that really are ARB paths instead of ATI or NV paths (or vice versa)?
Even JC has stated that he'd prefer to use a single path for all HW. You'd have to ask him, but I guess he was only forced down the the multiple paths route due to the lack of a ratified standard at the time he was doing most of the dev work. Most ISV's you ask will say they'd prefer a single path.The fact is that Carmack et al is doing it because the options are there. Benchmarking DOOM3 should be no different than benchmarking something like 3DMark03... because "benchmarks" of any kind, no matter what they were originally perceived as (a game or an actual benchmark) are used for one reason -- to determing what card runs something (game, benchmark, whathaveyous) best given the choices available and these "benchmarks" (game or synthetic benchmark) presented in the media and are hence almost universally accepted as a basis for purchasing decisions.
Its very easy determine how individual parts of an API will perform on your HW, however interactions resulting from all the various ways an ISV may combine those feature often uncover inefficiencies in the way the HW is being driven (by the driver). Basically the more (well written) benchmarks are available to us the better.For someone working for a IHV, you don't need something like 3DMark03 to tell you if your particular piece of hardware is performing well in a "standard API test"... you can make your own benchmarks I'm sure.
Agree.I don't disagree that a standard exists and that it should be followed. As long as someone knows that something is performing with results XYZ running the standard way of doing things, there should be no confusion if other options are available and exercised. It is the application's duty to inform, and inform in a very distinct way, why there are such options and which option is the one that matters for the very purpose of that application's existence.
I don't disagree that you can get surprising performance differences on different HW from a valid peice of code. However, often the reasons why something runs badly on acrhitecture A vs B is that the code is actually doing something stupid and fixing it for B will make A run faster as well. A good example of this is locking the back buffer is very bad for a TBR but, although not good, isn't so much of a problem on an IMR, but remove the lock and both go faster. The fact is most sensible optimisation work across all architectures.RussSchultz said:John, you're completely missing my point.
Code that is completely valid and to the spec in DirectX, PS2.0, or whatever can perform quite differently on two different architectures.
To repeat: I'm not talking about vendor specific instructions, or anything non-standard or that even approaches going outside the specification.
In that case, what is the "vendor neutral" path to use?
Evildeus said:Who are the biggest clients ? Ati and Nv cards makers? 8)WaltC said:Which won't happen if their customers lose faith in the credibility of their products...right? This is what FM should be pondering.