I'm saying Microsoft tells every developer to make rendering decisions based on the CAPS* bits, not the vendor string. It is bad coding otherwise. It could be the most elegant code, but if it doesn't follow protocol it would be considered bad.
* CAPS capabilities of the card
and some below.
The source was never sent to ATI only builds were.
WTF? This is absurd. I never even hinted this.
Hell yeah I could fix it, comment out one line that does the vendor ID check, but this isn't the issue and I don't have and wouldn't be given access to such codes. Not without a bunch of paper, both monetary and legal.
I would add that any fix should be balanced with the appropriate checks and queries. Nothing is as trivial as it seems. It should never have gotten this far to begin with. Either you understand the controversy or not.
I don't think they show that.
This is almost offensive. Analyzing something, giving perspective on things, correcting poor assumptions, sharing my knowledge and experience is very different than looking over thousands of lines of code.
I don't think it would be fair to compare knowledge on rendering systems with you, BenSkywalker sure, but so much of what you are saying is just plain absurd and over simplified.
Did I ever offer a solution or claim to have one? You seem to really have a problem with my analysis of this issue. I hope you would review what I have said and check it against what you are asking.
As much as you seem to want to make this AMDs issue, it really falls squarely on nVidia and Eidos. The only question I have ever asked is: Why did nVidia and or Eidos make rendering decisions based on the vendor sting?
This is so reductio ad absurdum and a strawman. I neither said or inferred anything above, especially anything to do with payments. Please avoid any future generalizations based on my statements.
First of all, I am sorry if I appear to be offensive to you. It isn't my intention, but my words don't lead to the attitude in my mind.
I may have mis-understood the following code:
Whatever they paid they got bad DirectX code, as it did not do or selectively ignored the required checks to see if the hardware supported the rendering sequence.
Now who pays who to do what again? If you mean Nv paid someone to write bad code, the my reply is not absurd. Otherwise, it is.
Now MS suggested that code should NOT be done based on CAPS bits, else they won't have them removed in Dx10 and beyond. The so called CAPS bits was so confusing that no one really knows if it works or not on what card without detail datacharts, assuming that vendor's drivers are bug free. Card A and B may have the same function, yet completely different CAPS bits, let along different vendors. To utilize CAPS bits, the engine must determine what the hardware is before hand or it will lead to crashes. Dx10 normalizes functions calls behind CAPS bits and removed CAPS bits completely, so programmers don't need to worry about vendors and card versions as vendors will support Dx10 instead of the other way around, which in theory makes coding easier for programmers. All this is irrelevant to this topics.
Keep in mind that MS don't own all programmers and they really can't tell them what to do. Programmers however, do have the rights to decide how to use code in DirectX. The code must follow the standard to run, but as long as it runs, the programmer will take the responsibilities and have control over what the code does and behaves.
Yes, the exact CAPS bits required to enable AA on Dx9 is identical for both vendors but it isn't blocked. What is being blocked is the code which contains these calls which was developed by Nvidia. The solo question is, why don't ATI create a code that also consists these calls which enables AA? As of now, it is still missing from ATI.
Must we argue whether the original code was following standard given that we don't have access to it? Must we reverse engineer the entire game in this thread? You continuously challenge others how it was done and how it should be done. What do we know about the source code and what can we do about it? I would be able to answer you if I have the source code, and information on this matter from Rocksteady/Eidos, but I don't. All we know is the original code don't support AA, Nvidia's code made it happened, yet ATI did not do anything.
Once again, removing the vendor check is easy in terms of programming, but all other legal stuffs are not. Solving the AA problem may not be difficult, but it must be more difficult then just use Nvidia's. We don't need to discuss or code out what they are, as it won't fix anything.
From: Lee Singleton
Sent: Tuesday, September 29, 2009 5:22 PM
To: Huddy, Richard
Subject: RE: Multisampling Anti-Aliasing in Batman: Arkham Asylum
Hi Richard,
We have worked closely with our local legal team today and we have been advised that we should not reuse or change the code written by nVidia. If ATI have robust sample code we can use it will accelerate any fix, if not Rocksteady will need to start from scratch.
Best,
Lee
From: Huddy, Richard
Sent: 29 September 2009 17:09
To: Lee Singleton
Subject: RE: Multisampling Anti-Aliasing in Batman: Arkham Asylum
Guys,
I believe this technique is very closely related to a technique which we've seen NVIDIA recommend before now - so actually it may well fit very well with the code that they've given you...
Richard "7 of 5" Huddy
Worldwide Developer Relations Manager, AMD's GPU Division
Source
Huddy, Richard didn't say they can't do it. They said Nvidia's code may run well on their Hardwares and might as well use it, while Eidos clearly stated that they can't change or reuse Nvidia's code. Yes, the techique is the same(Similar in their terms), but not the actual coding.
Yes, it is clear that Rocksteady could have fixed it, they just need to do it at their own expense, which they haven't. But ATI also didn't spend anything on this matter. The only one will did spent resources on this matter is Nvidia.
These are dated, which is more than a month ago. No words from anywhere indicating that ATI is working on a solution. They could have given Nvidia's code and remove the vendor check and send it back to Eidos and take any legal consequences by doing so, which they didn't. They want Eidos to do it, which Eidos didn't. Rocksteady can also retrofit Nvidia's code and without the vendor check or simply recode everything without the need of Nvidia's code, which Rocksteady didn't. Nvidia can have the vendor check removed, which Nvidia didn't.
Rocksteady was willing to work with ATI, and neither Eidos or Nvidia is stopping it from happening. ATI was the one who refuse to work it out.
And your conclusion is what Nvidia did is bad?