Linked by Thom Holwerda on Mon 3rd Sep 2007 21:40 UTC, submitted by Michael Larabel
3D News, GL, DirectX "On the Phoronix Forums we have been running a Q&A with the developers of the Nouveau project. For those out of the loop or new to Linux, the Nouveau project aims to provide an open-source 2D/3D graphics driver for NVIDIA hardware. After collecting a number of questions from our readers, KoalaBR and Marcheu have answered these questions. The questions range from whether there will be open-source SLI support to asking if NVIDIA has ever contacted the Nouveau developers."
Order by: Score:
Good luck for this project
by Ohmay on Mon 3rd Sep 2007 22:53 UTC
Member since:

I hope that this project achieve his goals soon. For the mainstream users the nVidia driver is good enough, but nVidia is droping support for older-but-capable hardware. I've got a few years old Geforce 3 Ti200 card, that can run the new WM and Xorg capabilities very smoothly, but nVidia keep us (the [not so] old hardware users) in the "8000 series driver ghetto". The firstest releases of the 9000 series got support for that hardware, but it doesn't work well with a DVI out (a problem already appeared-and-solved in 8000 series), and the lastest releases (the ones with support for the new features) drop support.

So, again, people that resist to make unnecesary hardware update or doesn't represent a important market share are ignored before their hardware become unusable. That's the same thing for bcm43xx hardware and other stuff. This is *sad*.

So thanks a lot for the nouveau guys, and the guys from similar projects.

Edited 2007-09-03 22:56

Reply Score: 6

RE: Good luck for this project
by Obscurus on Tue 4th Sep 2007 01:11 UTC in reply to "Good luck for this project"
Obscurus Member since:

I get where you are coming from, but really, that is life. Old technology is superseded by new technology (in the case of computer graphics, very, very quickly). The burden in terms of time and effort required to support older hardware is just not worthwhile in most cases, and for linux to make serious inroads into the desktop computer OS scene, it needs to be able to support current 3D hardware through a simple driver installation if not out of the box. So the priority for the nouveau team should be to get the latest DX10/openGL3.0 cards working before worrying about obsolete hardware. It is very hard to reverse engineer drivers for 3d hardware, especially when the bulk of the market for that hardware expects full support for all of the features of the latest hardware, not stuff that is several years old.

So while I can empathise with your frustration, unless you are prepared to contribute resources to the project to enable them to work on out of date hardware, I think you will be stuck with the commercial nVidia driver for quite a while longer.

Reply Score: 3

jadeshade Member since:

I don't understand what you're trying to do with this argument - it is worthwhile for users of older or non-mainstream hardware to have these capabilities, it is for these users that an open-source solution (which can service the long tail of the market) is necessary. Why have nouveau focus on only the latest and greatest, when some just want their cards to 'work'? Your argument would make more sense if you were advocating nvidia to open source their own drivers - and I don't think that ethical quandaries over 'binary blobiness' is what's stopping linux from making inroads on the desktop OS scene.

Reply Score: 4

smitty Member since:

It seems like the most progress has been made on 6xxx and 7xxx series cards, which aren't exactly the latest and greatest - I think they are probably the most popular linux graphics cards right now. I do think you could make an argument that supporting the older cards first would be simpler and allow extensions to then work on newer cards, but I'm not sure if that is really true or not. Maybe the architecture just changes too much between releases.

Edited 2007-09-04 05:29

Reply Score: 2

RE[5]: Good luck for this project
by AdamW on Tue 4th Sep 2007 06:35 UTC in reply to "RE[4]: Good luck for this project"
AdamW Member since:

Have you read the NVIDIA driver license lately?



Reply Score: 8

Soulbender Member since:

"That's what customers want--a product that's guarenteed by somebody."

Because that was all the commercial companies are doing. Have you actually ever read an EULA? Its' pretty much just a way for the company to not take any responsability whatsoever for their product. MS, Sun, Apple, IBM etc, all the same. If something goes wrong, it's not their fault and not their responsability.

