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."
Thread beginning with comment 268380
To view parent comment, click here.
To read all comments associated with this story, please click here.
butters
Member since:
2005-07-08

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 Parent Bookmark Score: 10

sbergman27 Member since:
2005-07-24

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

Reply Parent Bookmark Score: 2

Obscurus Member since:
2006-04-20

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 Parent Bookmark Score: 2

WereCatf Member since:
2006-02-15

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 Parent Bookmark Score: 1