View Single Post
Old 02-26-03, 07:44 PM   #18
Registered User
Join Date: Aug 2002
Location: NC, US
Posts: 55

This is a long response. I will make one point up front: I would not consider nVidia "at fault" if it just said it didn't support Linux. It is their perrogative to make a decision, and while I would be disappointed with that decision, I would have far less argument with that than with claiming to support Linux but not supporting AGPGART.

Originally posted by DustSmoke
I'm confused.

Why is it nVidia's fault AGPGART doesn't support nforce2? Why is it nVidia's fault ATI drivers wont run in PCI mode? Why is it nVidia's fault they don't have an AGP module that programs an ATI card?
I didn't necessarily assert that it was nVidia's fault that AGPGART does support the nForce 1/2, but I suspect that's the case. If you look, I think you'll find that most of the hardware supported by AGPGART is supported because the hardware manufacturers provided the information necessary for support to be added. If nVidia hamstrings developers by refusing to release this information, then it is "at fault" for doing so.

To be fair, nVidia is not in any way obligated to provide such information. However, it is at least a little backhanded to claim strong Linux support if the support is not there for the board and you refuse to contribute to getting that support written. In my mind, if you intend to claim credible Linux support, you at the very least need to release the hardware specs necessary for that support to be written. To the extent that a company claims credible Linux support but do not meet this basic (and generous) test, it is lying.

Why is it nVidia's fault ATI hasn't made an AGP module as a workaround for thier GPU's.
In short, ATI is not "at fault" for this scenario because it is not ATI's job to write AGP support for the nForce 1/2. One reasonable assumption that a video card developer can reasonably make is that the system to which it will be installed has working AGP hardware with working software support for that hardware. It is not the video card developer's fault if this assumption is not met.

This is not to say that ATI can't put in extra work to support some of the systems that don't meet these assumptions, but this type of effort is "going the extra mile". It's a lot like a mark/grade in school: if you meet the basic requirements, you get a passing, but not spectacular grade. If you far surpass the basic requirements, you get a strong grade. If you don't meet the requirements, you fail.

In not providing its own AGP support for the nForce 1/2, ATI has met the basic requirements, and thus gets a passing grade. However, it has not exceeded the requirements, so the mark isn't particularly high.

In contrast, if you claim Linux support for a motherboard, it is reasonable to assume that the AGP slot has the software support to work with a wide range of video hardware. If you don't meet this requirement, you get a failing mark--you are considered "at fault".

If somebody could clear these things up for me in the relation to how the linux kernel actually works, it would be greatly appreciated. Because all I know (which may not be much) the nVidia GPU drivers have to bypass the built in kernel support to use NVAGP at all. How can nVidia expect ATI to write drivers for NVAGP?
Well, in the ideal world, there would be two types of kernel modules used in video support: the AGP module and the video card modules. For the world to remain ideal, any AGP module would work with any video card module, and vice versa. You can almost think of the AGP module and the video card module as gears that have to mesh. To make sure that the gears mesh properly, AGP modules and video card modules need to be interchangeable.

The AGPGART module meshes with all video card modules, so it does its job properly.

In contrast, NVAGP is grafted into the nVidia drivers. As a result, it won't "mesh" with anything else and is not interchangeable. To this extent if fails to meet the ideal.

In short, the answer to your question, "How can nVidia expect ATI to write drivers for NVAGP?", is that they can't. NVidia has written NVAGP as a stop gap for when there are problems with AGPGART. This is extra effor that I commend, and I do not fault nVidia for wanting to retain the benefits of this effort.

However, if it is blocking AGPGART from working with the nForce 1/2 chipsets, nVidia is intentionally trying to make the AGPGART module less interchangeable. In short, nVidia is trying to symie the ideal solution for its own business interests.

While this behavior isn't the worse possible, it is still bad. If you read Foxtrot, you may recall the cartoon where Jason wrote his own flavor of Windows. When his version ("Jasondows") found Netscape, it would respond with the following dialog, "Netscape detected and deleted. Hit this button to apologize." While withholding information needed to update AGPGART is not quite as extreme as this, the intent is similar.

Maybe if you guys are really concerned about this subject in everything i've seen stated here, maybe you shouldn't be using linux. Or maybe you should spend some more time over at bashing the developers there for the architecture of it all.
While I can't say for sure, it does not appear to be the kernel developers' fault. Telling someone to write support for undocumented software can be a lot like telling someone to get something out of a safe without giving them the combination. The task is not an impossible one, but it takes an awful lot of work, and something (in this case, the hardware) can be broken a few times in the process.