Reply Score: 7

dylansmrjones Member since:

All software come with a disclaimer. Nobody wants to take responsibility for their software product - understandably because of the many unknown factors (endless hardware+software combination and weird user behavior).

Reply Score: 5

Obscurus Member since:

Well, yes you are right in the sense that the nVidia drivers work reasonably well, and are easily installed on most distros.

The thing is, the Nouveau team will always be several steps behind nVidia, simply because they are trying to reverse engineer something. This takes considerable time, and if the Nouveau team focus on cards that are old (eg, 2 years or more), by the time they have developed a fully functional driver for it, it will be well and truly ancient, and even people clinging to old hardware may have moved on.

If you are going to reverse engineer something, start with the 8800/8600 series, because by the time you have a fully functional driver for these cards, they will be starting to look a bit old.

So yes, it is worthwhile for users of older hardware to have these drivers, but the definition of older hardware will shift, and what is bleeding edge today will be older hardware by the time you get a decent driver written for it.

Unless of course nVidia or ATI/AMD open up their drivers, or Intel actually make graphics hardware worth using...

Reply Score: 5

butters Member since:

The parent comment shows a lack of understanding of how graphics cards and most other kinds of technologies evolve through product generations. It assumes that reverse-engineering the 8 series is distinct effort compared to reverse-engineering older NVIDIA cards. This is simply not the case.

For one thing, as you can see from the article, the "reverse-engineering" is not the most resource-intensive part of the process of producing an alternative graphics driver. The Nouveau team already knows most of what they need to know about the cards. The implementation is significantly more work than the discovery of the functionality.

But more importantly, the various generations of NVIDIA cards are related to one another much like the layers of a Russian matryoshka doll. It doesn't make sense to create a driver for the 8 series without implementing the previous generations as functional subsets.

Similarly, it doesn't make sense to work from the outside in. Basic 2D comes before textures, T&L, and the various iterations of programmable shader models. Besides the engineering sensibility, very few applications use the most recent shader models. The leading-edge applications often trail the hardware by 6-12 months, and most applications are multiple generations behind.

The same marketing ploys that inform the parent have consumers buying cards with features they might not use until after they jump on the upgrade treadmill yet again. By the time applications start using the features, the graphics cabal will have long since started beating the drums that tell consumers that these cards are "starting to look a bit old".

Case in point: the latest midrange performance box recommended by Ars is under $1500 US including monitor, speakers, and input devices. This includes a $379 graphics card, equal to the CPU, motherboard, and half of the memory combined (or more than four times the cost of all of the memory).

If I didn't know better, I'd say it seemed like there might be something fishy about this conspicuous splurge on one item within a system that is otherwise quite modest.

It simply doesn't make sense to spend so much money on a graphics card for a Linux box. I can't imagine what I'd do with anything beyond a 7600GT, just about the cheapest card with dual-DVI. A hardware MPEG decoder would be nice, but as the article explains, there's currently no way to expose it to applications through X11 or OpenGL.

Plus, with quad-core CPUs reaching down into the sweetspot and many more cores on the horizon, the case for discrete accelerators in general is gradually eroding. Between Fusion, Larrabee, and SSE5, it's becoming more and more likely that the CPU will win the stream processing tug of war in the mainstream space.

I for one welcome the impending niche-ification of specialized graphics processors (discrete and integrated alike). I was never a fan of the clunky, proprietary programming models anyway, and common form factors were never designed to properly address the thermal dilemma of 130W expansion cards.

But in the meantime, the free software graphics community should ignore the hype and focus on implementing the subset of functionality (on as many cards as possible) that is likely to be the most useful for our application developers. Even Carmack is fed up with the marketing machine.

Enough is enough. The parent comment is an example of the strained logic that has been widely indoctrinated in the enthusiast community. It doesn't take a thermonuclear jet engine to enjoy a rich multimedia experience. Just some honesty and some efficient free software.

