Timothy Miller started a discussion on the lkml regarding whether or not it would be viable for a company to release a completely open video card. He explains, "in short, what I have been proposing to my superiors is the development of a graphics card specifically for open source systems. This means full disclosure on all register interfaces so that no one has to deal with anything closed source (BIOS included). The goal here is to produce a graphics card which is a Free Software geek's dream in terms of openness". He goes on to add:
"The reason this idea came up is because I, as a user of Linux, am often frustrated by the lack of open-source support for graphics cards which are not 'pre-owned'. Sure, SOME companies release specs so that we can develop open source drivers, but those cards tend to be prohibitively expensive, slower than their cheaper counterparts from ATI or nVidia, and they STILL don't document the internals of the BIOS so that the card can be ported to a non-x86 system. Furthermore, since all these vendors focus exclusively on Windows, they don't give much help to open source developers who may produce drivers which work but which are sub-optimal in performance or stability."
Timothy explained that Tech Source, the company that he works for, would need better understanding of the viability of this proposition. To start collecting data, he asked lkml readers for their opinions: "(1) Would the sales volumes of this product be enough to make it worth producing (ie. profitable)? (2) How much would you be willing to pay for it? (3) How do you feel about the choice of neglecting 3D performance as a priority? How important is 3D performance? In what cases is it not? (4) How much extra would you be willing to pay for excellent 3D performance? (5) What's most important to you, performance, price, or stability?" Much of the resulting discussion follows. The general feeling seemed to be that while people liked the idea, the chances of actually making a profit seemed slim. Timothy summarized his viewpoint saying, "the whole issue comes down to this: This is technically feasible. Should we do it?"
From: Timothy Miller [email blocked]
To: Linux Kernel Mailing List [email blocked]
Subject: HARDWARE: Open-Source-Friendly Graphics Cards -- Viable?
Date: Wed, 20 Oct 2004 18:02:51 -0400
I've brought this up the following subject before on LKML, but it wasn't
really resolved, and also, management at my company (Tech Source) has
only now started to warm up to my idea.
To begin with, I'm an ASIC/FPGA designer, as well as software developer.
My own projects here include X11 drivers (DDX modules) for OpenWindows
and XFree86, as well as the bulk of a graphics ASIC which we use in our
air traffic control systems. The point: we have a lot of experience
with graphics hardware and system software.
In short, what I have been proposing to my superiors is the development
of a graphics card specifically for open source systems. This means
full disclosure on all register interfaces so that no one has to deal
with anything closed source (BIOS included). The goal here is to
produce a graphics card which is a Free Software geek's dream in terms
of openness. If Tech Source (me being its avatar) can develop a
relationship with the Linux (and BSD) community, users and developers
can get a product that they want without being locked out by hardware
vendors that feel they have to protect every last little bit of IP
relating to their products. The EXPRESS PURPOSE of this product is to
be free-software-friendly.
I can produce more detail later, but first, some characteristics and
advantages of what I'm proposing:
- x86 BIOS/OpenBoot/OpenFirmware code under BSD and GPL license
- kernel drivers under BSD and GPL license
- X11 module under MIT license
- flashable PROM so that boot code can be added for more platforms
- usable as the console on any platform that can take a PCI, AGP, or
PCI-Express card
- downloadable schematic for the circuit board
- FPGA-based graphics engine so it's reprogrammable
- instructions on how to reprogram the FPGA, so it's hackable
- if we discontinue a product, we may release the Verilog code for the FPGA
- Since this is designed to be open-source-friendly, we want to play by
the rules of the open-source community.
- Tech Source would actively participate in the development and
maintenance of our own drivers.
- We will actually pay attention to problems and concerns raised by
users and developers.
- We won't be control-freaks.
The desired effects, for developers, of these characteristics would include:
- The card "just works" with Linux because, maybe, the drivers would go
into main-line
- The drivers are not a debugging/tainting nightmare, since they are
open source
- The drivers are easy to work on, since you don't ever have to guess
about anything.
- The drivers are easy to debug because
(a) we document everything, and
(b) we'll talk to you.
- People will think it's cool and want to hack it.
The desired effect for end users:
- It just works.
- It's not a liability for system stability.
The reason this idea came up is because I, as a user of Linux, am often
frustrated by the lack of open-source support for graphics cards which
are not "pre-owned". Sure, SOME companies release specs so that we can
develop open source drivers, but those cards tend to be prohibitively
expensive, slower than their cheaper counterparts from ATI or nVidia,
and they STILL don't document the internals of the BIOS so that the card
can be ported to a non-x86 system. Furthermore, since all these vendors
focus exclusively on Windows, they don't give much help to open source
developers who may produce drivers which work but which are sub-optimal
in performance or stability. (Here, I have to make the obligatory CYA
statement that there is nothing wrong with their business models -- it's
just unfortunate for Linux users.)
By contrast, what _I_ want to produce would be supportable by both Tech
Source (mostly me), and also by anyone else who wants to hack it. I
would be one of the primary designers of the chip, so I would know it
inside and out. I would also be the primary driver developer, with the
help of others on LKML. So, I would be here to help, but hopefully, the
documentation would be clear enough (and the drivers I write, complete
enough) so that no one gets stuck having to guess or reverse-engineer
anything.
There are, however, some caveats. Tech Source is not willing to foot a
lot of development capital for this project. That means we can't spend
an excessive amount of time on developing a fully virtex shading
programmable 3D engine, and my superiors are not willing, as yet, to
give me sufficient funding to produce an ASIC. What this means is that
the design has to be small and simple and focus primarily on 2D
performance so that it can fit into an FPGA.
A 2D rendering engine is easy to parallelize, so although we can't clock
the FPGA design as fast as an ASIC design, we can easily saturate a
128-bit DDR memory bus at, say, 200Mhz. A 3D rendering engine, on the
other hand, is a beast, and our performance will be less than stellar
(although certainly better than doing it all with the host CPU). (If
there IS sufficient demand, we would LOVE to produce a
performance-competitive 3D chip, but keep in mind that that would be a
huge and expensive development effort, and would result in an expensive
product.)
The advantage of having this in an FPGA is that we can add features and
fix bugs as necessary, and provide a flash utility for everyone to use
to upgrade. You run the utility, cycle power, and you're set. This
way, if some kernel developer who is concerned about latency decides
that having an interrupt signal occur on some event that we don't
already cover, we can add the feature and supply a new bitfile in
relatively short order. You wouldn't have to buy a new card to upgrade.
All of this, however, is a pipe-dream if it's not cost effective for
Tech Source. I have to make a very strong case to the CEO. I think
everyone at this company is excited about the IDEA of developing this
product. But we have no clue what the market is like. It's not worth
it to us to develop this if only a handful of kernel hackers are going
to buy it. We're guessing that some workstation and server vendors who
deal in Linux would like to resell this sort of product, because if our
drivers are in the mainline Linux kernel, it'll "just work". On the
other hand, maybe they're all perfectly happy with the graphics
controllers that come built into many Intel motherboards and have "good
enough" support.
The very fact that no other company has openly considered going to the
level of openness that I'm proposing might suggest that what I'm
proposing is completely out of touch with reality, because it just can't
be profitable.
So, here are some questions to answer:
(1) Would the sales volumes of this product be enough to make it worth
producing (ie. profitable)?
(2) How much would you be willing to pay for it?
(3) How do you feel about the choice of neglecting 3D performance as a
priority? How important is 3D performance? In what cases is it not?
(4) How much extra would you be willing to pay for excellent 3D performance?
(5) What's most important to you, performance, price, or stability?
Feel free to insert your own questions and answers here. Remember, I'm
an engineer. My understanding of business is dilettantish at best.
I haven't worked out a complete design spec for this product. The
reason is that what we think people want and what people REALLY want may
not be congruent. If you have a good idea for a piece of graphics
hardware which you think would be beneficial to the free software
community (and worth it for a company to produce), then Tech Source, as
a graphics company, might be willing to sell it.
Oh, and before you flame me, YES, I AM doing market research for Tech
Source here, but NO, I am not doing it at THEIR request. They told me
that if I wanted to do this, I would have to make a case for it, and
that's what I'm trying to do. This is MY idea, and I would personally
love to have a product like what I'm describing. I would also
personally very much enjoy WORKING on such a project, because then I
wouldn't have to do more boring stuff. There's a lot of selfishness
here on my part. But it's selfishess that I hope everyone else will
benefit from.
From: Alan Cox [email blocked]
Subject: Re: HARDWARE: Open-Source-Friendly Graphics Cards -- Viable?
Date: Thu, 21 Oct 2004 00:10:26 +0100
On Mer, 2004-10-20 at 23:02, Timothy Miller wrote:
> - The card "just works" with Linux because, maybe, the drivers would go
> into main-line
That bit ought to "just work" 8)
> - The drivers are easy to work on, since you don't ever have to guess
> about anything.
> - The drivers are easy to debug because
> (a) we document everything, and
> (b) we'll talk to you.
Some other vendors pretty much did this but the takeup isn't that vast
because writing 3D drivers is not trivial (we have docs for about 5
cards and no drivers, some are pretty old some are fairly passable
cards)
> and they STILL don't document the internals of the BIOS so that the card
> can be ported to a non-x86 system. Furthermore, since all these vendors
Talking to one very large motherboard video company they actually can't
because the analogue side is done by the board vendor as is things like
the RAM choice.
> give me sufficient funding to produce an ASIC. What this means is that
> the design has to be small and simple and focus primarily on 2D
> performance so that it can fit into an FPGA.
X actually needs very little functionality nowdays, although some of it
does not map well onto a generic 2D rendering card. Notably most 2D
engines lack alpha blend.
Essentially if you can do alpha, bitblit, blit from main memory and
a couple of fills and colour-expands X is happy.
> (1) Would the sales volumes of this product be enough to make it worth
> producing (ie. profitable)?
I'm very dubious I must admit.
I've actually always wondered what a hybrid video device would look like
for 3D. Doing the alpha blend and very basic operations only in the
hardware that are expensive in software - alpha and perhaps some of the
texture scaling, but walking textures in software, doing shaders in
software and so on.
Alan
From: Andre Eisenbach [email blocked]
Subject: Re: HARDWARE: Open-Source-Friendly Graphics Cards -- Viable?
Date: Wed, 20 Oct 2004 15:17:05 -0700
On Wed, 20 Oct 2004 18:02:51 -0400, Timothy Miller
<Timothy Miller> wrote:
> In short, what I have been proposing to my superiors is the development
> of a graphics card specifically for open source systems.
That sounds truly great! However...
If the graphics card mostly supports 2D initially, it's really not
much better then just about any off the shelf graphics card with VESA
drivers. As in, the hardware doesn't need to be open for just that.
Most (all?) the frustration in Linux graphics card land comes from
unsupported/closed 3D drivers.
I obviously understand that it would be very costly to try to catch up
with ATI/NVidia in 3D land, but if you manage to get an open platform
out there which has great 3D potential (hardware wise) and is easily
programmable, I am sure the open source community would _love_ to try
to jointly develop fast 3D firmware (and drivers). That way Techsource
won't have to front the cost (other than for hardware).
So a open, programmable 3D hardware platform would open the door for
open source 3D engine innovation.
If you get this off the road, that would be very impressive and most
exciting to watch.
However, if you're only going to focus on 2D, I don't see the
excitement. 2D works pretty much for everyone, no?
Cheers,
Andre
From: Timothy Miller [email blocked]
Subject: Re: HARDWARE: Open-Source-Friendly Graphics Cards -- Viable?
Date: Wed, 20 Oct 2004 16:48:19 -0700 (PDT)
I'm posting from home, so this won't look right. Sorry.
Anyhow, Andre Eisenbach said this:
>>>
If the graphics card mostly supports 2D initially, it's really not
much better then just about any off the shelf graphics card with VESA
drivers. As in, the hardware doesn't need to be open for just that.
Most (all?) the frustration in Linux graphics card land comes from
unsupported/closed 3D drivers.
<<<
I have tried using cards with VESA drivers before, and I found it to be
very painful. Certainly, you can turn off certain features and get a
reasonably useful UI experience, but dragging windows around with "show
window contents while moving" enabled is painfully slow, even with AGP
4x. Just imagine doing it over PCI.
When it comes to desktop applications, the FIRST thing you need is good
2D acceleration. In fact, that's really the ONLY thing. OpenOffice
does not need to use OpenGL. GNOME doesn't need to use OpenGL. In
fact, for the most part, they don't bother. There are some instances
where they use OpenGL, but most of what a workstation user does fits
squarely within all the functionality supplied by Xlib, which is
entirely 2D.
Ok, so with limited 3D support, it's almost not worth trying to play
Doom II (let alone III), but that's never affected me. On Linux, I use
nedit, Mozilla, GNOME, KDE... ALL 2D apps. I use Linux as a
development platform for chip logic, X server modules, and web sites.
I also do a fair amount of tinkering with CPU-intensive things like
genetic algorithms. In fact, the ONLY time I have EVER played with 3D
on Linux was when I fiddled with some of the screensavers.
Ok, so I'm really limited in my use. But what about what a secretary
would use? GNOME, OpenOffice, Evolution, Mozilla. All 100% 2D apps.
How about a sysadmin? Well, he wants something simple in his server
that lets him run his Red Hat configuration tools. What's a system
integrator want? Something that won't result in any tech-support
calls.
Nevertheless, I do think 3D is very important. MacOS has moved to pure
3D, and Longhorn's Aero Glass thingy is all 3D too. Plus there's that
Sun thing. With Linux, we're kinda constrained by the fact that core
X11 protocol is strictly 2D, but soon, GNOME and KDE will surely find a
way around that too. I know we could not sell a graphics device which
did not have ANY 3D support. But keep in mind that the more
sophistocated the 3D support, the larger an FPGA you'll need. The
prices of FPGA's go up exponentially with die area.
I've been given a very limited budget here for development. (Well, I
haven't been given a budget yet--I've just been told that we're not
going to spend $100K to do an ASIC for something this speculative.)
I'm further constrained by the impact of FPGA chip cost on the end
product.
Here's an off-the-cuff guess as to the parts cost for one board (I'm
sure I have most of the prices wrong):
- FPGA $30
- PCB $5
- DAC $10
- DVI transmitter $10
- RAM $20
- Assembly $??
- Development cost $??
- Profit $??
The parts alone are $75, and I've left plenty out. If the board is
profitable at $100... who will buy it?
I'll do whatever anyone wants, as long as it fits into these
constraints!!
One idea I have is to merge the 2D and 3D pipelines into one. This
way, we can get better 3D functionality, and 2D comes in for free. The
problem is that 2D performance would be a LOT slower in this case. But
forget I said that, because it's absolutely pointless to talk
implementation details at this point.
The whole issue comes down to this: This is technically feasible.
Should we do it?
The open source community often complains about hardware vendors being
too tight-lipped with their IP. Here, we have a golden opportunity to
get what we want, both in terms of features and disclosure. How do we
figure out how to not miss that opportunity?
In case you're wondering why I'm writing so much about this... it's
because I REALLY REALLY REALLY want to do this. As a geek who enjoys
designing stuff, this is an exciting idea to me. I'm also a free
software zealot, but I often feel like a leech because I haven't given
anything back (well, there's GTerm, but who cares.). I just don't know
how to justify the cost of this project to my employer.
From: J.A. Magallon [email blocked]
Subject: Re: HARDWARE: Open-Source-Friendly Graphics Cards -- Viable?
Date: Thu, 21 Oct 2004 00:30:40 +0000
On 2004.10.21, Timothy Miller wrote:
...
>
> When it comes to desktop applications, the FIRST thing you need is good
> 2D acceleration. In fact, that's really the ONLY thing. OpenOffice
> does not need to use OpenGL. GNOME doesn't need to use OpenGL. In
> fact, for the most part, they don't bother. There are some instances
> where they use OpenGL, but most of what a workstation user does fits
> squarely within all the functionality supplied by Xlib, which is
> entirely 2D.
>
Have you looked at xorg-x11 recently ? IE, the Composite, Damage and
Render extensions ?
OSX uses OpenGL because it is the API they have to access things like
alpha blending, image scaling, and so on, so they can do those nice
effects of transparencies, shadows, genie's and so on. At least until
Panther. For me, it looks like the new Tiger implementation (CoreImage) is
their own implementation of the OpenGL pixel pipeline, talking directly
to drivers instead of using OpenGL as intermediary.
Probably desktop systems would not need the T&L part of 3D, but be sure
they will need at least managing windows at different depths, blending them,
anti-aliasing them an so on.
So, as I see it, for an appealing 2D card, you need to program a 2 1/2
graphics engine, with really _fast_ alpha blending and antialiasing.
You can only kill the matrix part. I do not know if you will be able to
get rid completely of floating point, for those alpha mixes and assorted
candy...
--
[email blocked] \ Software is like sex:
werewolf!able!es \ It's better when it's free
Mandrakelinux release 10.1 (Community) for i586
Linux 2.6.9-rc4-mm1 (gcc 3.4.1 (Mandrakelinux 10.1 3.4.1-4mdk)) #4
From: Timothy Miller [email blocked]
Subject: Re: HARDWARE: Open-Source-Friendly Graphics Cards -- Viable?
Date: Wed, 20 Oct 2004 17:47:21 -0700 (PDT)
--- "J.A. Magallon" [email blocked] wrote:
>
> Have you looked at xorg-x11 recently ? IE, the Composite, Damage and
> Render extensions ?
>
> OSX uses OpenGL because it is the API they have to access things like
> alpha blending, image scaling, and so on, so they can do those nice
> effects of transparencies, shadows, genie's and so on. At least until
> Panther. For me, it looks like the new Tiger implementation
> (CoreImage) is
> their own implementation of the OpenGL pixel pipeline, talking
> directly
> to drivers instead of using OpenGL as intermediary.
>
> Probably desktop systems would not need the T&L part of 3D, but be
> sure
> they will need at least managing windows at different depths,
> blending them,
> anti-aliasing them an so on.
>
> So, as I see it, for an appealing 2D card, you need to program a 2
> 1/2
> graphics engine, with really _fast_ alpha blending and antialiasing.
> You can only kill the matrix part. I do not know if you will be able
> to
> get rid completely of floating point, for those alpha mixes and
> assorted
> candy...
Alright. Excellent points. If I don't have to do any scaling or
rotation, alpha-blending won't be that big of a deal. I already would
have to read the destination of applying a raster-op or a planemask, so
alpha-blend would become just another part of the merge at the end of
the pipeline.
Of course, with only 8 significant bits, you could get noticable
cumulative round-off error.
As you start to add 3D features to the 2D pipeline, the point in
keeping them separate diminishes.
Oh, and there's antialiasing... now, sometimes, it just LOOKS like
antialiasing, like with the font server used by X11. When it renders
characters, it produces an 8-bit grayscale bitmap which is
pre-antialiased, which you then have to color while rendering. If you
want to do other things, then you get back into scaling, which is just
a special case of texture-mapping.
From: David Lang [email blocked]
Subject: Re: HARDWARE: Open-Source-Friendly Graphics Cards -- Viable?
Date: Wed, 20 Oct 2004 15:26:08 -0700 (PDT)
On Wed, 20 Oct 2004, Timothy Miller wrote:
> Sure, SOME companies release specs so that we can develop
> open source drivers, but those cards tend to be prohibitively expensive,
> slower than their cheaper counterparts from ATI or nVidia...
Tim, I think this is the key problem. with the current ATI/nVidia cards
beign in the $50 range (with other cards on the market for as low as
$30) are you really going to be able to come up with a card that's price
competitive? (completely ignoring the performance question)
as for your other question of if an open approach could be viable (after
all nobody does it today so doesn't that proove it isn't)
this is where there is a significant disagreement. the Linux folks think
that such openess would be very viable and the companies are just pursuing
a legacy approach, but the companies are scared to open things up becouse
they don't believe that they would remain viable.
since nobody has done this yet (for video cards anyeay) there is no proof
one way or the other.
David Lang
--
There are two ways of constructing a software design. One way is to make it
so simple that there are obviously no deficiencies. And the other way is to
make it so complicated that there are no obvious deficiencies.
-- C.A.R. Hoare
From: Martin Schlemmer [email blocked]
To: Timothy Miller [email blocked]
Subject: Re: HARDWARE: Open-Source-Friendly Graphics Cards -- Viable? [u]
Date: Thu, 21 Oct 2004 00:19:07 +0200
On Wed, 2004-10-20 at 18:02 -0400, Timothy Miller wrote:
Hi,
> So, here are some questions to answer:
>
> (1) Would the sales volumes of this product be enough to make it worth
> producing (ie. profitable)?
No idea - I for one would think that most gamer Linux users will buy
it if its got the performance 3D wise - many others that only want 2D,
or at least accelerated render support in X, as well as XV, etc.
> (2) How much would you be willing to pay for it?
I am not that a big a gamer, so my Geforce 5700 ultra is fine for my
needs. If the card have relative performance to that, and drivers is
the same quality as nvidia's (but hopefully better, and really not ati's
crappy standard), then I would fork the same amount as you would for an
5700, or slightly more if not that much. Not sure what that amounts to.
> (3) How do you feel about the choice of neglecting 3D performance as a
> priority? How important is 3D performance? In what cases is it not?
Yeah, I think it is important - just for decent performance in
gnome/kde, you need a card with accel RENDER support, as well as XV/GL
for video. Not to talk about those of us that are heavy gamers, or like
me who like my ut2004/quake3/nvn once or twice a week.
> (4) How much extra would you be willing to pay for excellent 3D performance?
Well, above price was for performance on par or just below a 5700. I
know it will be more expensive to develop, so if it was a bit more
expensive than the same class nvidia/ati, but with better drivers, I
would be sold. The reality of the issue is just while I love my linux,
I rather taint my kernel than crappy X performance or no gaming now and
then.
> (5) What's most important to you, performance, price, or stability?
>
Performance and stability, but it being 3 times more expensive than
on par nvidia/ati cards wont cut it.
Hope that is not too vague to help a bit.
Regards,
--
Martin Schlemmer
From: Kurt Wall [email blocked]
Subject: Re: HARDWARE: Open-Source-Friendly Graphics Cards -- Viable?
Date: Wed, 20 Oct 2004 22:29:57 -0400
On Wed, Oct 20, 2004 at 06:02:51PM -0400, Timothy Miller took 163 lines to write:
> I've brought this up the following subject before on LKML, but it wasn't
> really resolved, and also, management at my company (Tech Source) has
> only now started to warm up to my idea.
[long snip]
> So, here are some questions to answer:
>
> (1) Would the sales volumes of this product be enough to make it worth
> producing (ie. profitable)?
Hard to say. My crystal ball doesn't work any better than yours.
> (2) How much would you be willing to pay for it?
It depends. I'd probably be willing to drop $100 USD on such a card simply
to vote with my wallet what my priorities and values are.
> (3) How do you feel about the choice of neglecting 3D performance as a
> priority? How important is 3D performance? In what cases is it not?
For most of what I do, 3-D is irrelevant. It makes nice eye candy, but
that's about it. For games, hardware-accelerated 3-D is more or less
required.
> (4) How much extra would you be willing to pay for excellent 3D performance?
An extra $100 USD. For superior 3-D performance (and a buttload of RAM on
the card), I'd go an extra $200.
> (5) What's most important to you, performance, price, or stability?
Stability, followed by performance. I'm less price sensitive than I used to
be.
Regards,
Kurt
From: Zan Lynx [email blocked]
Subject: Re: HARDWARE: Open-Source-Friendly Graphics Cards -- Viable?
Date: Wed, 20 Oct 2004 19:25:21 -0600
On Wed, 2004-10-20 at 16:48 -0700, Timothy Miller wrote:
> I'm posting from home, so this won't look right. Sorry.
>
> Anyhow, Andre Eisenbach said this:
>
> >>>
> If the graphics card mostly supports 2D initially, it's really not
> much better then just about any off the shelf graphics card with VESA
> drivers. As in, the hardware doesn't need to be open for just that.
> Most (all?) the frustration in Linux graphics card land comes from
> unsupported/closed 3D drivers.
> <<<
>
> I have tried using cards with VESA drivers before, and I found it to be
> very painful. Certainly, you can turn off certain features and get a
> reasonably useful UI experience, but dragging windows around with "show
> window contents while moving" enabled is painfully slow, even with AGP
> 4x. Just imagine doing it over PCI.
>
> When it comes to desktop applications, the FIRST thing you need is good
> 2D acceleration. In fact, that's really the ONLY thing. OpenOffice
> does not need to use OpenGL. GNOME doesn't need to use OpenGL. In
> fact, for the most part, they don't bother. There are some instances
> where they use OpenGL, but most of what a workstation user does fits
> squarely within all the functionality supplied by Xlib, which is
> entirely 2D.
[snip]
My opinion, for what its worth:
Do 3D first and only. 2D is a subset of 3D. Implement as much of
OpenGL as you can in hardware and software can emulate any 2D interface
desired.
I agree that existing graphics cards do 2D just fine. I can get a ATI
card for $20 that does all the 2D I need. But 2D isn't enough for me.
I spend $400 on one Nvidia card. Maybe I'm not the average, common
user, but users like me have the highest profit margin. :-)
I'm a pragmatic user. I'd like full-featured Open Source drivers for my
Nvidia card but I use the binary because they work really well and for
me, (excellent_performance - closed_drivers) > (crappy_performance +
open_drivers).
If it can be done well enough to run Doom 3 in 640x480 at 20 fps for
less than $500, I'll buy one. That's the performance level where I'd
consider sacrificing 60 fps for the open drivers.
Of course, in 5 years I'll expect 120 fps so its definitely a moving
target.
--
Zan Lynx [email blocked]
From: Albert Cahalan [email blocked]
Subject: Re: HARDWARE: Open-Source-Friendly Graphics Cards -- Viable?
Date: 21 Oct 2004 00:48:18 -0400
Timothy Miller writes:
> (2) How much would you be willing to pay for it?
>
> (3) How do you feel about the choice of neglecting
> 3D performance as a priority? How important is 3D
> performance? In what cases is it not?
>
> (4) How much extra would you be willing to pay for
> excellent 3D performance?
>
> (5) What's most important to you, performance, price,
> or stability?
Stability with a kernel of my choice on possibly
non-x86 hardware matters most. Digital DVI, fanless
operation, and DVD scaling are next. After that, 3D.
I'm not so sure you have to give up 3D. You can put
at least 4 AltiVec-capable "G4" CPUs on a PCI board
without having horrible power and temperature issues.
(Perhaps an AGP board can safely support even more.)
Each will do 4 32-bit floating-point fused-multiply-add
operations per cycle. That's got to be good for something.
I think the latest chips have built-in memory interfaces.
They have RapidIO interfaces. So you make your FPGA
speak RapidIO protocol (easy) and have each CPU render
every fourth frame.
One could even put the X server on the card.
Ultimately, this is a huge risk, with potentially
great reward. One must take some risks to succeed,
and this one is a whopper.
re: 2d card
just one clarification on my post about personal use 2d card...
that should say $100 to $200 aprox. us.
opens source video card
Hi;
I'd buy it as long as i could get all my games in linux to work.
I'd just use a nvidia one for win unless you would lease or something the direct x stuff so i could still play my games that are only windows for now.
I'd be willing to pay 300.00 (ruff prices is over 300)cnd for it .
Thats what I'll have to pay to get a BFG 6600gt OC card with 128 megs just to play halflife 2 and thats a midrange card.
I would also like to see a pci-xpress version too.
2 d is ok for now I just moved to Vidalinux and it's a learning curve but not much and I still wait for the day that linux takes whats best from deb,emerge,rpm and makes a simple to use all in one update system across the board.
Along with more games.
I want a linux that gives me options for my window manager and is just as easy to install as windows .
I want it to run all the software that i need and so far linux does that to a point besides all my games.
I like emerge and Gentoo cause it mates to my hardware.
I like the option to compile my own software or let it do it.
I want speed,games,sound,ease of use,best access to hardware.
I want to be able to go to my computer store or bestbuy and just be able to use the hardware i like.
Something to look at
To cut development costs down to nearly nothing, could you possibly mass produce this: http://www.opencores.org/projects.cgi/web/vga_lcd/overview ?
It would seem to me that with such an abundance of documentation it would be easy to implement the said hardware. And since the documentation is abundant, writing drivers (or getting someone else to write them) shouldn't be too hard. I guess what it really boils down to is this: is the core that was written worth anything?
The nice thing is that you could potentially pay the designer of it to make improvements, and get them quite cheaper than hiring a whole hardware team. Call him your remote HW consultant and let him do what he (must) love and get paid.
Sadly, this isn't the same class of device...
Think old-style VGA framebuffer card and you'd have what you linked to. Nobody's really gotten to the 2D accel stage over there in OpenCores, let alone a weak 3D card.
OpenCores VGA_LCD
As the author of the opencores vga_lcd core I HAVE to respond to this of course ....
The VGA_LCD controller is a frame-buffer controller. But you're missing the point. To create a VGA card you need a couple of IPs (building blocks). The vga_lcd core is THE basic building block you need for any vga card. Others are a memory controller (to access the memory, duh), a DMA engine (for bit-block and fast system memory access), PCI/AGP/PCI-Ex interface, 2D engine, 3D engine.
All these video engines operate on the frame-buffer. So whatever you do, you need a frame buffer video engine.
2D (and basic/slow 3D) can be done using the OpenRISC processor as a target. It can program the vga_lcd core and execute the required 2D calls. Best of all, uClinux and Linux are ported to the OpenRISC processor!!!
True 3D requires dedicated hardware. There are a bunch of open source 3D project that are worth investigating.
In fact there are also a bunch of open source hardware video (mpeg) projects. Might be worth integrating them as well.
And yes, this all can be placed in an FPGA.
It's all about co-development. You guys (as the driver developers) should tell us (the hardware developers) what you need, and how you want it. Now, please rethink your comments ....
This might be a good joined project; open source software and hardware co-developing. Ahhhh, what a dream ....
Cheers,
Richard
More about a computer video card
It occurs to me that during a computer's boot process the System BIOS first gives some control to the video card. Well, the video card has DMA to the system, right? It should be able to communicate through the motherboard's "chipset" to directly access the hard drive. This means that a video card could be built having a quite-small FPGA holding boot-loader code. This might pause to ask the user what sort of drivers are desired to be loaded. The video card would have a lot of RAM, and a modest part of it would hold the drivers loaded from the hard disk. That's why a larger FPGA is not needed. Then the processor on the card "lets go", because now it is ready to perform graphics tasks in accordance with instructions from the system CPU. Indeed, the "system video drivers" could be little more than a list of all possible such instructions, along with a way of knowing when to invoke which instruction. (This list might in turn depend on which drivers were loaded by the GPU.) The GPU does the rest.
Um
You're going to have a grand old time figuring out the structure of the disk and parsing the filesystem to try to pull the FPGA code off it. Introduces a nice chicken and egg problem if the process fails (ok, I can't get video, so how do I fix my corrupt filesystem so I can get video?)
Flash memory on the video card to store the FPGA configuration stream is the most reasonable and cheap approach.
Lowest Common Denominator (failsafe)
Most video cards are still backwards-compatible with ancient 80x25 pure-character text display. No reason to not have that, especially since can resolve the chicken/egg problem. Regarding file system, possibly could be specified during initial menu choice of driver. Yes, that would mean a bigger boot-loader. But the driver itself should be put on the root directory (simplifies access), and consist of a single file. The video card would load the whole file into a buffer, move the subsection wanted by the user into the main GPU-program-code area of RAM, and ignore (overwrite later) the rest.
3d acceleration would be pivotal
It would have to have good 3d acceleration capabilities. I gotta have my UT2K4/5/whatever year it is... and I'm tired of having it crash in Wondoesntwork XP (xp stands for "Xtra Pissed-off).
as for price, $250-300 is about my limit.
here's a customer who's willing to buy, if you guys deliver. ^_^
Open Source Friendly Graphics Card - Marketability
I have a couple ideas to point you toward with regards to marketability of this product:
1) Focus your efforts on designing a free and open source graphics card around the Corporate Linux Market, while thus keeping the home user market in mind.
2) Focus on overseas markets in countries that are widely adopting linux as their OS of choice. ie government, large coporation, and media coporations that use linux.
3) Design 3 graphics cards; one: for low end market, two: for middle market, and three: for high end market around the same design just with extra features and benefits with higher end of the graphics card.
4) Keep final retail sales price slightly cheaper then other non-open graphics card in accordance to each of the 3 levels of graphics card previously mentioned to ensure it's appealing in cost to those large previously mentioned organizations.
5) Maintain quality development of software for the graphics card for it's assigned lifespan, usually until the relase of a new products.
Sincerely,
Peter Canada
Overseas countires tend to be
Overseas countires tend to be price sensitive.
They also tend to have local video card producers.
Not really true...
I can attest to that not being true.
I'm from India - and we sure as hell don't have any local producers. Neither would most other third-world countries.
Simple video card is not enough
There's no way you can compete with the likes of NVidia and ATI if you're trying to develop a video card. It needs to be more than that.
First, you're describing a closed video card with open interface specifications, not an open video card. I think everything about the card needs to be open for it to be a significant advantage over cheaper competing cards. Money is made on production of the hardware.
The FPGA aspect is why this is important. You want the FPGA code to be completely open, so that anybody can add functionality. Only then can your card be more than a simple video card. You've got a PCI card with a powerful FPGA, RAM and a VGA out. It should also have an expansion port that connects directly with free IO pins on the FPGA.
This way, not only can it be used as an open video card, but it also is an easy way to add an FPGA to any computer. Its code being fully open, people can develop other applications for the card. Crypto acceleration, perhaps. And through the expansion port, it can become a powerful interface to many other things. You could design daughtercards for that IO port.
Make it an FPGA card, fully programmable, with video-out capabilities and an expansion port. Then you have a chance.
Problem
Just because the FPGA code is open doesn't mean just anyone can hack on it. FPGA bitstreams are heavily guarded industry secrets, so there will likely never be third party tools to produce them. Therefore, unless you go with Xilinx or one of the few vendors who even bother to produce Linux ports of their FPGA development software, you'll get to develop the FPGA stuff on the vendor's terms -- which means on Windows with proprietary software.
3d first
I agree. opengl first. Then we can have X on GL. And then it will become 'The' card for linux. There are how many linux pc`s out there? Less than a million?
enough 3d
I think its better to accelerate render through dri. This way we dont need an xserver running. Just enough 3d to accelerate render and do the compositing of top level windows in hardware. All clients will then have direct access to their own draw buffers without going through an xserver. That would be a good start.
We better start somewhere...
I don't want to sound off-subject but...
Don't you think that just not trying to do it is a great way to make the whole thing fail?
I mean.. ATI/Nvidia aren't doing anything to bring some real performance to linux... the more we wait for starting to work on it, the more behind we'll be compared to these 2 brands.
I'm a student in electronics... although I just started, and I'm only a kind of "experienced" beginner, I know that ppl like me would like to get involved in those kind of projects.
Some ppl like to create little robots, or fast lil cars, but I prefer creating usefull things. Why not starting a website? Do you need a server? do you need something? let's just try to start something...
PP
Do a freedom auction.
This is the idea. Right now ATI and NVIDIA and any other 3d card manufacturer out there feels that it is not in their best interest to reveal these specs. This doesn't make sense because
1. If a company wants to reverse engineer another company's BIOS it can do it.
2. If a company wants to reverse engineer another company's driver it can do it.
So the reason for hiding these specs is security through obscurity. Not a good reason.
Let's give them a good reason to open source their software. Let's use Money!
So we (as in the Open Source Community) hold a BIOS freedom drive. People put money towards freeing the software of a video card. Any card manufacture can participate. Cards are choosen by eople voting with their dollars as to which two (2) cards they want free. This allows overlap and more compitition between manufactures. The first manufacturer to release the source code under the GPL get's the kitty. The other manufacture get's nothing.
Remember Blender, (the 3d modeling program), when it was opensourced for 100K. The company couldn't make a profit from the software, and decided to get a bit of their money back. They got it back in 3 months. Blender is a little side project compared to video cards. I'm fairly certain Video cards can get a wee bit more money.
GO FOR IT!
Success could be a bad thing :-)
(tongue firmly in cheek) Best case scenario, you produce and sell loads of your Freedom VGA (whatever) card @ $100. So many, in fact, you produce a blip on a sales chart at a major Evil Competitor.
So they do what you do: Produce an EvilLinux open source card and manufacture it for $50 bucks. Freedom VGA Squashed like a bug. Evil Competitor wins.
Maybe you should just send EvilCompetitor your CV now? :-)
So what?
The goal of this isn't to make a profit, it's to create an open video card. If one of the big players decides to step in and do it, then so be it. Yes, a profit is required to run the business, but if the business isn't required then neither is the profit.
Solid way to show your CEO it'll work (and make it work)
I don't know very much about business, so this will need somebody else to fill in details, make corrections, or even confirm the soundness of the idea.
My recommendation is to set up a location (website, e.g.) where people can make payments in escrow, and once you've got enough customers to ensure a profit you can offer your boss a guaranteed profit. Then development and production can go ahead, purchasers' fees will be collected and product delivered (after which any further company-supported product development can take place at the CEO's whim). If there's insufficient interest to justify going ahead with the project, all the potential consumers keep their money and only the minimal effort of setting up a portal has been sacrificed.
I've seen this done at Fender Forum, where the site operators teamed with Fender to offer a limited edition custom guitar (designed by and for forum members) through a program that Fender offered, which required a minimum of guaranteed sales to go ahead. This Open Card is obviously more ambitious, but the same principles should apply.
I hope you find a way to get this thing to work, it's very exciting and I'd definitely buy a card, at any non-extortionate cost. FWIW, I consider 3d a near-necessity, and think cost and stability are key factors (at least in the early going).
Thanks a ton for proposing the idea, and here's to the future of the Open Card!
(1) Would the sales volumes o
(1) Would the sales volumes of this product be enough to make it worth producing (ie. profitable)?
If you do it right, I'd buy it. If you build a P. O. S. no one will buy it.
(2) How much would you be willing to pay for it?
If it's a standard 2D board, $35 - $50. I'm pretty sure there's stuff in a bargain bin somewhere capable of that.
(3) How do you feel about the choice of neglecting 3D performance as a priority? How important is 3D performance? In what cases is it not?
You plan to neglect 3D? That's just suicide. You'd bankrupt the company.
3D is king. Blow that, you blow everything on this idea. 2D-only has failed to cut the mustard since before 3dfx got gobbled up. I'd rather stick with my mother boards' f'ing on board S3 if you neglect 3D.
(4) How much extra would you be willing to pay for excellent 3D performance?
$150 - $200 US for a capable mid-range 3D card. If you can produce an open source card that can compete with, or beat, nVidia and ATI cards at the upper end, I'd be willing to pay $500 - $600 US. $1000 max. But you gotta kick some ass. Period.
(5) What's most important to you, performance, price, or stability?
Performance and Stability. Price is easier to digest if the other two live up to expectation and desire.
competitive advantage
I thing opennes is a big plus but not the argument that will sell it unless you have contract with somebody who want to build thousands of devices with your card.
I would pay 10% more for 3D card with similar performance as nVidia or ATI cards have when we speek about card between 100 and 200 dollars. And I'm pretty sure I'm not alone. Bring better performance for the same price, better stability, and average gamer is yours. Have one model for enthusiasts willing to pay for having better fps than their rivals. Good OpenGL support is crucial -- nobody will buy 2D card in todays. With good marketing a dealers you can make it.
binary_runner
More generalised advantages....
Please excuse me if this sounds 'ranty' - I'm excited about this idea and have brainstormed a bit here :P
There could be enormous benefit to be had in an open firmware board on a high bandwidth bus to the cpu. I'm thinking of course that if we have reconfigurable hardware in the system, why not offload complexity from the kernel/cpu into the hardware? Things that could be good:
* Plugin interface so software can load it's own "hardware"
* Kernel scheduler in hardware
* video card (if you're using up the only high bandwidth slot, this is useful even if it's only lowly 2d - benefit, can reconfigure for additional processing that's application specific instead of producing a massivly powerful generic 3d ASIC)
* Generic highspeed IO - toss a high bandwidth ADC on the board and you have comparitivly world class CRO and spectrum analyser capabilities
* digital tv capture (falls under the generic highspeed io with a qam decoder tossed on)
* compile the 'gnu radio' software radio for the above interface (this is a killer app right here!)
* could become cost effective to use the generic IO interface to connect up board(s) with nothing but ram+cpu for massive parallel processing given the host system is already running and well controlled. No need to have overhead of an OS per pair of CPUs as a lot of clusters do thesedays.
* Hardware encryption engine (this is going to become more important as network speeds increase way beyond the abilities of generic CPU's to keep up)
That's just off the top of my head in about 5 minutes. I'm sure there's THOUSANDS of applications that would make this idea extremely cost effective. I can imagine a linux box with 6 of these cards in it if you've got enough PCI(e) bandwidth (not there yet, but soon, hopefully!).
Summary:
* "make the hardware, they will come" approach.
* Make it generic, minimise work on firmware and interfaces.
* Open everything, firmware, devtools, etc
* Use as big an FPGA as possible (multiple FPGA's?).
* Create AGP, PCI & PCIe versions (future work?).
* Sell the hardware cheap to encourage the above ideas to be implemented (current PCI FPGA boards are not even close to cheap!).
* Donate the gear & devkit to core kernel programmers, and provide support to get them excited about programmable hardware and it's possibilities. Presume it will be a volume product based on 'every linux box needing one to run *fast*'
I'd be very interested to hear more ideas/opinions - please email me. a_neb at hotmail dot com.
Ben.
How About a Card Full of Sockets?
Not software communication-sockets! A 2048-bit socket into which the GPU is plugged. The actual GPU might be 32 or 64 bits at start (cheap!), but future improved versions would plug into the same socket and use more of the waiting pinholes. In a graphics-business model, the goal is to profit from selling chips. Sure, selling boards may offer a bigger profit margin, but also adds more risk. This way the hardware vendor can sell one cheap board (almost "bare" except for sockets) AND many generations of GPU for that one board.
An equivalently upgradeable socket for the clock-speed circuitry and memory controller. DIMM sockets for standard RAM, so the board could be sold with none, yet all buyers can get exactly what amount they want, be it 32MB or 4GB. At least two MOLEX connectors for extra power from the system power supply, as needed (probably none needed at first).
A socket for the chip that communicates with the motherboard. A socket/slot-sdaptor that plugs into the PCI or AGP or PCI-X (or even VESA-local-bus) motherboard slot, INTO WHICH this video card is plugged. That makes this card suitable for a great many platforms with no re-engineering (just select proper communications chip with chosen slot-adaptor).
An expansion-bus socket so multiple boards can be connected together. A way of mounting different heat-sinks and fans, which might be called a "socket", even if it doesn't look like one. A socket (or two or maybe three) at the card-edge, into which is plugged either VGA output connector(s), and/or DVI connector(s), and/or alternative connector(s) (firewire? something yet-to-be-designed?)
Do it
As a producer of a commercial Real-Time 3D modelling package for Windows Platform - do it. And with appropriate linux community support I will work out how to release our currently commercial software and code into the Linux community. Proviso the card must have 3D support at least to GeForce MX440 or Radeon 9000 level or even TNT 2 with a GPU....
emails to Email me your thoughts...visit for info on our product
Lots of color (not an engineer)
I'll agree that 2D is a subset of 3D. I like all the goodies 3D gives you practically for free, or very very easily (like resolution independence).
However, if you're going pure 2D, there's something that other cards aren't doing, and maybe it's cost-prohibitive for a 3D/2D hybrid. Really bitching color depth. I mean, 64-bit to 128-bit RGBA color. I know this doesn't make much impact on the actual display, but for internal operations (layering forty or fifty layers for compositing) it would rock. Such a 2D focused card could have a market in film, artists, and print shops. It would be a lot easier for Free Software to take advantage of this: The question is, how much work needs to be done to embrace it? What would it take for FilmGimp to run all its processing through an external card?
Perks for vector graphics are a big plus.
Free Software Friendly Graphics Card
I would be willing to drop US $100 on this card. On the proviso it offered superb 2d performance and at least mached ATI/Nvidias low end 3d oferings. Much like Kurt Wall said ¨simply to vote with my wallet¨.
I don´t know how realisitic my expectations are, but there is no point developing an expensive paperweight.
Madness...
I've just read through this thread and I've been stunned by the ignorance of the posters. Here's my thoughts:
2D card: Yep, that can be done. No question.
An card tuned for X which support built into every Linux distribution is probably a nice thing to have, especially if it can do high resolutions with very clean signal output. Matrox used to make a living by selling good 2D cards to professionals who didn't really want 3D. This is the business model to follow.
3D support: Forget it. You simply won't be able to do it well enough.
Explanation: 3D needs two things...
a) Vertex transforms - no problem, just do it on the host CPU.
b) Basterization - Texture mapping/shading/depth testing, etc. The biggest FPGA available simply doesn't have enough silicon to do a DX9-generation card. Yes you could do something "basic" but there's no market for that given that it would double or triple the cost of the card.
Your only hope for success is to make a 2D card using the smallest FPGA you can get away with. This will get a cheap product out the door in a minimal timeframe and allow you to get a feel for the market. Maybe some clever hacker will add minimal 3D support, maybe not. That's not your problem.
For 3D, I'd put a special connector on the card for "3D expansion". Personally I predict the "3D expansion" will never happen but at least you'll have saved a huge amount of development cost if you do it that way.
laptop users?
just wondering ... what alternative would have laptop users? none! because there is no laptop that has an exchangable graphics chip :-(
http://www.alienware.com/
They have some sort of switchable graphics module
Cardbus
Laptops have Cardbus slots. Its characteristics are essentially identical to PCI. A cardbus video card would be interesting, but difficult to make because of the small form factor and limited power supply.
Reconfigurable processor array as GPU for graphics card
It might be checked whether a reconfigurable processor array with multiple ALUs might not be a better appoach for open source graphics cards. Such a GPU might provide high flexibility, much processing power and low heat.
E.g. the company 'PACT' provides such single chip processor arrays:
http://www.pactcorp.com
This is *not* a Videocard
This is *not* a Video card with an FPGA, this is an FPGA-card with Video-out capabilities; that is: a customary programmable FPGA board at the price of a mid-range Graphic card. The VGA-core (2D or 3D doesn't matter a bit) is really nothing more than a demo application and probably the first thing which gets replaced when this baby is put to the use it is meant for: video- and signal processing, I/O+control applications and custom hardware acceleration (crypto, compression, ECC/FEC, you name it ...).
See that I can plug in a camera and those video pattern-recognition tasks which now require custom built DSP- or FPGA-boards can suddenly be run on commodity hardware. Attach a micropohone, and we're talking about next generation PC speech recognition. Add some spare I/O-pins and get 1us response times for your hard-realtime applications by "hard-wiring" critical IRQ-handlers on the FPGA.
The potential for bringing FPGAs to the PC mass market is HUGE and even more so in the context of OpenSource. Once supported by the OS, resource demanding programs might ship with their own FPGA acceleration modules. This product might have the potential of becoming the standard for this new technology.
yes but...
Make an FPGA commodity card will be a great interrest BUT there will be a lot of problem around it. You need an FPGA + memory. That's pretty easy.
But you also need many kind of IO, and i am pretty sur that the connector will not be the one you need (too compact to be used by hobbyst or too large to pass high frequency signal....).
If you want to do crypto, you need ethernet adaptator on board to be really efficient.
If you need signal processing (audio, video, or oscilloscope) you need different kind of ADC.
If you want to be connected to outside word, you need some serial link, like RS232, RS4..., can BUS, I²C bus, 1553 bus ....
So it could be very hard to defined a unique connector to cover all of this.
ah, but...
Or you could have a universal interface into which plugged whatever type of connector you need. If you need ethernet, get an ethernet connector and plug it in. Need video? Get one and plug it in. RS232? You get the idea.
Rather than having all these connectors on the board, make it modular. Whatever interface is required can be manufactured seperately and then bought and plugged into the board.
Personally...
Personally I would buy it if it had decent 3D support. 2D is pointless, any old graphics card will do that, even nVidia cards can do acceptable 2D with open source drivers. My current Matrox G200 has good open source 3D drivers, but performance can't keep up with current games. So, to get me to buy it, if definitely has to be better than the G200, or even the G4x0, AFAIK they are just as well supported. Otherwise I could just get one of those.
So, this means a rather expensive card I assume, and I really don't think it will work. We have people who buy nVidia cards "because of nVidia's great Linux support", even though ATi actually have open source drivers. Those people really don't care, they would even run Windows if that meant they could get two more frames per second.
You're basically stuck between a rock and a hard place. On one side, you have every 2D capable card ever produced, and on the other you have the gamers who don't care about source, only about frames per second. In between you have the only group really interested in this project (IMHO), the few "fanatics" that actually care about open source drivers, AND want to play a game once or twice a week, thus requiring more than an "you can have it for picking it up" 2D card. All three of us.
Cool idea, but...
Here's where I'm stuck at: I dual boot my system so I can play games, and do work. I'd need a card that does several things and I just don't think it would be economicly feesable for you guys to produce such a card this early in the game.
Things I need
This just isn't gonna happen, especially not off the bat. Sorry to say, but I don't have the money to spend on a card just to support a cause. I know I'm a bit of a fringe user, I do in fact represent a lot of the population of gamers.
Don't make another card, build a Box.
One strategy to reduce risk would be to increase the utility of the project :
Don't build just a card, build a standalone Gigabit networked box.
Build a small sized motherboard with Processor and inbuilt Graphics, Sound, USB and Network.
Use a AMD64 or some other processor with hyper transport like bus, and connect the bus as
direct as possible to the Graphics, Sound and Network etc subsystems.
Bypassing the AGP/PCI[-X] bus will deliver better performance and avoid a few patent claims.
Don't bother with any IDE/SATA/SCSI Drive, PCI bus or Non USB[1.1/2] legacy device support.
Have it boot off flashbios and PXE/Etherboot or via a USB device.
Have two * one Gigabit Ethernet network ports as standard, with one port able to
pass though packets from the other, making daisy chaining possible.
Have it capable of adding up to 4gig of standard DDR2 memory.
For display output include DVI plus RGB/S-Video/AV Video PLUS
the ability to send the digital video stream out over Ethernet packets.
The latter ability gives the video the ability to create virtual displays,
Include the ability to receive and mix in Ethernet packet video from other boxes.
For audio output , include optical output plus 5.1 channel sound. Include the
same ability to in/output stream out over Ethernet packets.
It can function as a business graphic remote LTSP/X terminal,
A networked high performance media center/VOIP for HD Displays,
or with enough memory. a diskless workstation,
or with good enough OpenGL performance, an X-Box killing Games Console,
or as a node for a Beowulf multimedia system.
David Mohring, Aka NZheretic
David Mohring, Aka NZheretic
David Mohring, Aka NZheretic wrote:
This is an excellent approach --- I would buy this in a flash. The idea of "Want more speed? Daisy chain another box." is terrific in principle. (There are hard issues, but we'd tackle them.)
Leave off the sound though, since we already have fully open sound cards. As to which CPU to use, the choice should be based on MIPS/watt ... **FAR** better to use Strongarm or Xscale, maybe even two or four of them, instead of an Intel/AMD power guzzler.
Morg.
XV, XRender and Dual(tripple) view
I'd buy a 100$ card if it supports/accelerates at least:
XV - even better some MPEG? acceleration so that I could play Divx on a low-performance CPU (EPIA)
XRender - (keith packard would know whats's needed)
Fanless - silent, silent, silent
Dual (or even tripple) view - I want to be able to start 2(3) completelly separate X servers on each view(monitor). Add some USB mice and keyboards - the 100$ card has saved an(two) additional computers :)
crossplatform - works on x86, ppc, sparc etc.
Video
I agree that it would be better to start with something smaller instead of 3D. How about a nice 2D core with hardware colorspace conversion, scaling and rotation, and packed<->planar conversion?
I would pay $300
For ANY triple head video card that supports 3 seperate X servers, plays video nicely(DVD's) and runs on an SMP box with a 2.6.x linux kernel. The rest is lagniappe. Matrox backtracked on their opensource path and I cant find anyone who does tripple head video with linux support.
Heh
You won't find any graphics card which will give you more than one X server without going to multiple cores (ala multi-G200 cards and such). The best you can do is separate X screens (non-Xinerama/mergedfb) on a single X display (:0.0, :0.1, etc).
All the multihead video cards have multiple CRTCs and DACs for the multiple heads, but only 1 physical card, so you can't program the individual heads as separate units, except for setting up the CRTC display timings and pointing that CRTC to a window in memory for the head.
You can't run 3 X servers simultaneously onscreen because 3 X drivers wouldn't be able to share the card (being unaware that each other one is also banging on the registers). You could run them on different VTs, but what's a point, you can do that with anything...
Some basic thoughts..
AFAICS, the basic question is how to get sustained sales even in the future for the card (that is: it's successors). (Even if you get "enough" sales in the beginning, I suppose you had to get sales also in the long run to pay the devepoment costs.)
Here I'm supposing that you can't compete with nVidia/ATi at the 3D performance market (neither at the top or value segment). At least in forseeable future.
Therefore the critical "sales point" would be: *functions*. That is: things you, as a developer/user, could do with the card you can't do with proprietary cards.
Sole hardware functions would not be successful long, as I suppose nVidia/ATi would develope their own version of these in a short time.
The functions should be such that they depends on the many open/free source developers innovation capacity (that prorietary vendors can't catch up with).
With my limited knowledge I can't say what these (the functions) would be like, but I think they should be very versatile.
Now, to answer your questions shortly:
My preference as a user of 3D games (Windows) and Linux would be one card with very good (not neccessarely top) 3D performance and also work *very* stable in 2D at both Windows and, especially, Linux. (And good 2D performance also.)
For that I would pay what my current card would cost as new (a Radeon 9600 Pro type) plus at least 100 - 150 percent (depending on performance).
Alternatively, I this cannot be done, I would think of an two card (= two machine) solution:
* A card for 3D gaming, e g from current nVidia/ATi line. (Maybe my current card.)
* A card for 2D "office", developement and administrative (system operations) work. This should be *very* stable, function complete and compatible. And preferably (as mentioned above) have some extra functions and also maybe possibilities like dual-head etc.
For this I would pay maybe up to what a Radeon 9600 Pro type cost today plus > 50 percent. (This would be depending on *how* stable and future compatible the card(s) would show up to be.)
(I'm referring the price to the Radeon card becuase I'm not living in US and therefore have maybe other priceranges to look at.)
Forget about 3d support
I love the idea but :( ...
It will be next to impossible to produce a high performance 3d card. By a 3d card I assume you mean a full programmable chip supporting OpenGL 2.0 . If its is not fully programmable, and supports the fixed pipeline then I really don't think it would be of any use, not many new apps that would support that. By high performance I would assume it gets good fps in running one of the latest games at high detail. But it simply is not an easy task to achieve that. Even nVidia screwed up its previous generation and it was really difficult (optimization wise) to get good performance. They need instruction schedulers to get maximum parallelization out of the hardware for running shaders because they have multiple alu in a single pipe.
So I'd say, very sadly, interesting 3d support is out of the question.
Start as a OS Project
Why not start an OpenCores project for this? Put in some of your own free time and resources to sketch up an outline of what you want to do, some real costings, etc. Look at setting up one of the Escrow payment systems mentioned. THEN go talk to your employers and say that you can either do it yourself in your own time and pocket the money or they can get involved. That way you don't go to them with an idea, you got to them with a project and the promise of some real money.
Over all I'd try to use as many standard components as possible. Perhaps the approach used in the PS2 of developing a custom co-processor for an standard MIPS chip is the way to go.
If I can get it to run a couple of monitors off one of my PCI based SPARC machines then sign me up for a couple - I guess $150 each or so.
If you want to make a profit...
Don't just make this card available to OSS users. Have it run well under Windows too - that's a huge market that could support the project.
If this card ran very well on Linux (frame buffer) and X.org, and had decent 3d performance, I'd pay up to $300 CDN for it.
I think this is a phenomenal idea. If this card is successful, maybe other manufacturers will realize there's actually a market for video cards in the OSS world and will start being more cooperative when it comes to drivers. Hopefully manufacturers of other hardware prodcuts will take notice too.
I really hope you follow through with this idea!
Petiton ATI/nVidia to release the spec on an older chip
While this is not strictly on topic, have people considered petitioning ATI to publish *complete* documentation on an older radeon chip?
I believe that if everyone can download the spec off the manufacturers' website we would make HUGE progress with graphics under Linux. One of the barriers to entry for Linux graphics driver developers is getting the manufacturer to give them the spec (even under NDA).
BTW: A couple of years ago I had access to the register spec of the Rage 128 and spent a couple of weeks spare time hacking it. It ends up that even an old chip like the R128 is *very* flexible. I have verified it is possible to perform 2D alpha blending, rotation, etc. with clever programming of the hardware and without having to use the 3D setup/triangle engine.
....
What the point of supporting old hardware that can't be purchased any more ?
Even if the open card is weak in 3D, the advance in memory speed and size permit a lot of improvement. 2D performance could be much higher (nice DVD playback, X.org extention,...).