On another note, bashing kernel developers is a pretty silly idea in any case. It would be a lot like walking to somone they should give money to the government above and beyond their taxes. The argument is pretty specious to begin with, and more so if the one doing the talking hasn't made his or her own contributions to open source (ie, doesn't even pay taxes).

You do start with a point that does make sense though: nVidia might be the wrong choice for a dedicated Linux user and vice versa. Many here have already declared themselves more dedicate Linux users than nVidia users and decided to avoid nVidia hardware unless/until their policies change (if they are, in fact, withholding information). It is not as much of an issue for me at this point, since I bought an nForce board and a GF4Ti together and intend to replace them at the same time. However, unless I see improvement on the AGPGART front, I'll likewise go elsewhere when the time for replacement does come.

In short, dissatisfaction with the matchup of Linux and nVidia can be cured by ditching nVidia just as easily as by ditching Linux. Many prefer to ditch the former.

I'd just like a simple answer, yes I think the subject sucks and I'm on no sides, but from everything I know about linux, I can't find anywhere how nVidia is supposed to support ATI's GPU drivers without building thier own linux kernel for you to use. (or a patch against the kernel which would be a NIGHTMARE!) THEY CALL AGPGART ALONE!
The primary point is that nVidia doesn't necessarily HAVE to write anything. They just need to provide information to those interested in doing so for them.

One should also consider that if relying on AGPGART is slacking off, nVidia is slacking off in every case where it doesn't recommend using NVAGP.

BTW, if you did want to write a closed-source AGP module to work with the nForce, you could resolve the issue by making its interface compatible with that of AGPGART. That is not necessarily terribly hard.

(by the way, this is not windows, just in case you thought drivers worked like that under linux. Windows is standardized for things like this. Linux, unfortunatly is not. I bet this changes in time, but for the time being, this is how it works.)
I wouldn't say that standards don't exist, I would just argue that they are "softer". There is just more wiggle room to do something else. I would consider AGPGART the standard for AGP support. To the extent that nVidia withholds the tools necessary to achieve support under this standard, I would be disappointed with them.

maybe this will make it easier to understand, thier GPU drivers NVAGP supports these northbridges.
The following AGP chipsets are supported by NVIDIA's AGP; for all other chipsets it's recommended that you use the AGPGART module.
Let me paraphrase that statement from the readme: "If NVAGP doesn't support your chipset, use AGPGART." That's rather obvious advice for people familiar with the situation. If NVAGP support doesn't support your chipset, AGPGART is likely your only option.

It should be noted that this remark does NOT say you should automatically use NVAGP if you have one of the listed just says that NVAGP CAN work with those chipsets. Here's another relevant chunk from the readme:

[i]from nVidia's README[\I]
There are several choices for configuring the NVdriver kernel module's use of AGP: you can choose to either use NVIDIA's AGP module (NVAGP), or the AGP module that comes with the linux kernel (AGPGART). This is controlled through the "NvAGP" option in your XF86Config file:

Option "NvAgp" "0" ... disables AGP support
Option "NvAgp" "1" ... use NVAGP, if possible
Option "NvAgp" "2" ... use AGPGART, if possible
Option "NvAGP" "3" ... try AGPGART; if that fails, try NVAGP

The default is 3 (the default was 1 until after 1.0-1251).
Put simply, the default (and presumably preferred) behavior is to try AGPGART first and try to fall back to NVAGP only if AGPGART can't do the job. In short NVAGP is just a fallback. The fallback is a nice bonus, but nVidia itself seems to consider AGPGART the standard, preferred, and (in some cases) only way to access AGP.

When nVidia takes such an approach, it is a little hard to faul: ATI for supporting only AGPGART. While a bonus fallback is nice, you can't fault ATI for not providing a "bonus".

why would nvidia support all these with thier AGP module if it were SIS, VIA, ALi, AMD, or Intel's problem? And it's only flaky on some systems, not mine which is AMD761.
Put simply, they would do this only to "go the extra mile". Going to the effort to provide this fallback is exemplary for the video driver. However, the exemplary behavior on the video driver doesn't change the fact that nVidia's support for the nForce 1/2 AGP is poor.
etr is offline   Reply With Quote