Reply Score: 10

sbergman27 Member since:

Wow! So *that's* what all those cores might be good for on a desktop.

Reply Score: 2

Obscurus Member since:

Good post, Butters.

I was actually lumping the reverse engineering process and the implementation of functions together. After all, it is not much good if you reverse engineer something if you then do nothing with that knowledge.

I agree that to the extent that graphics cards have evolved, and share older features that are a subset of newer features, you are right. If you implement a driver for an 8800GTX that fully utilises every feature of the card, it would be a relative piece of piss to adapt that driver to just about every nVidia card that has preceded it, because for the most part, all you would have to do is disable the features in the driver that earlier cards don't support. This is roughly how nVidia do it with their unified drivers AFAIK.

But this only emphasises the need to tackle the most recent hardware you can, because in doing so you can cover the widest range of cards in the market possible. Just starting with a Ti300 is not going to help that many people, because most of us have moved on to something a bit more powerful, and would expect to be able to get the same functionality from the card with FOSS drivers as they would with the proprietary ones to consider them worthwhile.

I don't think the GPU will be done away with for a long time, especially when it comes to games. You can only pack so many transistors onto one chip before you run into serious heat dissipation and quality control issues - CPUs are designed for serial processing, GPUs are designed for parallel processing, and the two functions are too different to combine into one chip adequately and affordably.

My preference would be for a drop-in GPU chip rather than an actual card. Graphics capability evolves very quickly, and it is a lot cheaper to upgrade just the graphics card for modern games, because most games are GPU limited, not CPU limited. You can keep going with the same CPU for years and still be able to play the latest games, but you need to upgrade graphics cards every 12 to 18 months to keep up. Or you can just wait patiently for games to get really cheap before you play them, as I do, and only upgrade every 4 years or so. Either way, I doubt it would be more cost effective to go with combined CPU/GPU chips - the more complex the chip, the more expensive it is.

No it doesn't take a thermonuclear jet engine to enjoy a rich multimedia experience, but if you want to build a Linux based home theatre PC that can play Blu-Ray discs with hardware h.264 decoding (HDCP DRM notwithstanding), then those features of the latest nVidia cards (the 8600 series) need to be worked on. There are a reasonable number of 3d games that run well on Linux (either natively or through Wine) provided there is a decent graphics card supporting fairly recent features available. Of course, you can use the proprietary nVidia drivers for this, but if you are insisting on open source varieties, you are out of luck at the moment, and probably for some time to come.

The best way to get the widest possible number of nVidia cards working with Nouveau drivers is to start with the 8600 series. Bear in mind also, many of the older features, like 2D acceleration, are legacy functions that will eventually disappear from graphics cards, and are increasingly not used at all in modern software, so there is a limited need to work on them.

Edited 2007-09-04 22:50

Reply Score: 2

WereCatf Member since:

Sorry but I just have to jump into to the discussion... You're thinking of the whole process in completely wrong way...You DON'T start from the top and then work your way to the bottom. You DO however start from the bottom, from the easier and smaller things and work your way towards the top. It would be pure idiocracy to just aim for the high-end stuff right from the start when you don't even have fully working 2D yet. I don't really understand your obsession with 8x00 series of cards...As all the features of earlier models are also present on the new cards you don't lose anything whatsoever when they support the older cards too!

About h.264 decoding...Well..There is no way to use the hardware functionality under Linux anyway at the moment! Xv nor XvMC do not support that, not even with the proprietary drivers. And you don't need a 8x00 card to enjoy hardware decoding of stuff. As far as I know, you could implement atleast some part of the decoding process in SM 3.0 and as such even older models be useable. Just do not expect such things to happen in a good while cos the Nouveau devs are working on a lot more important things first.

