Announcement

Collapse
No announcement yet.

Why is there a closed and open source driver ?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Why is there a closed and open source driver ?

    Hello !

    Alright so I'm writing this topic because there is a question that I am unable to answer.

    Why does amd make efforts to develop an open-source driver - pay developpers, release documentation - while they are doing the same for their closed-source driver ?

    A more general question : why don't graphics vendors publish their binary drivers source ?

    What's the interest in spending money to re-develop a driver in open-source, since they have a closed-source one working pretty well ? (note that the debate is not about how the binary drivers are performing/working). If they wanna go open source, then simply release their binary drivers...

    It's like if they were doing "here, take some documentation, and we're hiring developpers too. To do what ? Oh, reinvente our driver, but make it open source".

    If someone could enlighten me, because I really don't get this whole situation..

  • #2
    The drivers have different strengths and weaknesses and are tailored to different audiences. No single driver could satisfy all customers, hence there are two.

    The closed driver shares the 3D core with their windows drivers. Since a lot of work goes into the optimization of their windows drivers, sharing of the code leads to an equally fast driver on linux.

    The open drivers are open source, thus they fit in well with the linux ecosystem, they can be shipped by distributions so your card will work out of the box and they're probably the only sensible driver to use on small embedded devices (like fusion netbooks, tablets or smartphones). Some OSS-only features like KMS (or KMS-based multiseat) require OSS drivers, too.


    The big question: why can't they open source the binary drivers?
    • That code is larger than the whole linux kernel (!). Nobody would want to maintain that monstrum, unless AMD pays for it. Merging to upstream linux just wouldn't happen. The new OSS drivers are simpler. They lack the performance, but the code is cleaner and maintainable.
    • They can't release parts of the binary driver that they licensed from someone else. The driver evolved over the last decade, and by now it's almost impossible to track down each piece of code's license and get it relicensed for open sourcing.
    • They can't release parts that are related to DRM. If their windows DRM gets broken due to open sourcing the driver, they're in trouble. That sucks, but ATI doesn't make those rules.
    • They don't want to release parts that give them an edge over their competition. Bridgman mentioned their VLIW-Shader compiler, which is heavily optimized. If a competitor uses that compiler for their own cards, ATI has essentially sponsored their competitor's driver development.

    There's plenty of other reasons. The best way to keep informed is to listen closely whenever bridgman posts something.

    Comment


    • #3
      Originally posted by Qaridarium
      i still do not believe that. just because if you pull out the old not supportet parts r300 for example and deleting code duplicatings and deleting the code refractions because of appbugfixes on driver side and ugly stuff like that.

      really the catalyst is only bigger because its a cloused source app.

      with the same feature set in the linux dev style the catalyst lost over 70% lines of codes. be sure!
      I really believe Q here. Really, I think there is probably a lot of cruft. The problem is with a Windows/Mac OS/Linux driver, regardless of how they are basing it of common code, it is going to be bloated. Stuff in the kernel (the Radeon DRM) was meant specifically for Linux. That is why (in my opinion) it is taking so long to port to BSD. Ultimately, if the Linux driver had just as much devs as the FGLRX driver, it would probably be far faster and smaller.

      Comment


      • #4
        Originally posted by rohcQaH View Post
        The drivers have different strengths and weaknesses and are tailored to different audiences. No single driver could satisfy all customers, hence there are two.
        A single open source driver with feature-parity and equal performance to the closed source drivers would certainly satisfy all customers.

        [*] That code is larger than the whole linux kernel (!). Nobody would want to maintain that monstrum, unless AMD pays for it. Merging to upstream linux just wouldn't happen. The new OSS drivers are simpler. They lack the performance, but the code is cleaner and maintainable.
        The OSS drivers are smaller/cleaner for now. If they continue to improve, they will become less small. They can definitely continue to stay clean so long as effort is put forth to do so. Efficient code does not need to be messy code. Even "hacky micro-optimizations" can continue to be cleanly written hacky micro-optimizations.

        Note that Open Source drivers would help keep the drivers slimmed down in terms of needed optimizations. Right now, the proprietary drivers have a shitload of code dedicated to optimizing certain applications' bad API usage patterns. These applications don't do things the "right way" because the only way to discover the right way to do things is by trial and error.

        I believe that if we had high-quality OSS drivers that more applications (at least, the ones written by skilled developers) would need less driver hacks to be performant; we'd see a lot more open discussion of and documentation of the most efficient ways to access the functionality of the driver and hardware.

        We can already see a bit of that now with the discussions on the Gallium/Mesa drivers' poor performance on certain applications leading to bugs being filed against the applications rather than resulting in crazy work-arounds added to the drivers.

        [*] They can't release parts that are related to DRM. If their windows DRM gets broken due to open sourcing the driver, they're in trouble. That sucks, but ATI doesn't make those rules.
        They could design more resilient hardware. The driver is just the software glue between applications and the hardware. Nothing sensitive to the security of the hardware should be controlled by the software driver. If it's acting as anything more than a dumb transport for the encrypted video streams, it's doing it wrong.

        All software is attackable. If someone wants to break a software protection in the AMD drivers' DRM right now, it's mostly just a matter of running Windows in a VM that intercepts and forwards the drivers' communication with the hardware. Whatever secrets lie in that interface would be easy to find, closed-source or not.

        I actually kinda wish someone would just go ahead and do that, break those interfaces the same way most of the other major DRM interfaces have been broken, and just blast that DRM-integrity argument out of the water.

        [*] They don't want to release parts that give them an edge over their competition. Bridgman mentioned their VLIW-Shader compiler, which is heavily optimized. If a competitor uses that compiler for their own cards, ATI has essentially sponsored their competitor's driver development.
        The anti-competitive reason is certainly a valid one from their executive's standpoints but is probably the single most unfortunate from their customers' standpoints.

        Comment


        • #5
          Originally posted by elanthis View Post
          I actually kinda wish someone would just go ahead and do that, break those interfaces the same way most of the other major DRM interfaces have been broken, and just blast that DRM-integrity argument out of the water.
          I doubt that it would create the reaction you're hoping for. Instead, it would probably be spun as "those evil hackers got us last time, but now we're wiser and this time we'll get it right and make it unhackable". This is already an old game for companies that set out to use a "walled garden" model (e.g. Apple, game console manufacturers).

          Comment


          • #6
            Originally posted by elanthis View Post
            A single open source driver with feature-parity and equal performance to the closed source drivers would certainly satisfy all customers.
            Originally posted by elanthis View Post
            They could design more resilient hardware.
            Originally posted by elanthis View Post
            I actually kinda wish someone would just go ahead and do that, break those interfaces the same way most of the other major DRM interfaces have been broken,
            Originally posted by elanthis View Post
            The anti-competitive reason [..] is probably the single most unfortunate from their customers' standpoints.
            You seem to like solving things in a way that costs AMD lots of money.
            The difficult part about project management is not to make a wish list. It's to take the resources you have and use them in the most useful way. AMD is giving the linux team more resources than you'd expect from their market share and (IMHO) the linux team is doing a good job prioritizing those resources.

            About the third quote: if AMDs revenue goes south, the first projects to take the axe are likely the kind of projects that aren't mission critical, aren't important for >95% of their customers, and don't provide any measurable (!) income for the company. I really wouldn't hope for something like that to happen.

            Comment


            • #7
              Originally posted by elanthis View Post
              A single open source driver with feature-parity and equal performance to the closed source drivers would certainly satisfy all customers.
              So would a universal OS running all software known to man that didn't require any drivers and give instant results but that too has next to no chance of ever being the case.

              Comment


              • #8
                Originally posted by elanthis View Post
                A single open source driver with feature-parity and equal performance to the closed source drivers would certainly satisfy all customers.
                Yep, it would. It would also cost more each year than our total Linux graphics revenues. I would have a tough time presenting a "we lose massive amounts of money but make people happy" plan to our executives.

                It would be cheaper to give every Linux customer a pony
                Test signature

                Comment


                • #9
                  You heard it here first, Bridgeman is giving everybody a pony! Yay ponies!

                  Comment


                  • #10
                    Trying to grab as much consumer as possible?

                    Comment

                    Working...
                    X