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.

142 comments

  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.

    1. Re:Make it flashable? by Ruie · · Score: 5, Informative
      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.

      No, it is a terrible idea. The right way is to release the specs to the damn hardware. CPU manufacturers do it, why not video cards ?

      We already have driver built in the video card. It is called VIDEO BIOS. The latest VESA specification allows for fancy things like requesting memory map of the framebuffer so one can have direct video access. It is easy to envision making a specs for 3d acceleration as well. It could even be in pseudocode - one could compile the driver to whatever hardware is using it.

      So why this does not work ? Because, aside from graphics companies making shitty BIOS to begin with, companies like Dell intentionally cut down BIOS to safe a couple of dollars on flash RAM. Ask yourself - when was the last time you saw a widescreen laptop which video BIOS knew how to setup the widescreen mode ? And this is one of the most basic things.

      Good and thorough description of the hardware is a requirement for doing interesting things with it.

    2. Re:Make it flashable? by Short+Circuit · · Score: 1

      You think crummy modes are a problem? How about a video BIOS that hangs when you scan for available video modes? Oh, and the ACPI portion of the BIOS hangs when you ask about the PCI bus.

      Enter the Presario 2100 laptop. Don't even get me started on the non-BIOS failings of this crummy little thing.

      It's sad when quality hardware commands a premium (Apple, normally), and the only check to a quantity-over-quality policy is having to honor service contracts.

    3. Re:Make it flashable? by matt4077 · · Score: 1
      Ask yourself - when was the last time you saw a widescreen laptop which video BIOS knew how to setup the widescreen mode ?

      Two months ago, when I last rebooted my Powerbook :-)

    4. Re:Make it flashable? by ebonkyre · · Score: 2, Funny
      Heck, stick a jumper on there that clears the memory and resets to factory defaults.
      Are you kidding? Those jumpers cost two cents each...

      By the time it makes it past the lawyers (are jumpers patented?), engineering (DIP switches are cooler, man), QA (Oh, you wanted them soldered on, too?), and marketing (Exclusive New Sleeve-and-Pin Programming Control Interface!) - the card will cost $100 more.

      --
      "Time is an abstract concept devised by carbon-based lifeforms to monitor their ongoing decay." - Thundercleese
  2. It seems to me that all the hardware by iminplaya · · Score: 3, Funny

    should the drivers built in. It would definitely shorten boot up time. The present method is such a kludge. I don't understand why it happened that way in the first place. Now if I can only get a car that includes the driver...

    --
    What?
    1. Re:It seems to me that all the hardware by Anonymous Coward · · Score: 0

      It's not like this hasn't been done before. Anyone remember the Commodore computers, all the extra hardware had the drivers built in.

    2. Re:It seems to me that all the hardware by mikesd81 · · Score: 1

      A great idea it is, but how many OS's are out there that it would need to be a universal driver, right? Or could a driver for MS work for linux and DOS and what not?

      --
      That which does not kill me only postpones the inevitable.
    3. Re:It seems to me that all the hardware by eosp · · Score: 1

      It'd work under the API level, directly at the hardware level. Other than that, the main difference is the executable format--again, since this is under the OS, not a problem.

    4. 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.
    5. Re:It seems to me that all the hardware by StikyPad · · Score: 1

      If I'm not mistaken, Commodore's patents are one of the exact reasons why it couldn't be done in the PC industry. The patents have expired, but now we're all used to the kludge method, so that seems to be what we're stuck with.

    6. Re:It seems to me that all the hardware by jibjibjib · · Score: 1

      In Soviet Russia, car drives YOU!

  3. Different hardware has different capiblities by ampmouse · · Score: 1

    It would be very hard to add new hardware features if every videocard has the same driver. It could work, but only if video card tech stoped changing so much... And I don't think gamers would be too happy with that!

    1. Re:Different hardware has different capiblities by iminplaya · · Score: 1

      Think EPROMs, and break that old UV light. Oh, those were the days.

      --
      What?
    2. Re:Different hardware has different capiblities by Score+Whore · · Score: 1

      Think flash and a usb controller on the card.

    3. Re:Different hardware has different capiblities by mabhatter654 · · Score: 1

      please, so dramatic, that's what I2C is for! and every PCI spec card has a line to it for just this purpose. There's video bios hacks out there right now, but it's off the radar because card bioses have gotten better, and cards are sticking to vendor spec more, so we don't need to hack them as much.

    4. Re:Different hardware has different capiblities by Anonymous Coward · · Score: 0

      Think moron and you.

  4. MS won't play ball... by CDPatten · · Score: 2, Insightful

    I think for this to work (good idea) it would require a comapny like MS to "play ball", and they won't. It is to their benefit if the HARDWARE can't just work out of the box on ANY OS. Imagine if any card could just work on linux and OSX? Then this spread to TV cards, and all other hardware devices.... Windows has a monoply because most software and hardware is made for WINDOWS, and I don't see MS giving that up so easily...

    1. Re:MS won't play ball... by SanityInAnarchy · · Score: 2, Insightful
      I think for this to work (good idea) it would require a comapny like MS to "play ball"

      Like hell it would.

      USB keychain drives are a pefect example. On Win98, you need driver software, but on any recent Mac, Windows, or Linux, just plug it in and it works. I have, in fact, NEVER had a bit of USB Mass Storage not work out of the box on Linux. True, it's not as standardized as we like -- uhci vs ohci, for instance -- but it's getting better, there's only one ehci.

      No, all this needs is a working implementation with a killer feature, so it becomes so insanely obvious that it's the right way to go that MS either complies on its own, or consumers bitch loudly at them and threaten to Switch, and then MS complies.

      How do you explain the USB situation, otherwise? And keychain drives aren't all -- hard drives also work -- hell, any USB keyboard/mouse should work out of the box as a USB HID -- that means exactly one driver for "usb mice" and one for "usb keyboards".

      I guess what it really needs is to be more clearly defined and to be economical. For instance, having the "universal driver" be something loaded off Flash and into the OS would not work, especially when we're talking about 64-bit.

      So the real reasons are most likely technical, and not "MS is a monopoly."

      --
      Don't thank God, thank a doctor!
    2. Re:MS won't play ball... by sco08y · · Score: 2, Insightful

      >I think for this to work (good idea) it would require a comapny like MS to "play ball"

      Like hell it would.

      USB keychain drives are a pefect example. ...

      How do you explain the USB situation, otherwise?


      Apologies for taking the sports metaphor further, but with USB MS *dropped* the ball. Apple made USB standard on their machines so device manufacturers were making USB devices that worked on Macs. MS had to play catch up. Now that there are tons of devices on the market, it's too late to screw with the standard.

      I still remember ordering a USB hub and getting the Mac user treatment when I was asking about the specs...

    3. Re:MS won't play ball... by mabhatter654 · · Score: 2, Informative

      USB keyboards and mice, and probably other stuff, had a spec since the mid-90s... pre-windows 98. I had motherboards in 97 with USB that never quite worked correctly because MS wanted different drivers than the spec built into the boards. So yes, the MS monopoly clearly held back proper adoption, maybe not thru malice, but thru laziness. I've found MS plays the "techincal difficulty" card quite well over the years. They're a company with more money than god, and some of the best programers in the world.. if they don't do something correctly the first time it's ALWAYS on purpose...neglect or malice... never forget that.

    4. Re:MS won't play ball... by Rolken · · Score: 1

      They're a company with more money than god, and some of the best programers in the world.. if they don't do something correctly the first time it's ALWAYS on purpose...

      How silly. I'm sure it's been five years since a Windows OS release and they're having to scale back features to claw onto the tail end of 06 with Vista on purpose.

      Money and a good workforce only take you so far if you don't have the proper management to direct them to their best ends. You don't have to quasi-deify the company to demonstrate their malintentions.

    5. Re:MS won't play ball... by mabhatter654 · · Score: 1

      but Vista is late "on purpose". The management spent too many development hours on marketing and all the new cool toys to lock you into Microsoft video, and Microsoft 3D and Microsoft DRM, etc that they failed to actually make the PRODUCT. It's like not feeding your hamster 10 days in a row and wondering why it died. Sure each day you didn't mean to starve the poor thing to death, but you didn't focus on the little guy when you should have and now he's dead..that's how it works. MS Vista is the same thing. They ran all over the place saying how great it would be..how much money they'd be making, but never actually made sure the product was really working. I know it's not trivial to make a project like that, but I'm not the one collecting collecting several billion dollars a month in PROFIT selling Windows. In capitalism, lots of money means your good at something... so MS should be a diety, they act like it. Bill and Steve have fired managers for less, maybe it's time to fire MS because they can't perform for their money either.

    6. Re:MS won't play ball... by SanityInAnarchy · · Score: 1

      Well, we'll see, but I still suspect that third-parties will make it work on Windows, even if MS doesn't, and MS holding back adoption will only hurt them, especially when people can tri-boot Windows, Linux, or OSX86, and Doom 4 / Quake 5 / World of Starcraft works flawlessly, with all the shiny new graphical effects, on all but one of those.

      --
      Don't thank God, thank a doctor!
    7. Re:MS won't play ball... by Bing+Tsher+E · · Score: 1

      I bought Microsoft BRAND USB Speakers in about 1998.

      They still work just fine. It was nice back-in-the-day to not have to screw around at all with having a sound card, and it's still quite nice. Every version of Windows has recognized it immediately after an install, and some of the fancier versions of Linux do as well.

      Microsoft was well aware of USB just as soon as Apple was. However, they don't control the hardware scene the way Apple can control it's little corner of the hardware scene.

      To be frank, 'USB' in it's earliest retail setting was just something that 'plumped up' the tiny half aisle of Macintosh-related hardware/software in most computer stores.

    8. Re:MS won't play ball... by sarabob · · Score: 1
      OK. Now try *booting* from a USB stick.

      Do you format it as a floppy? HDD? Zip (boot from physical partition 4)?

      Now let's see which of those your BIOS supports, and if it will only boot from it if all other devices fail (like on this dell 5150 here).

  5. 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.

    1. Re:Patch vs Flash by LiquidCoooled · · Score: 1

      Not really.
      My motherboard has Dual Bios on it, one copy is the original BIOS, the other is the custom one.

      If the custom one breaks or fails, the primary original switches on.

      problem solved.

      According to my search, there are already graphics cards which have this capability as well, here is an article about a geforce 6600 with it.

      --
      liqbase :: faster than paper
    2. Re:Patch vs Flash by lexarius · · Score: 1

      Good to know. It seems like an obvious solution, but I have in the past heard horror stories of flash failure reducing cards to paperweight status. As long as they implement it properly it should be ok.

    3. Re:Patch vs Flash by sjames · · Score: 1

      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.

      It doesn't NEED to be a problem, it's just that stupid designs tend to make it one. In the case of a PC hosted device like a graphics card, there's no good reason the card can't be reflashed after an error by logging in from another machine (Even Winderz can use VNC).

      Even mainboard BIOS flashing problems SHOULDN'T brick the PC. In many cases, it DOES, but that's just because they saved a penny by not connecting an already provided recovery mechanism.

      For example, on more than one chipset there is a provided hardware line to swap the top 64K flash block with the second from the top block. The idea is that that block should be just enough to load a new flash image (from floppy for example). If you mis-flash the top block, just set the recovery jumper and use the backup boot block. Unfortunatly I have never seen a mainboard that connects that pin to anything.

      Next best solution is to never flash the boot block at all. Then if you screw up the main image, just boot the recovery disk from the boot block.

      There are other problems with firmware on the card, but flashing errors shouldn't be one of them.

  6. How would it stay updated? by Sixtyten · · Score: 0

    The graphics drivers could become outdated if they're included on the card. Unless this doesn't concern you, there's probably not much point to it.

    1. Re:How would it stay updated? by Anonymous Coward · · Score: 0

      It would be nice to have minimal drivers that point you to the website for easy updates (a la zeroconfig and mDNS). That way you have something to get started. It is almost the definition of bootstrapping.

    2. Re:How would it stay updated? by mabhatter654 · · Score: 1

      It would be no different than updating drivers now. Heck, the ATI and Nvidia drivers can update code on boards if they need to... it's trivial.

  7. Only... by labratuk · · Score: 1

    Only if you want few bugfix releases and to be tied to a single high level API.

    --
    Malike Bamiyi wanted my assistance.
    1. Re:Only... by not+already+in+use · · Score: 1

      DirectX and openGL aren't high level API's? Either way there is an abstraction layer.

      --
      Similes are like metaphors
    2. Re:Only... by labratuk · · Score: 1

      Yes. Direct3D and OpenGL are high level interfaces. What a driver does is talk to the GPU in terms of registers and addresses and instructions and exposes the functionality through these interfaces. A driver running on the card would thus expose only these high level interfaces to the system. Leaving out the possibility of using anything else.

      While creating a new graphics API seems a very unlikely thing to want to do at the moment, you never know what the future will hold thanks to software patents.

      And in effect, drivers on the card would just be another way for GPU vendors to artificially cripple their cards and lock us out.

      --
      Malike Bamiyi wanted my assistance.
  8. 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.

    1. Re:NVidia is partway there by setagllib · · Score: 1

      The absurd size of these drivers (even compared to other 'abstracted' drivers like in X.Org) means there's a LOT of redundancy or sheer failure of engineering. No, nVidia sucks and should be overthrown by force if necessary. Binary drivers are an inexcusable evil, giving us a quick workaround to a permanent problem, which is not guaranteed to work with the combination of old cards and new kernels/XOrgs, or at all with custom configs or patchings, let alone allow porting to other systems with any practical ease. Oh, and want to check them for stability and security? Nope, pack up and go home, you won't win this one. We need more Theos fighting binary crimes and less moron end users encouraging their vendors to give out these terrible hacks.

      --
      Sam ty sig.
    2. Re:NVidia is partway there by zerocool^ · · Score: 2, Insightful


      It's called an API, and it's not a new concept. There may be a different term when it's hardware-software as opposed to software-middleware, but there it is.

      You build your hardware always such that the newer ones understand the older instructions, just using supersets. Unfortunately it means every X years you have to start from scratch to get rid of the absurd backwards "if such and such then do this kludge".

      But it's a good concept. If published, it allows for open drivers (or whatever), as long as you know "when I put bits in here, this is what it does with them, and the application is going to give me the bits in such and such order", you can figure it out (well, I mean, I can't and YOU may not be able to, but someone can).

      --
      sig?
    3. Re:NVidia is partway there by Jeff+DeMaagd · · Score: 1

      I think what it really is is that the installer holds as many as several dozen drivers, and the installer gives the impression that it's just one set of driver files. Matrox has been doing this too, one installer holds the drivers for a good range of their products, if you look in the directories you'll see files for many different models.

      Intel's driver installers are a lot like that too. It will detect what chips you have in your system and install the ones you need.

      Apple does this with iPod, every updater has the latest version of the firmware for every major model, even if the firmware for most of the models hasn't been updated since the previous updater release.

    4. Re:NVidia is partway there by mabhatter654 · · Score: 1
      not really, Nvidia uses it's own super-secret code to talk to it's own chips in assembler, that's why they won't ever let the drivers be open. They're not sending just polygons to the GPU but the actual programming is being compiled on your CPU first then sent over. It's horribly wasteful of resources, and Nvidia doesn't want you to see how all the fancy features are just "hacks" to old ones, or how it's not processing the instuctions from the game program exactly how they tell the developers it should be.

      not picking on just Nvidia, ATI does it too.

    5. Re:NVidia is partway there by mabhatter654 · · Score: 1

      to clarify my last post... current GPUs are like super fancy WinModems. We all remember when those became popular. That's why professional 3D apps won't/can't touch them with a ten-foot pole.

    6. Re:NVidia is partway there by heson · · Score: 1
      Ofcourse they have to "recompile", unless you want to pay for the full api abstraction implemented in the gfx card, this is how it must be done.

      Think of the driver as a jit compiler, optimizing for your graphics card revision.

    7. Re:NVidia is partway there by be-fan · · Score: 1

      Actually, it's not like that. First, the OpenGL driver has a large hardware-independent portion. Second, if you look at the partial specs that are available for NIVIDA cards, you'll see that the interfaces are quit esimilar between the hardware generations, all the way back to the Riva 128.

      --
      A deep unwavering belief is a sure sign you're missing something...
  9. shouldn't even need a card by r00t · · Score: 2, Insightful

    Run gigabit Ethernet from the computer to the monitor. Have the "monitor" be an X terminal that speaks X11 protocol. There, problem solved, and you can even put the computer in the server room or garage.

    Windows still doesn't speak X11 or even VNC.

    1. Re:shouldn't even need a card by TheSpoom · · Score: 1, Insightful

      Funny that, I've been running TightVNC, both server and client, on my Windows machines for years.

      Could have sworn my bullshit alarm just went off.

      --
      It's better to vote for what you want and not get it than to vote for what you don't want and get it.
      - E. Debs
    2. Re:shouldn't even need a card by mabhatter654 · · Score: 1

      you realize that DVI dual_channel is several GIGABYTES per second (the number 19 seems to pop up from somewhere) throughput, where gigabit ethernet is only one GIGABIT per second (122 megabytes/s) throughput. Video cards do a lot of work to get the graphics on screen... even more for games. In 3D shooters, more bits are being processed on the video card's internal processor and ram and fed straight to the monitor, than any other part of your system.

    3. Re:shouldn't even need a card by Anonymous Coward · · Score: 0

      Why an earth do you post comments about things you don't understand?

    4. Re:shouldn't even need a card by mabhatter654 · · Score: 1

      I understand exactly what I'm saying... DVI is supposed to send uncompressed frames across the wire, that's the point. Mine is pushing a 1280x768 resoluton image by 60 full frames a second. It's rated for better than the Apple Cinema at 2560 x 1600! That's a lot of bits. I understand where the other guy is comming from, thinking in terms of having a server on the computer that generates ouput, kinda like the old mainframe, but that's really expensive use of CPU and you don't gain anything. Even if I had an Xterm like the other poster wanted, it would still have to output those pixles to the screen from a 3D video card somewhere even if that was in the same box as the picture.. like a laptop! Now the video is just sent from the card to the monitor, he's talking about adding a whole new layer of complexity to the problem, but not really addressing the problem at all, because now the monitor has to run something you can modify if your getting at the whole OSS thing.

    5. Re:shouldn't even need a card by drsquare · · Score: 1

      Then you'd need the graphics card in the computer to create the data that goes through the ethernet, so you've solved nothing.

    6. Re:shouldn't even need a card by bucky0 · · Score: 1

      Here's a project that implements what you are talking about:
      http://dmx.sourceforge.net/

      of course, at some point, you'll still have a video card, but..

      --

      -Bucky
  10. VESA F'ING BIOS by tomstdenis · · Score: 3, Insightful

    Welcome to two decades ago.

    Tom

    --
    Someday, I'll have a real sig.
    1. Re:VESA F'ING BIOS by piranha(jpl) · · Score: 1

      See also: OpenFirmware; Sun & Mac video adapters.

  11. Not possible for technical reasons by Anonymous Coward · · Score: 0

    this barely even makes sense. the purpose of the driver is to provide an interface from user-level applications into the hardware. since apps. differ on a binary level between different OS', so must the driver differ between different OS'. nor is the interface at all simple; even if part of the driver were to run on the card, the card would have to have significant logic (e.g. a CPU) to run it.

    1. Re:Not possible for technical reasons by thegrassyknowl · · Score: 1

      even if part of the driver were to run on the card, the card would have to have significant logic (e.g. a CPU) to run it.

      And it doesn't have a massively paralleled programmable pixel engine? What is in every accelerated video card? Some sort of CPU! DUH!

      --
      I drink to make other people interesting!
  12. Nah by Anonymous Coward · · Score: 0

    That would make too much sense.

  13. What's the upside? by Otter · · Score: 1

    The answer here is the same as the answer to most of these "Why don't the video card makers...?" questions: The reality is that the number of Linux users concerned with high-end 3D performance and objecting to binary drivers is simply to small to be worth worrying about. As others have noted, software drivers have enormous advantages -- there's simply no economic reason to forgo them to please a handful of politicized Linux users.

    1. Re:What's the upside? by r_a_trip · · Score: 1

      Your probably telling the horrible truth here. Producing and selling stuff is not about excellence, but doing the minimum necessary to make a buck. Accessible hardware is not a priority as it doesn't make enough money.

      When you extrapolate this mentality to society as a whole, you see that we have stopped being human and devolved into being wallets that can and will be sucked dry.

      --
      # touch universe # chmod +rwx universe # ./universe
  14. Simple: Hardware is expensive by Theovon · · Score: 5, Informative
    Note: I'm a graphics chip designer.

    Basically, you're asking for the software interface of the hardware to be standardized and abstracted. In a nut shell, hardware is expensive and software is cheap. Anything you can do in software with little or no impact on your performance requirements is something you should not do in hardware. ATI and nVidia have radically different approaches to GPU design. With differing internal structures, the interfaces exposed to drivers is also going to be radically different, but there's no reason not to use cheap CPU cycles to create the abstraction rather than expensive logic gates in hardware.

    Hardware is expensive because the cost of a chip goes up roughtly with the fourth power of the logic area.

    IMHO, the best solution to the problem of drivers for Linux is simply to not buy hardware that doesn't have open source drivers. Do you think that makes life difficult? The Open Graphics Project has opinions about that.

  15. Wasn't that the whole point of PCI? by Anonymous Coward · · Score: 1, Funny

    I remember sitting in stupid ass Windows 95 training classes, them going on and on about how the PCI peripherals would be able to ship with their own drivers... oh well.

  16. Another way to open drivers by zymano · · Score: 1

    Is to sue the hardware makers for only releasing drivers for an OS that was an illegal monopoly.

    There has to be a case there.

    1. Re:Another way to open drivers by Infernal+Device · · Score: 1

      There has to be a case there.

      Where? If the card manufacturers were in cahoots with the OS manufacturer to restrict availability of their product line to that OS alone, then you might have a case. But reality doesn't bear that out since most of the cards have been available for multiple OSes for some time (albeit with some restrictions, apparently due to technical constraints vs. cost of development).

      I think you would find it next to impossible to build a legal case for your argument, although that hasn't stopped some companies (SCO, anyone?)

      The fact is that some cards have been available for the major consumer OSes from the major manufacturers for some time now, usually matched to the operating system requirements and hardware limitations. That these same manufacturers choose not to release drivers for Linux is more a reflection on their belief that doing so would not be profitable and that the insistence from the end-users on open-sourcing the drivers would not benefit the manufacturer in any way, shape, or form.

      You want them to release, you have to make it profitable for them.

      --
      "My God...it's full of trolls!"
    2. Re:Another way to open drivers by radish · · Score: 4, Informative
      --

      ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

    3. Re:Another way to open drivers by Bing+Tsher+E · · Score: 1

      Sure. And then I can sue the hardware makers when they don't release a version of their drivers that will run under NetBSD on a StrongARM-based ATC motherboard like the Chalice CATS.

      Oh, and I'll move on, then, to demanding drivers for Windows NT for my PPC system (actually an IBM RS/6000 'bastard-stepchild') that runs NT 4.0 on a PREP motherboard (which has PCI slots).

      Your justification for a lawsuit is 'if it plugs in, we should be able to sue if it doesn't work' correct??

    4. Re:Another way to open drivers by Bing+Tsher+E · · Score: 1

      I only had to go to the first link your provided to see the problem.

      I don't run Linux. Where is the ATI NetBSD page? ...and your point was?

    5. Re:Another way to open drivers by radish · · Score: 1

      Quoting the original poster:

      "Another way to open drivers...Is to sue the hardware makers for only releasing drivers for an OS that was an illegal monopoly."

      Linux in/was never an illegal monopoly, thus the fact that all these manufacturers provide drivers for Linux nicely disproves the assertion that they "only released drivers for an OS that was an illegal monopoly". The fact that you happen to want BSD drivers is neither here nor there.

      --

      ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

    6. Re:Another way to open drivers by phorm · · Score: 1

      IBM Linux Drivers (for a random chipset) [intel.com]

      When did IBM buy Intel?

    7. Re:Another way to open drivers by Taral · · Score: 1

      Where's the source code?

      --
      Taral

      WARN_(accel)("msg null; should hang here to be win compatible\n");
      -- WINE source code

  17. API vs. Firmware by Robbat2 · · Score: 1

    There's a few routes that all fit under your description.

    The first and most obvious one, is an well-standardized API for using the card.
    This isn't new, in fact for 2D stuff, it's ancient news. The standard is VESA VBE (video bios extensions), with it's lesser known cousin VESA VBE-AF (video bios extensions - acceleration functions). The VBE standard itself was legally free. The VBE-AF interface was only available as a commercial specification, with distribution restrictions - but copies of the information do exist.

    While 2D is reasonable simple, doing a similar thing for 3D isn't trivially, because of how different cards are internally.
    The major downside for manufacters is that they need to include silicon that can convert from the standardized form (say OpenGL) to what their hardware actually uses, and this raises production and development costs. If they leave out the standardized API from the silicon, and instead provide software drivers that convert from the standardized form to the internal format. When they find glitches, they can update the software much easier, and the other major advantage is that production costs are reduced (less silicon), providing better profits.

    Next you might suggest a firmware based approach, similar to some of the current generations of wireless hardware. Without their firmware, they are not capable of doing anything. Internally they are generally a CPU (such as ARM or MIPS with some hardware acceleration for wireless stuff). This direct approach would prevent you from being able to see your BIOS or system firmware, as you need a system to load the firmware, and you can't install a machine without seeing what's going on. (Circular loop).

    A hybrid approach might work instead:
    - Existing ATI/Nvidia chips, wired to an embedded processor, with both a default boot ROM which provides a firmware containing basic 2D and character mode only, and you can upload a newer firmware with 3D support to the embedded processor.
    You'd upload the 3D firmware every time you boot the system, just like present wireless gear.

    In cost of parts, doing this would raise production costs $30-$50 per graphics card. Initial development would be a nasty hump as well for the large players Nvidia/ATI - because they presently just add new chips to the existing drivers, but after the initial development, things would be reasonable.

    The hybrid approach has been done by one company before...
    SGI! Their systems booted with basic 2D, and later pushed firmware into the graphics controllers, that allowed you to send a variant of raw OpenGL to the controller (It was a variant in that some of the complex operations had to be broken down into simpler ones).
    If SGI consider selling their OpenGL IP as suggested previously on slashdot, such an approach MAY be feasible for the company that buys it.

    --
    ICQ# : 30269588
    "I used to be an idealist, but I got mugged by reality."
  18. 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 Anonymous Coward · · Score: 0

      Because for CPUs, drivers are called programs.

      Your CPU probably wouldn't do much unless you fed it with some instructions.

    2. Re:I've got a different question: by BobSixtyFour · · Score: 1

      Because, its included on the motherboard chipsets based on the socket design.

    3. Re:I've got a different question: by contrar1an · · Score: 2, Informative

      That's a really good question. I'm not sure I can answer it, but I'll give it a shot.

      The CPU does very primitive things. It adds, subtracts, multiplies, divides, loads memory into registers, and stores registers into memory.

      The program's interface to the GPU is at a relatively high level. First, the program sets the GPU's render states. The program sets things like which textures to use, is alpha blending enabled or disabled, which shaders to use etc.... Then tells the GPU to draw some triangles. The driver gets to decide the best way to deal with these requests.

      For example: the program may tell the GPU to use a certain pixel shader. The driver can use what it knows about the current render states to decide if the shader is performing instructions that don't matter (for example: calculating the alpha value even though alpha blending is disabled). I don't know if drivers _do_ this, but they could. At the least, the shader program is written in the generic D3D, or OpenGL language. The specific GPU installed may support fancy features (like the capability of performing two dot products in a single instruction). The driver can recompile the shaders to more closely match the capabilities of the actual GPU.

      I guess it boils down to the abstraction layer. The CPU instruction set is a very low-level abstraction, the D3D/OpenGL interface is very high level.

    4. Re:I've got a different question: by Duhavid · · Score: 1

      If the CPU basic instruction sets are different, then the "driver" is called
      an "emulator". If they are not, then you have the NULL driver. Identity
      transform.

      --
      emt 377 emt 4
    5. Re:I've got a different question: by caseih · · Score: 1

      You mean drivers like, say the operating system?

    6. Re:I've got a different question: by Surt · · Score: 5, Funny

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

      CPUs have this enormous driver called the operating system.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    7. 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.

    8. Re:I've got a different question: by bky1701 · · Score: 1

      You do have one. It's just built into your OS.

    9. Re:I've got a different question: by Julian+Morrison · · Score: 1

      OpenGL / DirectX is to GPU as Posix is to CPU.

    10. Re:I've got a different question: by Al+Dimond · · Score: 1

      Parent has received many responses about the role of OS and libraries replacing drivers. In a sense the whole architecture of the computer, hardware-wise, that allows instructions to be sequentially read from memory and executed, is part of that "driver" scheme. Computers aren't built to give GPUs this capability.

      A big part of what drivers do is translate from some kind of API into the instructions that are sent to the hardware, and make sure that those instructions are such that the desired result is found efficeintly, so in that sense compilers and assemblers are a big part of the CPU's driver. This part of the CPU's "driver" runs on the CPU, sometimes even at real time (considering JIT compilation, for example).

      For a GPU this driver function is executed on the CPU and not the GPU. Modern GPUs are almost certainly capable of all the calculations and logic necessary to generate their own code, but that doesn't mean that they'd be good at it. GPUs are extremely parallel and very good at certain types of computation but not so good at branching. A graphics driver has to make lots of decisions about how to optimize the code, and a GPU would handle all that conditional stuff as effectively as a CPU.

      Lastly there are questions of convenience. Development tools, compilers and libraries for GPUs aren't as mature as they are for CPUs.

    11. Re:I've got a different question: by oliverthered · · Score: 1

      GCC Java and .NET are all the equivilent of drivers for your CPU.

      --
      thank God the internet isn't a human right.
  19. How about an intermediate layer? by eric76 · · Score: 0

    How about an intermediate layer between the OS and the hardware that would contain all the drivers?

    The operating systems would only have to deal with a standard interface independent of the hardware.

    1. Re:How about an intermediate layer? by imemyself · · Score: 1

      Isn't that sort of what the operating system's kernel is supposed to do?

      --
      Every time you post an article on Slashdot, I kill a server. Think of the servers!
  20. What is your conecpt of "driver" ? by orasio · · Score: 1

    Cards would be DirectX compliant, or OpenGL compliant, then, and anything outside the scope of the standard chosen would not be possible to use.
    Of course, commercially, DirectX makes more sense, although it would be a problem with ID engines, and some of the people who use these cards for actual 3d work.
    CDs are way cheaper than flash memory, also, and they give you an easy way to include the last driver with your card.
    Also, the NVidia utilities have to come somewhere, that's added value that they wouldn't want to lose.
    Then there is the issue that some card have additional functionality, like tv out, and some special features that can be standardized for current cards, but not for whatever they want to do tomorrow.

  21. EFI by Joe+The+Dragon · · Score: 2, Informative
  22. Flash isn't always bad. by adolf · · Score: 1

    Contrary to popular belief, just because a device uses flash memory does not mean that it cannot fail safely.

    Trash an area on flash due to power failure, bad firmware image, or dried dog snot bridging the contacts of the memory chip?

    No problem. The bootloader, in a protected area of flash, sees that the checksum is bad and just Does The Right Thing by loading good data from a (also protected) portion of the flash, and the device boots up to a state which may not be latest-and-greatest, or even fully functional, but is at least adequate to re-flash.

    The only problem with this is that it is somewhat inefficient use of flash memory space, but the stuff is obviously far cheaper than it used to be (I'd wager that it passed "cheap enough" years ago).

    Similar methods are in place in all kinds of consumer goods, including the venerable Linksys WRT54G, and generally work by allowing you to load good firmware using TFTP, even after everything has gone all wrong[2].

    Just because you've had warnings about interrupted PC BIOS flashing and video game saves burned into your head, does not mean that it's all that hard to do safely.

    2: And if you really hose things by killing the bootloader, you get to build a TSOP cable and, with a bit of prayer, write to the flash chip directly using a parallel port. Failing to recover a bricked WRT54G is actually hard to do, no matter how bad it gets fucked up.

  23. Fundamental problem is... by Anonymous Coward · · Score: 0

    You would have to actually get the video card makers to AGREE on a standard, otherwise everyone is going to have their own "Kernel API" and then you're still stuck in a situation where you have to do something different to support every single video card and all you've done is add an unnecessary layer of abstraction to the process.

    If video card makers can't work with the OSS community, what makes you think they're going to be able to cooperate with a standards body any better?

  24. Sure you can do that. by Anonymous Coward · · Score: 0

    You can also have your ears nailed to your loudspeakers, which would be similarly useful.

  25. 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.

    1. Re:Handspring already does this by Bing+Tsher+E · · Score: 1

      When I plugged my first Western-Digital 8-bit hard drive controller card into my PC-XT clone motherboard, it similary installed the software automatically (BIOS extension, maaaan). And that was back in the 80's.

  26. Something related by mnmn · · Score: 1

    I used to wonder if in the PCI, PCIX, USB, Cardbus protocols an allowance is made to download the driver from the 'unknown' device. The machine can always be updated with newer drivers, but the machine should never report 'unknown' much like cisco routers, which have a very basic IOS in its rom before the full ios is loaded. Flash is cheap especially the size that is required for a basic driver.

    Next, I suppose the driver should be either in source format, or an intermediate machine language, or (my favorite) an XSLT type language which is compiled by the kernel. Drivers with hidden sources will be tricky here. This should also allow newer OSes to simply work on all the hardware.

    But like the x86 processor, like windows, like cisco, like oracle, the current system is bad but maintains somebodys monopoly at a high cost to the consumer.

    --
    "Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
  27. Re:Simple: Hardware is expensive by ChaseTec · · Score: 1

    Thanks for the link to the Open Graphics Project, that was new to me. I run a website for ameatur operating system developers and while a 3d version of a VESA BIOS would be nice I can say that most of us would just be happy with open specs. Note to others: People are trying to make all kinds of truly open hardware, on of the biggest sites is http://www.opencores.org/

    --
    My Hello World is 512 bytes. But it's also a valid Fat12 boot sector, Fat12 file reader, and Pmode routine.
  28. Re:Simple: Hardware is expensive by foniksonik · · Score: 1

    How about putting the driver on the board with a ROM chip , use hardware encryption or some other hardware DRM to protect it, which could be flashed to update it, etc. this happens on occasion for hardware devices.... then expose the driver through a standard API that anyone could implement, whether commercial or OSS... don't need to disclose how it works... just how to trigger it.

    --
    A fool throws a stone into a well and a thousand sages can not remove it.
  29. Other way around... by Chris+Snook · · Score: 1

    Actually, I'd like it if hardware was *less* smart. Driver bugs are much easier to diagnose and fix than firmware bugs, and the fixes are easier to apply.

    The real problem with video drivers is software patents. The graphics vendors have to be paranoiacally secretive about how their cards work, because they're all violating thousands of patents that should never have been granted in the first place. If you want to fix this situation, call your congresscritter.

    --
    There's no failure quite as dissatisfying as a complete and total solution to the wrong problem.
    1. Re:Other way around... by mabhatter654 · · Score: 1

      about the patent thing, not really, in fact better on-board api would allow them to maintain the patent secrecy even better. What you want is a card that responds to the API.. similar to how serial modems used to respond to command sets. You don't care what goes on inside, just that the harware accepts a certian set of commands. Part of that is why 3D can be so cheap.. because graphics cards are like winmodems.. all the heavy lifting is done on the host CPU.. the GPU just crunches numbers fed to it really fast, it doesn't know anything about them. Driver concerns go away because you only have to implement the API, and the software/hardware vendors can't hide behind patents because you're "using" the hardware not "hacking" into or "reverse engineering" it. It would also firmly plant the idea that the patents in question go with the physical hardware instead of being under some vague EULA with crazy illegal terms tied to the OS, spyware, etc.

    2. Re:Other way around... by Chris+Snook · · Score: 1

      Serial modems implemented a standard and had to be bit-perfect or fail. Graphics companies have been known to patent their bugs upon discovering that they made things faster at the expense of a little bit of correctness, but things still looked "good enough". In the graphics world, performance trumps correctness, until the next game comes out that uses your slightly-broken feature in a new way and looks really ugly (or freezes your system), and then you need to push out a new driver. You can't do that nearly as easily if it's in firmware.

      By the way, I'm not complaining about how graphics companies write their drivers. I think it's generally the right thing to do, and the poster's suggestion would break that model.

      --
      There's no failure quite as dissatisfying as a complete and total solution to the wrong problem.
    3. Re:Other way around... by mabhatter654 · · Score: 1
      But that is a problem on a couple of levels.

      First, Companies are not spending enought time getting the hardware correct the first time around. I remember older hardware had few driver "issues". When you couldn't "just download" stuff, manufactures had to try a lot harder to make sure when you opened that box it was RIGHT or you were sending the whole thing back for refund. Now new hardware (CPU, motherboard, video, the whole lot) often requires downloading patches before the product is ON retail shelves... that's just really sloppy work.

      Second, from a OSS or any programmer point of view, the idea that drivers should have that much effect on hardware is absolutely awful! That's the whole point of having APIs to follow them. I love 3D games, but almost never get to play them.. too much time keeping up drivers, updating games for the new drivers, etc.. then it's time to share the machine with the kids. Consoles manage to put API into firmware all the time. That a modern $1000 PC is still being beat in games by $300 trash boxes, for usability (not specs but how well and fun it actually PLAYS the games) is deploarable. What ATI and Nvidia are getting to is boarder line consumer fraud, because they're making up the features in drivers instead of committing it to something more "real". Look at the whole Nvidia "Pure Video" buy extra features thing. That stuff was SUPPOSED to be part of the cards we purchased.. like having a channel on the TV then finding out #7 wasn't ready so we'll let you pay for it later. Pure video was supposed to be out 3 years ago with the 6000 series, but it was "on the chip" so they didn't get in trouble for fraud.. now they want money for it. When things are in hardware it makes everybody more honest. I don't know how you'd implement 3D drivers in firmware, that's not my job, there's several multi-Billion dollar companies that should know how to do that! I just know there has to be a better way to enable hardware to be modular and work where I need it to work without the constant misadvertizement, misdirection and poor quality we have now.

  30. Drivers are irritating.. by tempest69 · · Score: 1
    Actually I would love for the hardware to get some standardization back. I want to plug in a modern video card and have windows (or any OS) just use the "basic" functionality of that card. But by "basic" I mean having at least DirectX 5.0 compatability. Right now were dealing with a "standard" which goes back VESA 256 color mode. This is just retarded.

    The logic that is being used is the same logic that spawned the winmodem. So that there is some silly peice of junk software that is coded by chimps that seems to have lockup problems on the OS that your using. In addition it makes the diagnostics of the device a total pain in the rear.

    Leaving functionality up to "driver guys" really makes me cringe, its just really bad form. The hardware should be so simple to interface with that most people could just forgo the driver, leaving the drivers in the hands of the high performance nerds.

    I completely understand that this would result in slightly more expensive graphics cards in the short term. I get that every 5-10 years the "basic" functionality needs to be bumped to something better. I even get that it seems like a pretty good way to have flexibility by not locking your hardware into a mold. There are some real issues that would need to be addressed, but I think the increased cost of hardware is really worth it.

    I dont expect that the video card industry would even bother to move in a direction which may be less profitable, even if it did mean that systems would be more reliable. But I still feel the need to rant about solutions that save a nickle by causing a dollars worth of headache to the customer.

    Storm

  31. TI / Apple had this by Doctor+Memory · · Score: 2, Informative

    ISTR the NuBus had this capability. Cards had the drivers on them, and they identified themselves to the bus, so when scanning the bus for hardware you just got "graphics card in slot N". They all presented the same API, with bus NAKs or soemthing if the software requested a mode the card didn't support.

    This, of course, made changing features a bitch, since you couldn't tell the software that you had eight hardware shaders instead of one, because there wasn't space in the API data structure for that...

    --
    Just junk food for thought...
    1. Re:TI / Apple had this by damoe · · Score: 1

      Actually on the NuBus 68K macs there were two pieces of software, neither of which executed on board the card. There was an on card driver, which was loaded into the system at boot time, and quicktime acceleration patches that resided on disk as an extension. The driver performed such functions as initializing the card, changing resolutions, gamma correction, and providing the address of the framebuffer for drawing directly to graphic memory (which is how quickdraw rendered). The quicktime patches were not required to use the card so you could just plug and play.

      To update the acceleration features you just replaced the extension file. The first thing the drivers I worked on did upon loading from ROM was to check the card's EPROM for a valid driver and if found replaced itself with it.

    2. Re:TI / Apple had this by Bing+Tsher+E · · Score: 1

      That's called a 'BIOS extension' and many ISA cards that plug into the IBM-PC had it going back to the beginning. There was a list of 'starting addresses' that the main BIOS was supposed to scan for a signature byte, and if the signature was there the BIOS would jump to the ROM on the add-in card. The ROM on the addin card thus became an extension to the BIOS on the motherboard.

      All graphics cards use this, and tons of other cards have going back to the advent of the IBM-PC.

  32. Better idea: Generic graphics interface by Foerstner · · Score: 1

    I'd much rather have the card vendors get together and agree on a system of standards that could wrap up X, Quartz, GDI, OpenGL and DirectX into some standardized video description language. Do for video what PostScript did for print.

    This would probably entail a performance penalty at first, but if the engineering resources that are currently being dedicated to creating drivers for each and every little card were re-applied, it could come out ahead in short order.

    The only thing keeping this from happening is getting Microsoft, ATI, nVidia, and the community to agree on such a standard.

    --
    The US free market: two halves of a government-granted duopoly are free to set the market price.
    1. Re:Better idea: Generic graphics interface by kevlarman · · Score: 1

      Think about what you're saying for a minute: you want one API that is equally good for low performance, high level graphics (X,GDI,Quartz), _and_ high performance, low level graphics (OpenGL and DirectX). There are high level libraries like wxWidgets, GTK+, and QT that will work on just about any system, which is sort of what you are talking about. Your average email client or browser doesn't want to know about triangles and framebuffers; it is perfectly happy doing all its graphics processing on the CPU, but a modern game needs to be able to quickly process huge amounts of information to produce a 3D scene. Back to your printing analogy, it would be pretty rediculous if someone suggested the use of postscript in 3D printing.

      --
      A mouse is a device used to point to the xterm you want to type in
    2. Re:Better idea: Generic graphics interface by Foerstner · · Score: 1

      No, what I want is not another API or library, and certainly not another widget kit. We've got plenty of those. What I want is to
      A) move all display-related functions to the GPU (including that eMail client or browser)
      and
      B) Do it in OS-agnostic, hardware-agnostic way.

      My eMail client and browser know next to nothing about the mechanics of talking to a printer compared to, say Adobe Illustrator or QuarkXpress. But the same language serves to send both simply formatted text and arbitrarily formatted graphics to my LaserJet or a $50000 Xerox megaprinter.

      --
      The US free market: two halves of a government-granted duopoly are free to set the market price.
    3. Re:Better idea: Generic graphics interface by Bing+Tsher+E · · Score: 1

      display-related functions to the GPU (including that eMail client or browser)

      Better yet, set up email servers on all the functional modules of your computer. Implement ethernet on everything. Then when you hit a key on the keyboard, the email client on your 'keyboard interface module' would send an email message to it's server, which would forward it to the email server on your CPU module. The CPU module would then send email to it's email server which would forward it to the email server on the 'display interface module.' Instead of needing a big expensive box to house your CPU, you could have a bunch of little boxes all plugged into your ethernet hub.

      If you were in a setting where you didn't want a noisy hard drive or CPU module near you, you could relocate those modules in, say Des Moine, Iowa, and sit comfortably at your desk in Cleveland and utilize them.

      The possibilities for spammers alone make this method shockingly attractive.

      I definitely don't want another 'mere' API or library, either. The world should be my oyster.

  33. IBM did it by soupforare · · Score: 1

    Didn't microchannel do this very thing?

    --
    --- Do you believe in the day?
  34. Keep It Simple, Stupid. by nsmike · · Score: 1

    The motto of anything in life should be Keep It Simple, Stupid.

    1. Hardware-based drivers simply adds another layer of interface, another place for something to go wrong. The software side has to eventually interface with the hardware, and adding another layer of drivers does nothing to facilitate this process.

    2. STOP BEING SO DAMNED PROPRIETARY. Sure, trade secrets and everything. I understand that much. But how much sense would it make to keep HOW to interact with the card secret? It's like saying, "I wrote this great song on the piano, and since you only need 24 keys to play it instead of all 88, I'll only give you the 24 keys." Sure, most of the time, when you're playing the piano, you don't need ALL 88 keys, but it sure is nice to have them if you need them.

    So simple, it's almost stupid.

  35. DX10 Change? by Citius · · Score: 1

    Isn't that what Microsoft's been trying to do with the DX10 spec? Last I checked, things that 'fail DX10' don't get rated for it, so it can essentially start providing a DX10-compliant card that answers the basic questions. I think the biggest issue that MS has is with backwards compatability...People get cranky when they see a shiny new OS and are told that 'Your computer can't handle it'. Citius

    1. Re:DX10 Change? by tempest69 · · Score: 1
      Isn't that what Microsoft's been trying to do with the DX10 spec? Last I checked, things that 'fail DX10' don't get rated for it, so it can essentially start providing a DX10-compliant card that answers the basic questions. I think the biggest issue that MS has is with backwards compatability...People get cranky when they see a shiny new OS and are told that 'Your computer can't handle it'. Citius
      As fas as I can tell (My factbase is weak here) the DirectX10 will still need a driver, a WDDM driver but still a driver. The Nice Thing is that the DX10 cards will all be able to perform a whole suite of functions, but the driver code should let them do it in different ways. The hardware must be able to do certain things to be certified, but I think the drivers can be pretty different from card to card. I have a feeling that without a driver the machine will still boot to 640x480x256.

      I am hoping that the WDDM drivers are better than my current ATI garbage, somehow the letter D just doesnt get filled with the background color consistently (yep in slashdot). The retailer isnt keen on refunds due to driver issues.

      Anyway enough rant.. Citius, I'm sure people will be plenty cranky when their current $500 graphic cards arent DX10 compatable. and theyre stuck in "legacy mode".

      Storm

  36. Two Words: by thegrassyknowl · · Score: 1

    "Commercial Advantage"

    Actually, it's perceived commercial advantage of the horrible American video card makers (ATI and NVidia) that is the problem. They seem to think that by being as different as they can to the competition then hiding behind NDAs and funky specs that they will have some advantage. In reality there's no real advantage if the hardware is performing properly. Problem is the drivers contain hack after kludge to work around quirks in the hardware.

    The big guys don't want you seeing how shitty their hardware really is because they can hide the shittyness in a binary only driver that makes it do the right thing.

    --
    I drink to make other people interesting!
    1. Re:Two Words: by Arker · · Score: 1

      They also don't want us to see the bizaare hacks they use to detect benchmarking in progress and cheat for higher grades ;)

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    2. Re:Two Words: by Anonymous Coward · · Score: 0

      ATI isn't American...at least not yet =) They hail from the Great White North (try saying that when it's 36 C and feels like it's 47C)

  37. Apple hardware does some of this by mabhatter654 · · Score: 1
    Apple hardware does some of this. Add in cards have to provide basic functions to the Apple OS that's one reason Apple's hardware works so well together, the boards have to match what the OS expects to see. That's the real reason Apple add-in cards cost more. They usually have 2x or more bios memory built into the hardware. A while ago there were write ups on the cross platform ATI9600 http://www.anandtech.com/showdoc.aspx?i=2502&p=9 (anandtech) that could handle the 30" displays. All the reviews were commenting on how cool it was to finally have cross platform cards so they commented on how ATI did it. Basically, the only reason more cards aren't like that is that it costs a dollar or two more for the extra ram and coding time, when they can make cards that work just fine in windows only and expect you to download resource hogging drivers later. All OSes would work better if the drivers were on hardware... for a matter of fact, that's actually part of the PCI spec to have object level card bios... for all the platforms EXECPT x86 where they allow and exception for binary only. The specs require a neutral language like Forth or something that's simple for any platform to quickly decode and run.

    The Poster is correct, think of all the time and energy wasted, not to mention monopolies locked in, just because people cut corners. When modem manufactures stopped putting firmware and controllers onboard modems we had a great resource hogging fiasco on our hands. If graphics card vendors would put the open gl routines right on the card, we wouldn't need to skirt around the GPL to get drivers that were "legal". IF wireless cards put the firmware on the cards, then they wouldn't have to "hide" the code to maintaing FCC compliance.

  38. The 90s called, they want their solutions back by Anonymous Coward · · Score: 1, Informative

    OpenBoot (IEEE-1275) has been doing this 15+ years. The drivers are in the firmware of the card in FCode, which is a variety of Forth. Sun, IBM, and Apple have been shipping systems for years. All the machine has to do is load the FCode and you were off. If the OpenBoot environment could see the device tree, you could boot with it and use most of the functionality.

  39. Cross platform support is more important... by pcummins · · Score: 1

    Generally all you need is a simple 2D graphics API to get the card up and running (which is what VESA does). The main issue has been getting a popular cross platform (ie, PPC, MIPS, other) API working which hasn't been tied to the BIOS and will work with say, Open Firmware or EFI. I'd imagine with the uptake of EFI you'll see more pushes towards making this work. SciTech Software has been working on things like this for a while now. On the other front, drivers other common devices such as peripherals would do well to be abstracted from the OS to a degree so other OS'es (besides fan favourites) can benefit from the work developers do on implementing drivers.

  40. Oh Reginald.......... by irc.goatse.cx+troll · · Score: 1

    I DISAGREE!

    --
    Pain lasts, kid. Its how you know you're alive. Sometimes I think this growing up thing is just pain management-TheMaxx
  41. sure by r00t · · Score: 1

    DVI is a dumb protocol. It sends an uncompressed image with every refresh.

    Neither VNC nor X11 is like that.

    X11 is good enough to play 3D games over gigabit. You just send the OpenGL. Video works fine too -- you don't send it raw, and certainly not at your monitor's refresh rate.

    1. Re:sure by afidel · · Score: 1

      Why do people bring up X11 and VNC, both protocols suck. If you want a good protocol try RDP, ICA, or NX. OpenGL is a good protocol but wouldn't be good for a display adapter unless you wanted to tie the display to a particular video board built in, GL takes a lot of processing.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
  42. Maybe by jd · · Score: 1
    I can see that a standard interface for everything would be next to impossible. HOWEVER, there are some things that could be added that would greatly improve standardization without adding significant expensive hardware and would also take some of the burden off the main processor.
    • OpenGL - Many graphics cards support OpenGL, but do so in different ways. That's fine. All you need is some cheap transliteration layer that converts a generic OpenGL instruction into the card-specific OpenGL instruction. They're going to be 1:1 if the standard is followed correctly.
    • Renderman/NURBS - Most high-end graphics software support Renderman and/or NURBS, but a lot of crunching goes on to turn this into something the graphics card supports, usually by the software itself, not even the driver. This creates massive redundancy and inconsistancy - two good indicators that this is a crappy approach.
    • Loadable Microcode - A number of CPUs support loadable microcode. It's used a fair bit on the Intel Pentium processor series - Freshmeat has listed several updates - and the Transmeta Crusoe was built around it. Loadable microcode could be used to accelerate functions currently in software drivers that are I/O bound, as typically commands to drivers will take less bandwidth than processed data.
    • Firmware - This is not the same as microcode. Microcode is loaded into the CPU or GPU snd often provides basic intermediate-level functions. Firmware is in non-volatile RAM and is usually more extensive. A card-based driver would likely be in firmware, not in microcode. Firmware is software that runs on the GPU and so can do anything you can do in software, given the instruction set provided. On Linux, you'd probably want the X client to run in firmware on the GPU rather than on the main CPU.
    • Graphics protocol tunneling - You should not need to care if the graphics card works over PCI, HyperTransport, Infiniband, VME, IDE or a small piece of green putty found in the armpit of an ATI card designer one midsummer morning. If there was a recognized, standard graphics communications protocol that provided all the extensibility vendors just love to abuse, it would eliminate the bus technology from graphics drivers. The driver would produce a standard packet which would be tunneled over the physical transport without having to care what that transport was.

    Let's look at these in turn. First, OpenGL. OpenGL is a nice, popular 3D graphics format. Software generates the OpenGL instructions, which get turned into identical but probably different OpenGL instructions (on a 1:1 basis) in some OS library, which then gets translated into identical but almost certainly different OpenGL instructions (still on a 1:1 basis) by the graphics driver, which hands the data to the card. If the communications is not wrappered, then the OpenGL instructions sent over the bus will need to be converted into yet another different but identical set of OpenGL instructions that the GPU can actually process. There is absolutely no way on Earth that this can be an efficient mechanism. A single standard representation would be infinitely superior.

    Renderman/NURBS. This is the format used by tools such as BMRT, Pixar's Renderman software, Rhino 3D, etc. We're talking ultra high-end 3D graphics with shaders to die for. In terms of CPU and I/O requirements, it's not cheap to get this stuff done at any decent level of performance. The CPU part isn't that important, as the GPU won't be able to do any better. What you will do, however, is eliminate the I/O of rendered data over a slow bus. Sending a shader or an image over would be painless, and graphics is I/O-bound, not CPU-bound.

    Loadable Microcode and Firmware. These are NOT the same thing, as I've already said. But what they do allow you to do is more effectively divide the driver between what is on the CPU and what is on the GPU. You can run anything in firmware, provided the GPU has the instruction set for it. It also pr

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    1. Re:Maybe by Hortensia+Patel · · Score: 1

      Software generates the OpenGL instructions, which get turned into identical but probably different OpenGL instructions (on a 1:1 basis) in some OS library, which then gets translated into identical but almost certainly different OpenGL instructions (still on a 1:1 basis) by the graphics driver, which hands the data to the card.

      Erm... "identical but almost certainly different"?

      AFAIK it's nowhere near as bad as you suggest. OpenGL API calls go direct to the driver (on Windows, they're patched though by the system's opengl32.dll at DLL load time), and the driver translates those calls straight into the command buffer, in the GPU's native format. So there's only one mapping layer involved in a API call, and it's a necessary one.

      The bigger problem with OpenGL at the moment is that this mapping is decidedly not 1:1. The OpenGL API was designed for the hardware model of ~15 years ago, and modern GPUs don't look anything like that model any more. The mapping logic is therefore pretty convoluted; it's doing a similar job to the microcode that makes a modern CPU look like a 386. The mooted 3.0 release of OpenGL aims to remedy this with a cleaned-up API that maps much more directly onto the current hardware model, with the legacy API layered on top.

  43. Re:Simple: Hardware is expensive by ardor · · Score: 1

    And if something goes wrong, the graphics card is broken, because the ROM is gone, and has to be flashed by some pros for a hefty amount of $$$. What a GREAT idea!

    --
    This sig does not contain any SCO code.
  44. Designers: How to allow binary drivers and be safe by Morgaine · · Score: 1
    In a nut shell, hardware is expensive and software is cheap. Anything you can do in software with little or no impact on your performance requirements is something you should not do in hardware.

    Yes indeed Theovon, that's a commercial fact of life, and it's not going to change. Since it's not going to change, kernel designers who want to protect Linux from the problems inherent in closed binary drivers should have structured the driver architecture in a manner that addresses this, but they haven't.

    Driver manufacturers who "need" closed code (because it saves their company money) should be forced to run it in their own private and heavily MMU-isolated VM, with absolutely no exceptions allowed to this rule.

    nVidia and ATI will complain that this reduces their performance somewhat --- tough, that's the price you pay for insisting on using your own opaque driver code and refusing to provide full hardware interface documentation.

    Companies who DO provide full specs so that we can write open drivers to them would benefit from increased performance, which is a nice incentive to be more open.
    --
    "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
  45. Re:Simple: Hardware is expensive by O · · Score: 1

    Or it could just come with a backup ROM, too.

    --

    1, 1, 2, 3, 5, 8, 13, 21 -- Mathematics is the Language of Nature.
  46. Not feasible by Anonymous Coward · · Score: 0

    There is no single API that could be created to handle every scenario that someone may come across. What if you don't like DirectX or OpenGL? You'd be SOL if there was no other choice.
    ATI and nVidia have such radically different approaches to how their hardware interacts with a computer that any compromise would be unrealistic. And what's wrong with software drivers? Even if the drivers were located on the board in Flash Ram, that won't mean there will be no more bugs to deal with. And it's a hell of a lot easier dealing with software bugs than hardware.
    Plus, updating the drivers on the board carries a very large risk of destroying the hardware. Anyone who has killed a mobo by losing power during an update knows what I mean.

  47. Appearance and Reality by Anonymous Coward · · Score: 0

    "Sounds" like a great idea, but upon further thought turns out to be bad. I can just imagine graphics chip company XYZ deciding to stick in a ROM chip that contains a "driver" which automatically locks out certain "features". What's worse, with the current trend of rootkits, and forcefully installing spyware on user's machines, I would not be surprise dif such a built-in driver (stored on a ROM chip) would phone home automatically and periodically.

    Yes, there is "driver hell". But at least u can get non-official drivers that may be optimized and/or may unlock certain features turned off by default.

    In short, putting the drivers on the video card is kind of like going back in time and allowing intel to go full fledged forward with their "ID"ing chips!

  48. even without solid memory by Anonymous Coward · · Score: 0

    like for example the firmware upload for several wireless cards, this part of the cards driver software could also be uploaded after booting before initialising the card

    this wouldnt raise any price in hardware design or manufacturing while doing simply what the article states already

    on the other hand, no graphic card manufacturer himself would be freely switching to such a "generic" solution, as he couldn't build in any shit he thinks about for advertising his card as uberdoom, quake, unreal whatever fps excess it is capable off instead of making it usable for all users ...

  49. Drivers In Flash Memory on Board by abonstu · · Score: 1

    i cant see why current drivers cant be shipped on a small amount of flash memory built onto the card. flash memory is *cheap*, drivers are relatively small - 32MB would likely be plenty to house drivers for a variety of OS's. the flash mem could use a standard OS driver eg. mass storage device. this goes for all but the cheapest devices... rather than educating every pc user to understand the process of 1) identify device 2) locate manufacturers website 3) download appropriate driver for device/OS 4) install, the whole pro ess could be alot simpler. yes the drivers would eventually become out of date but so are the drivers that are distributed on CD, its still better than nothing, and because its just flash memory, the drivers could be updated on the device automatically if you ever install a newer downloaded driver. yes its not *quite* as cheap, but how much neater would it be if each device in your puter could identify itself and suggest a driver rather than throwing its hands in the air and explaining to you that the computer has detected another 'unknown device'. over.

  50. Re:Could Making it 'Flashable' Burn You? by WrongSizeGlass · · Score: 1

    Though I've always hoped HW would include its own drivers, I always worry about a virus being 'flashed' in there.

  51. Re:Designers: How to allow binary drivers and be s by pilkul · · Score: 1

    Er, I think you're confused as to who's in a position of power here. If Linux devs go out of their way to make life difficult for Nvidia and ATI, they'll just give Linux the finger and stop producing drivers for it altogether.

    From the point of view of the management of these companies, providing Linux drivers is a thing they do on the side to get good PR with open-source devs and on the off chance the OS becomes a significant market in the future. But force them to do extra work or put them at risk of exposing their proprietary tricks to competitors by opening their drivers, and bam they're outta here.

  52. Re:Simple: Hardware is expensive by Dahamma · · Score: 1

    How about putting the driver on the board with a ROM chip , use hardware encryption or some other hardware DRM to protect it, which could be flashed to update it, etc.

    This is exactly what the original poster was explaining... now you are asking for an extra/larger flash chip on the board, possibly with encryption hardware, etc. Even if this only adds $1-2, multiply that by a couple million cards and that's a significant margin.

  53. Acorn's RISC OS machines did this too by MadAndy · · Score: 2, Informative
    They used to have a ROM chip on the board. Deviced drivers came in the form of 'modules' - and one specific to the device would be loaded off its ROM chip. If you had a newer driver, you'd load it from disk and it would replace the ROM one. It meant that the hardware worked 'out of the box', but if you needed newer drivers you could still use them.

    Main catch is that it made the card bigger/more expensive - important especially when you look at some of today's tiny cards. In this age of the internet we're probably better off just working off the unique PCI ID that every card type has. The ideal would just be a little utility that scans the IDs and fetches (or tells you) what you need. MS has done a half-assed job of it with Windows Update, but it definitely could be better.

  54. Yes&No&Why can't I have Openfirmware in my by gd23ka · · Score: 2

    If what you're thinking of is a fully fledged performing 3D Driver then I'm not sure that's a possiblity
    because that graphic card has to work potentially with a lot of Operating Systems and CPU architectures,
    because that card might get plugged into anything from a Power/AIX machine to a SPARC/Solaris with
    Intel/Microcrap in between. However there is a completely platform agnostic way to get a video card set
    up so and that is OpenFirmware (Openbootprom) IEEE 12something. Openfirmware cards (SCSI, FC adapters
    readily come to mind) have a prom on them that contains F-CODE (tokenized Forth is what it is) that the
    interpreter in the Openfirmware can run to get a card setup and perform basic operations with it. So
    if that's what you need, we already got that working on real machines and now would be the time to forget
    all about Intel's EFI boot environment crap and get a real firmware even for your PC.

    If however you're thinking of a card whose sole purpose is to run this quarters first person shooter with a
    l33t number of frames per second on your PC at home, then I think they might get away with some sort of binary
    driver mapped into memory somewhere and generic Windows driver bindings to work with that. A couple of things
    that are pretty Windows-specific come to mind however:

    a.) the graphics driver vendor can easily install spyware into your system you can not easily get rid off anymore. Don't laugh.
    Even Microsoft is doing it as we just recently learned and they'll probably be more than glad to sell that
    privilege to your card vendor too.

    b.) Unless it's flasheable that code might be exploitable

    c.) If it's buggy as hell (and it's gotta be because you only paid $400 for it, cheap skate) it better be flashable
    or you'll have to get the card replaced (better refunded)

    d.) Microsoft might not be happy with that solution because Linux on Intel will have it just a little bit too easy for their taste.

  55. All who aren't driver/kernel developers shut up by billcopc · · Score: 2, Insightful

    Read my tagline.. now re-read it. If we could do away with drivers, we would have done so long ago because there is no greater pain than having idiot users complain about drivers, call tech support because their drivers are corrupt because their OS is an infested pool of shite, or whine about how your expensive gadget doesn't work on their exotic "look what I made" OS derivative. Trust me, if all hardware companies could get rid of the software part of their product, they'd do it in a heartbeat. They can't.

    What does a network driver do ? It takes your data, slices it into packet-sized chunks, adds error protection/recovery, keeps tabs on what's going where and how much, then gives you a shout whenever it's done or wants more data. It does this through a mostly standardized interface, but each network device has its peculiarities and unique features. The drivers are what presents these varieties in a consistent way to whatever software or OS wants to play with them.

    If you want an example of what we did before drivers were "in", look ten years ago with sound cards. You never knew if a game that supported "Sound Blaster" would work properly on your "Sound Blaster Pro".. much less on your "Sound Blaster 16". Why the hell not ? All three are capable of digitized sound and FM synthesis, so why does the game that runs on the grainy, 8bit mono 22khz SB not work on the 16bit stereo 44khz SB16 ? Because it was coded directly to the original hardware with no indirection whatsoever. How bad was it ? We actually had Sound Blaster emulators for the Sound Blaster AWE64, that were essentially device drivers that presented an SB1 interface and translated those accesses into AWE64 functions.

    Feigning ignorance for a moment, let's pretend all sound cards could present a consistent interface no matter what the brand or model was. We'd still need a "universal driver" to manage our sound, right ? Something like DirectX, or OpenAL, or ALSA, or ESound..... whatever you call it, we'd still have some means to pander to our laziness as programmers.

    As much as I'd like to see an operating system that can "figure stuff out" on its own, it's just not gonna happen in this decade. It would require close collaboration between software developers and hardware designers.. collaboration usually means a governing body that charges fees for certification, a governing body means something that can be manipulated to favor the interests of whoever has the most money to throw around. From that perspective, it is a doomed concept.

    Now if something like the Linux community could come up with open-source hardware type stuff.. like a standard for sound cards, video cards, TV tuners.. and enough friendly supporters to manufacture compliant devices and fully commit to the cause, maybe over time we could see a transition if the project turns out beneficial to all parties involved. No drivers means no need to pay a cocky driver developer team the big bucks.. no more "I need a network driver but I can't get on the net" chicken-and-egg bullshit.. no more Billco having to hold some redneck's hand while I have them reinstall the drivers on their X-brand-name spyware-infested PC. Yeah it would be sweet! But it would take a big commitment from everyone.

    --
    -Billco, Fnarg.com
  56. Spoken like a chip designer.... by ivan256 · · Score: 1

    ...and not a software engineer.

    The abstraction you describe could just as easily be software in flash on the card as software in RAM on a PC. Your chip design wouldn't have to change at all for this to be a reality... ...except that it already has been a reality. This isn't a novel idea. It's happened at least three times in the past, and it will happen again in the future. Somebody comes up with a standard driver API, people implement it, cards work everywhere... Then some smartass graphics chip maker wants a competetive edge and either intentionally breaks the API, or comes up with a feature that doesn't fit the standard, and suddenly you can't use the on board driver anymore if you want the full featureset. Then the whole standard goes out the window, there's chaos for a few years (decades) and the whole process starts over again.

    The Open Graphics Project has opinions about that.

    Those opinions and a dollar seventy nine will get you a coffee at starbucks. The day your solution to the driver problem works is the last day you will ever be employed as a chip designer ever again. It's also the day that pigs will fly and the day there is ice skating in hell.

  57. Re:Simple: Hardware is expensive by starseeker · · Score: 1

    Agreed - hardware is expensive. However, developer time for software driver development is also expensive. I don't know if, in the long run, an onboard chip would be more or less expensive than OS driver headaches. I suppose, unfortunately, the current product offerings indicate that it's not worth the onboard hardware.

    I've been watching the Open Graphics project with interest - I hope they succeed. Such a card is exactly what I would want - I don't care about being able to play games at a zillion FPS, but I do want to be able to rotate geometric plots in 3D smoothly and have an accelerated desktop.

    --
    "I object to doing things that computers can do." -- Olin Shivers, lispers.org
  58. Re:Simple: Hardware is expensive by tinkerghost · · Score: 1

    Hmm, $17 if you mail out the fritzed chip. $30 if you have a new one mailed to you.
    Or you could splurge & spend the $58 and buy the programmer yourself.

  59. Probably the same reason.... by gwhenning · · Score: 1

    That ethernet cards can't use a generic driver right out of the box. Can anyone give me a good reason that a NIC couldn't use a generic driver to get say a slower connection, but one that will allow you to download the new drivers?

    1. Re:Probably the same reason.... by wasabii · · Score: 1

      Because there's nobody to standardize such an interface. Are you volunteering? All you need to do is write such an interface and get every hardware manufacturer to agree to it.

  60. Well done, you've just invented OpenFirmware by jimicus · · Score: 1

    http://www.openfirmware.org/

    The basic premise is that the interface (eg. video card) contains a chip holding system-independet drivers.

    It's been running on most commercial Unix systems with proprietary hardware for years.

  61. Dear my, fuck no! by r00t · · Score: 1

    I can say little about VNC, ICA, or NX. The other two though...

    You couldn't be more wrong about your ranking of X11 and RDP.

    X11 is pretty decent, especially if you use the modern extensions.
    (the Xfixes, Damage, and font-related stuff)

    RDP is a joke. The sickest thing is that we tunnel it over
    TCP/IP. RDP already includes those layers of the network
    stack. To anyone with a clue about the behavior of network
    protocol congestion control and similar issues, this is an
    obviously bad thing to do. RDP has all sorts of crazy-shit
    features designed by a committee. Microsoft then tacked on
    some interesting extras to bring the "quality" below even
    that of the blecherous CIFS protocol.