The best way to get the widest possible number of nVidia cards working with Nouveau drivers is to start with the 8600 series. Bear in mind also, many of the older features, like 2D acceleration, are legacy functions that will eventually disappear from graphics cards, and are increasingly not used at all in modern software, so there is a limited need to work on them
No, no, no, no, no! You have to implement the basic stuff first so you can't just aim that high immediately! And since you have to implement the basic stuff anyway then why artificially lock out older cards? AFAIK things like 2D graphics work the same on all the cards across the board....

2D acceleration are legacy functions and will disappear? I don't quite understand. You do know that apps don't directly utilize those features, it's X which does that. And there will always be need for 2D acceleration. Apps ARE 2D. Even if they were presented as 3D objects in a wide and rich 3D environment it would be pure madness to remove 2D acceleration from the cards as apps still need to draw things like buttons, text, toolbar and all that..

Reply Score: 1

Obscurus Member since:

I disagree. If you use a bottom up approach you will always be way behind. Older features become depreciated. Newer and better methods replace them. Ergo, start with the newer and better methods to stay in the game.

Let's remember who drives the market: MS is still the main player, and Vista is designed to use the 3D functions of the card, and only resorts to the 2D stuff if you have a lesser 3D card. Once Vista becomes the mainstream installed OS, hardware manufacturers will likely start dropping 2D acceleration on their newer cards, along with a bunch of other functions that have been superseded by better methods.

If you start with the oldest features first, you will end up putting a lot of work into features that are more likely to be obsolete or depreciated by the time you have them working. If you start from the top down, you only have to work back as far as necessary to cover the majority of use cases. The newer functions are also harder to implement, and IMO it is better to do the hard stuff first before knocking over the easy stuff.

Locking out older cards is not artificial - most people have a mid-range card that is neither particularly new or particularly old. You therefore need to work on bleeding edge hardware so that when you finally get a driver out, it will be applicable to the widest installed user base possible, otherwise the project winds up just being an exercise in catering to the minority with ancient hardware, and will be of limited interest to anyone with newer hardware.

If the nouveau drivers don't support programmable shaders, stream processing, hardware T&L, bump mapping, parallax mapping etc., they will be of little use to most people with modern software - they will use nVidia's drivers.

2D Buttons, windows etc can be drawn much faster by the 3D functions of the card - the 2D acceleration features on modern cards have not been updated in years, and will only be around for as long as 3D desktops are not the norm. As demonstrated by Vista or XGL/Compiz-Fusion, 2D apps can be rendered quite effectively without using the near-obsolete 2d functions on cards.

I am not obsessed with the 8x00 series of cards - they simply happen to be the most recent nVidia cards available. By the time Nouveau have a functional driver, these cards will be very commonplace, therefore, it makes the most sense to target the card that will be the most popular when you expect it to be finished, so that you can compete with nVidia's driver.

Competing with nVidia's driver is a desirable thing, because it will put pressure on nVidia to increase the quality of their proprietary drivers or to open up the specifications or source code. If you just piss around making drivers for obsolete functions in ancient graphics cards that hardly anyone uses any more, then nVidia will have no reason to improve their drivers beyond their current level (unless AMD or Intel come up with something special).

Directly supporting any cards other than the most recent cards available is a waste of time in my view. By all means feed back the drivers down through the range, but start with cards people actually want to use FFS!

OTOH, if you view the Nouveau project as only something for users of old hardware, then all would appear to be well. However, the proportion of people who both a) like Linux and b)refuse to upgrade their hardware more than once a decade represent a very small minority of computer users, so I'd prefer to see people working on projects that have some kind of relevance to this century at least.

Reply Score: 2

RE[2]: Good luck for this project
by Ohmay on Tue 4th Sep 2007 08:57 UTC in reply to "RE: Good luck for this project"
Ohmay Member since:

That's life, and life has sad things, what's the matter? ;-)

