It's not really reverse engineering. We have the hardware specs. You read them and think "the hw works like this." You try it, doesn't work. You read some code look at some command dumps, then you say "Oh! I see, it actually works like that!" and then it works. It's not that the documentation is wrong generally, it more that there are little quirks to understand and often times the descriptions on the documentation are easily mis-interpreted.
Originally Posted by rbmorse
I'd like to thank you, guys, for the good work you've done over R500 and below. I was impressed, after installing fresh Kubuntu 8.10, and seeing Desktop Effects ON at the very first run. I still can't dare to install fglrx 8.11 (though, the responses are good), cause I really haven't got any real need to replace radeon, by this moment. ;-)
May I make a few suggestions for future products?
Originally Posted by bridgman
Make the cards boot in a DRM-less mode. That means that in a regular Linux boot, you can poke around at the registers but none of the DRM-related registers will actually do anything. Or decoy results if you think that's better. To activate the DRM-functions, use some binary magic in the closed source drivers. That should put a major reverse engineering effort that no open source hacker has interest in doing before you can even begin to poke at the interesting bits.
In addition, make a registry scrambler so that the closed-source DRM-enabled mode all use different addresses than the open mode. I imagine this can be implemented at essentially no cost or performance in hardware. Then you'll simply use a list of defines like:
On top of that, you could maybe try having a shared secret key between the DRM mode and your driver to encrypt (or at least obscure, if it's too much of a hit) the communication between the closed source driver and the hardware. That's another bit they'd have to figure out that again wouldn't impact open source functionality at all.
I'm not really sure how strong this protection is if you can run the exact same code on both platforms and compare calls, but it'd at least be a good attempt at security by obscurity (that's what DRM is anyway) that wouldn't make the documentation directly applicable to the closed source version at least. And that's the one they'd have to work with to try touching the DRM.
Understood... the issue is that we are one year into the project but the GPU design pipeline is more like 3-4 years long. Business realities make it unlikely that we will be able to redo anything in the pipe which has already been designed. The future will always be better, but the challenge is getting support into users hands today ;(
I know those weren't suggestions that would be in silicon next month, but I'm concerned about the long term too. With regards to DRM the future is always worse, not better and as super-broadband is more widely deployed they'll probably be even more paranoid. Sooner rather than later they'll roll out HDCP2, next-gen Protected Audio/Video Path, Trusted Execution and Trusted Computing with signing for here to hell and back with even nastier licensing agreements than now.
Originally Posted by bridgman
At that point, it would be really good if the lawyers could all easily agree that well our open-source support is no problem at all and has very little do to with the hoops they have to jump through in order to be DRM compliant. So if changes need to get into the specs now in order to reach production in 2011-2012, then try being so preemptive as possible rather than dropping support again for 3-4 years when you end up needing them.
I certainly hope we'll have initial support much sooner than that, but you probably know better than anyone the difficulties involved. Don't take this the wrong way, but I'm not convinced AMD will always stay as committed to open source as they are today. Anything that will cut down on the legal review time and associated cost in the future will help ensure that we'll continue to have open drivers. We completely agree that getting the support out there today is important, I just hope you get some time between the paces to think of the long term too.
The interesting thing here is that the backlash would probably do more damage to MS than AMD...
Originally Posted by Gimzo
Though both companies would feel some serious pain, and Apple would clean up the market.
"What do you mean my £500 graphics card is a doorstop because some twerp broke the HDTV encryption? I'm talking to my lawyer!"
I doubt it. MS doesn't make the rules here either.
Well if it's designed in a way that it can be emulated just in case you know specs, then the whole scheme is flawed (i.e. security by obscurity way of doing content protection). Even if this is not the case, MS still probably persuaded Nvidia and ATI to sign a paper to keep their designs secret (which was not hard to achieve because at that time both Nvidia and ATI kept everything secret). Also it's complex hardware so there is a good chance someone will find a security hole if he has specifications to tinker around. I' sure that AMD will not dare to violate the deal.
Originally Posted by RobbieAB
Also I speculate that this is not only about PVP, there could be other (patented/licensed) IP involved, so companies which sold licenses for it don't want it to become part of FOSS implementations (e.g. DXTC stuff).
So, it's a risky situation for AMD (and I suppose that Nvidia wouldn't be in better position), but it seems enough information needed for 3D driver will be aproved while not causing legal harm and increasing risk of hacking cards (although someone might as well use existing radeon RE tools to find out missing parts).
Last edited by smorovic; 11-19-2008 at 07:01 PM.
Yeah, I think we can make this succeed -- it's just a lot of work cutting carefully around the information we need for a general purpose driver and staying safely away from the dangerous stuff.
The open source graphics project is based on the premise that if decent open source drivers are available (2d, 3d, video render accel) then developers are not likely to invest a lot of time and effort reverse-engineering and publishing the remaining IP. If things don't work out that way, ie if there is significant reverse engineering done in the areas where we do not publish specs, then we would probably have to either stop giving out specs for future GPUs or cut the degree of support we provide down significantly.
I don't think we will have that problem, however -- there are enough *other* big challenges in the X world than just reverse-engineering our secret video bits
Last edited by bridgman; 11-19-2008 at 07:26 PM.