Re: HARDWARE: Open-Source-Friendly Graphics Cards -- Viable?
From: Jeff Garzik
Date: Fri Oct 22 2004 - 16:08:29 EST
Timothy Miller wrote:
Jeff Garzik wrote:
Timothy Miller wrote:
At this moment, I'm taking a cue from the Linux driver ABI and
thinking that standardizing the interface would be more limiting than
helpful.
No offense, but I strongly disagree :)
Standardizing the hardware interface lowers the cost of doing an OS
driver for every chip maker that implements the interface. The more
chip makers that implement the interface, the greater the cost savings.
Concrete examples:
* IDE BMDMA interface on PCI. Practically every ATA chipset in
production supports this interface. As a consequence, each individual
ATA driver mainly involves setting chip-specific timings, and not much
else.
* tulip (ethernet MAC). Its ring and register designs were widely
imitated across ethernet NICs; as a result, each ethernet driver is
mainly a "paint by numbers" affair.
* the new AHCI SATA interface, which Intel has on all its new
motherboards, and SiS soon will as well (as will others, I hope).
Sure, but those standards had time to evolve to where they are. I don't
have that luxury in many respects.
While it might be a pain to have to carry around multiple driver
versions, the fact that it's all open source kinda makes it easy to
make drastic changes without hurting anything.
Ever-changing hardware and firmware interfaces are a huge pain. I've
been writing and maintaining drivers for years... I feel this pain
every day :)
You want to design a hardware interface that allows you to upgrade and
enhance your hardware over time, while keeping the changes to the
hardware<->OS interface itself to a _bare minimum_. That's why I
suggested the microcontroller+GPU approach. The microcontroller's
firmware can be used to mask the transition between GPU revisions.
Drivers live for many years, even decades, and long after the hardware
they support has been EOL'd. It's in everybody's best interests to
keep the changes to the drivers to a minimum.
Ok, let me say this: I will not change something I don't have to
change, but I'm not going to be held back (and hold everyone else back)
by some mistake I made in the past.
Plus, I don't expect to get it perfect the first time. The first design
Part of open source is open development. If you develop the hardware
interface in public, actively soliciting feedback during development,
you'll wind up with a much better interface.
Fair enough, although the problem of a competitor getting the jump on us
that way is yet to be addressed.
If you start competing based on interface, then that gets us right back
to where we are now: vendors so protective of their interface that they
don't want to open source their drivers... and each chip requires its
own separate OS driver, with its own separate engineering team and
brainshare.
A big bonus of my point #6 is that this is irrelevant -- if everyone is
using the same, simple "do GL" interface, then you are competing on
features/cost/time-to-market/etc., not interface.
I thought Alan Cox's point was fairly relevant here: there are at least
five(?) video chips out there with hardware docs available, but no
engineers to write a complex 3D driver from scratch. If your company
_leads the industry_ in creating a standardized interface, doesn't
everybody benefit?
Another advantage is that a simple "do GL" interface is much more
"future-proof" interface, since it is a very high level interface.
Jeff
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/