Slashdot Mirror


Could Graphics Drivers be Included on the Card?

starseeker asks: "With all of the difficulties (both technical and legal) caused by binary graphics card drivers (e.g. the nVidia drivers) the question naturally arises - why is it necessary to have all of this logic at the 'kernel' level in the first place? Why couldn't the necessary logic be abstracted on-board the nVidia/ATI/etc card and just have the OS use one generic driver to access the functionality in all of them? Use OpenGL or similar standards on the software side, and have the card handle things on-board from that point on down? That way, hardware manufacturers wouldn't have to listen to all the flack about binary drivers, and Linux users don't have to suffer with second-rate graphics and/or deal with binary drivers in an open (and dynamic) environment. Are there technical reasons this isn't practical? Or is it simply that it's easier/cheaper to do that type of work in the OS?" There are several issues that currently make such a thing impractical, but the large hurdle at this point is that there doesn't seem to be any interest (neither commercially or technically) to make such a leap.

7 of 142 comments (clear)

  1. Make it flashable? by Asmor · · Score: 1, Interesting

    I think it's a good idea. All of the problems that immediately jump out at me-- things getting outdated and such-- would seem to be dealt with very easily by making the internal software updatable, some simple solid-state memory.

    As a bonus, there wouldn't be any worries about ever updating drivers more than once. Reinstalling your OS? You already have the latest drivers!

    Could make rolling back a bitch, though, but that should be handleable as well. Heck, stick a jumper on there that clears the memory and resets to factory defaults.

  2. Patch vs Flash by lexarius · · Score: 3, Interesting

    Driver patches happen. If the driver is in hardware, you'll have to flash it, which has somewhat more severe consequences in the event of an error.

  3. NVidia is partway there by Dasher42 · · Score: 2, Interesting

    I think NVidia is doing something right in this department. The same video driver works across the majority of their cards, from the old TNT2 to the latest GeForce. This implies that a good level of abstraction is possible with video cards, and if this is the case with video cards, one wonders how much can be done with other hardware.

  4. I've got a different question: by Ant+P. · · Score: 3, Interesting

    Why do GPUs need huge drivers when CPUs don't?

    1. Re:I've got a different question: by Jeff+DeMaagd · · Score: 2, Interesting

      That's a pretty good point. All compiled software is given at least some basic information about the target CPU and tunes for that CPU. Also, because AMD and Intel start from the same basic instruction sets, the compiled software will generally work on both.

      ATI and nVidia don't start with the same instruction sets so they need their own software to convert the high level graphics calls to their own chips.

  5. Handspring already does this by Anonymous Coward · · Score: 1, Interesting

    I just got a GPS for my Handspring Visor, and it installed the software and libraries into the Visor from Rom somewhere. No CDs, floppies or anything.

  6. Re:It seems to me that all the hardware by squiggleslash · · Score: 2, Interesting

    That's what the Amiga did. Autoconfig included ROMs whose libraries and devices would be added to the system upon boot. Come to think of it, my old Sinclair QL also supported ROM OS extensions on each expansion card. It was pretty normal in the 1980s for non-PC computers to work this way.

    Much as it helped give you an out-of-the-box "it just works" experience, it was flawed for a number of reasons. First, these things are, by necessity, operating system specific, unless you really want to dictate the architecture of every operating system. AmigaOS users found it useful, but those running MINIX or even AmigaUNIX were out of luck. You can probably find a way to build something akin to NDIS style wrappers, but that does mean either significant architectural or performance compromises need to be made in terms of how your other OSes work.

    Note that this even applies to "cross platform" solutions like OpenFirmware. OF uses FORTH-based bytecode device drivers, and yes, display cards are part of that.

    The other major problem is that the device drivers tend to be whatever was current went you put the device in a box and shipped it. As hardware manufacturers seem to be relatively incompetent when it comes to creating device drivers, it's hard to see how that's a bonus. The author is talking about ATI sticking OpenGL on their cards. Has you use4 fglrx? The most recent version is the first moderately reliable implementation I've seen (that is, it's been running for a few days now on my laptop without any kernel warnings about NMIs), and the previous version, apparently, was the first to support my graphics card (an X1300), six months after the X1300's launch.

    ATI isn't the only vendor that appears to be utterly clueless when creating device drivers. Microsoft actually gave up and generally ships its own in-house drivers for everything it knows about out of the box. Most GNU/Linux users will tell you that their systems are generally stable unless they are obliged to include some binary blob based driver, or just an "independent" project maintained and written by a hardware vendor due to some licensing issue.

    The bottom line is that expansion-card based device drivers just aren't dynamic enough.

    --
    You are not alone. This is not normal. None of this is normal.