No, really, what I want to mean is that they drop support unnecessary. There are toons of people with this kind of cards, there are toons of people of *customers* that doesn't reserve to be treated that way. The effort necessary to keep supporting cards like that is minimum, since there's a unified driver to rule them all. I don't know the technical details, perhaps I'm wrong, but if you asked me for a reason for nVidia to drop support I will answer that people on nVidia wants to force their older customers to update their hardware.

But it's not a checked fact, and perhaps the effort necessary it's bigger than I think.

Reply Score: 1

by shiny on Mon 3rd Sep 2007 23:03 UTC
Member since:

I like this part in particular:

We are not on a crusade to burn all binary drivers. We do think however that people should have options and that other systems (like PPC) shouldn't be banned from 3D acceleration under Linux with NVidia.

No holy wars, just a sane reasoning. How refreshing ;) . I wish them a great success.

Reply Score: 13

The future is open
by porcel on Tue 4th Sep 2007 00:34 UTC
Member since:

Distributions should pull together to get Nouveau to a really decent state. If each distribution devoted an engineer half time to it, we could soon not need Nvidia.

Of course, it would be even better if Nvidia actually decided to support the Nouveau efforts, but I really do not see that happening.

The nvidia card in my workstation is working well enough. My laptop has an ATI card, which is all but useless. Eventually, I hope to replace this laptop with an all-round Intel laptop (graphic, wireless ,etc). My brother has an Intel laptop and it is a thing of beauty to have everything work out of the box with no effort.

If Intel were to release a stand-alone card for PCs with open source drivers, I would also replace my NVIDIA card with it.

I am currently working with a hardware company to offer Linux-based workstations and nothing would please us more than not to have to worry about NVidia's proprietary drivers "as good" as they are.

In the old days, Matrox G550 cards were great for Linux as they supported 3d, Xinerama and more. Sadly, Matrox has stopped offering competitively priced products that perform half-way decently.

Edited 2007-09-04 00:35

Reply Score: 3

RE: The future is open
by Vanders on Tue 4th Sep 2007 08:06 UTC in reply to "The future is open"
Vanders Member since:

In the old days, Matrox G550 cards were great for Linux as they supported 3d, Xinerama and more. Sadly, Matrox has stopped offering competitively priced products that perform half-way decently.

They also stopped supporting Open Source developers, so even if they did offer consumer hardware, it wouldn't be worth purchasing it.

Reply Score: 2

RE: The future is open
by kaiwai on Tue 4th Sep 2007 11:26 UTC in reply to "The future is open"
kaiwai Member since:

Unfortunately in a ideal world all the vendors would say, 'we don't need secrets' and have all their specifications and drivers opensource and available to not only tweaking but allow those on non-x86 platforms to get the same level of support as their x86 counterparts.

Matrox was an awesome graphics card company; I owned a 450 and 550; I would have loved to see a laptop with G550 embedded on a PCI 2.0 connector, it would be awesome, especially with the great level of OpenGL support.

As for Intel - Arstechnica had some 'insights' into the future direction; lets put it this way, it is looking awesome. I would have gone for a Intel one (I'm using nVidia) but bad performance in the past from their 810 series really put me off. Maybe next time I'll purchase one with one, along with the latest wireless/chipset etc.

Reply Score: 2

v pathetic
by losethos on Tue 4th Sep 2007 13:06 UTC
RE: pathetic
by Soulbender on Tue 4th Sep 2007 13:37 UTC in reply to "pathetic"
Soulbender Member since:

Commercial products have certain guarentees.

Why don't you read an EULA or try to get MS (for example) to compensate you if a bug in Windows wiped out your music collection. Good luck with that.

I don't know what they are

"I don't know" are the keywords here.

"but you can get your money back if it doesn't work.

You mean just like how you'd get your money back if you bought a boxed Linux distro in a store and you took it back?

You guys are stupified as to why linux is not as big as Windows.

Who's confused about this? Who's even talking about this?

Reply Score: 9