NVPerfKit is a comprehensive suite of performance tools to help debug and profile OpenGL and Direct3D applications. It gives you access to low-level performance counters inside the driver and hardware counters inside the GPU itself. The counters can be used to determine exactly how your application is using the GPU, identify performance issues, and confirm that performance problems have been resolved.
http://developer.nvidia.com/NVPerfKit#ggviewer-offsite-nav-12465376
Will someone please just tell me, why can’t nVidia hire some Linux kernel developers and some Open and FreeBSD people to help work on the source code for graphics drivers? I say to hire them, so that they can mix the BSD and Linux kernels with the graphics code so that they can see what needs to be changed in graphics code and what needs to be changed in the kernels to work happy together, but nVidia does not have to give any of the source code away. Just make the BSD and Linux developers legally banned from sharing nVidia source, but can release it in binary form for download for their OS’s. The video cards would be safe and fully functional, and the OS’s would be able to support them 100% if the head developers have the source for making binaries with it. Is that at all possible, am I so wrong for thinking such a thing?
Maybe Someone would be Mighty Sore if nVidia Made Significant changes to their Mondo Sux0rz business model.
Monopolistic Speculation aside, some kind of community-based, donation-driven project hosted by someone with the clout of, say, OSDL, is where I’d say the best chances lay.
Not sure about this, but they might have agreements with other companies that prevent them from doing so, like for the opengl spec or something.
Obeying your agreements is far more important than having open source drivers.
Not sure about this, but they might have agreements with other companies that prevent them from doing so, like for the opengl spec or something.
Well OpenGL is open, so presumably that’s not the issue – I’m pretty sure they’ve said that there are some things in their driver that they aren’t allowed to open though.
Companies like Intel and SGI have tons of IP in graphics processors. That’s probably what they’re not allowed to open up.
Notice that we are not asking for neither their hardware schematics nor their drivers that
might contain some proprietary algorithms. Those can certainly be considered IP.
We are asking ONLY for programming interface specifications.
Well I have been trying to understand how exactly can their programming interface be
really considered IP, whenever I have seen this argument it has always been presented
in a handwaving manner without going into any deeper explanation.
There certainly are some bits that can’t be opened up at this time, in general this
is probably the stuff for supporting the security by obscurity camp also known as DRM.
But you can open up everything else and keep the DRM stuff in a blob, like Intel did,
while not a solution it would still be a huge step forward.
Logically programming interface is more like a user manual, just for different kind of
users. Law doesn’t allow you to sell things without user manuals, I believe similar laws
should be passed about programming interfaces. Maybe open letter from community to
European commission that explains the issue would help somewhat. To me it seems to be
rather similar to european commission vs. MS case, we are just asking for APIs too…
The lack of documentation for other nvidias stuff than GPUs makes me believe
that it’s just their general company policy rather than having any real technical reasons.
And they might actually not have the
documentation that’s unencumbered by hardware design specifics, this would of course be just the direct result of closedness being the policy.
> We are asking ONLY for programming interface specifications.
>
> Well I have been trying to understand how exactly can
> their programming interface be really considered IP,
> whenever I have seen this argument it has always been
> presented in a handwaving manner without going into any
> deeper explanation.
The point is, if they have used IP internally for which they had to sign a contract to NOT disclose the programming interface, then they have no choice.
AFAIK the contracts about hardware IP are extremely “slaverish”, and what Microsoft presents us as their EULA today is common practice in the hardware business for a some time already.
so i guess you dont remember the whole thing about nvidia saying they couldnt release because of licensed parts from sgi, when sgi then said it was okay, and nvidia then just said: “um.. oh.. well.. hehe… we cant opensource!!!!!1oneoneeleven”
If only they’d remove those bits, release the rest of the driver and let the community replace what needs replacing..
Just make the BSD and Linux developers legally banned from sharing nVidia source, but can release it in binary form for download for their OS’s.
As I understand it, there is a big legal question mark over whether it is okay to distribute a binary-only driver for the GPLed Linux kernel. Your suggestion is pretty much what happens at present from the user’s perspective, just with developers in different places.
Incidentally, since FreeBSD doesn’t have that same restriction, is there any legal reason why they couldn’t bundle the driver with their system?
You are correct– FreeBSD team is able to freely distribute the nvidia driver, because they really don’t worry about linked derived/non-derived works. OpenBSD could, but won’t, because they can’t audit the code, and therefore can’t say whether it’s secure or not.
The problem with the GPL is that the binary blob is linked into a kernel module– That means that the kernel module being distributed is in violation of the GPL. Assuming, of course, we ever get a genuine legal opinion on what does, and doesn’t constitute a derived work. The current definition is somewhat fuzzy, and to my knowledge, has not been tested in a court of law.
Aside from that, due to the lack of a stable binary interface to the kernel, *all* kernel modules remain, essentially, a derived work, because they had to be written for that kernel.
Whether it makes sense to change, I’m not really qualified to answer. Whether this is intentional or not, I do not know. It seems to me that if a stable interface were presented for, say, video, or network drivers, then userspace drivers would be possible, which would avoid the “derived work” clause, and eliminate a number of security concerns.
Obviously, providing a mechanism to freely use binary drivers under linux would offend a number of people.
Aside from that, due to the lack of a stable binary interface to the kernel, *all* kernel modules remain, essentially, a derived work, because they had to be written for that kernel.
Current drivers get around that by providing their own stable open interface to the kernel, so that they binary blobs aren’t directly linked to a specific kernel.
“is there any legal reason why they couldn’t bundle the driver with their system?”
Yes , they havent bought the rights to distribute them with their system , due to lack of fundings and contribution by the projects users and backers.
You see all BSD problems are basically due to the License and financial problem.
People invested millions in BSD in the past , only to see there hard work being closed in other people projects , in original and derivatives due to the license.
Also there is no sustainable market with BSD , because eventually you get locked out of profiting from your own inventions or sued due to the competition not wanting you on there turf.
Bottom line is BSD is shooting itself in the foot and its not wise , not inteligent , not profitable in anyway shape or form to invest in it or contribute to it.
Will someone please just tell me, why can’t nVidia hire some Linux kernel developers and some Open and FreeBSD people to help work on the source code for graphics drivers?
Will someone please just tell me, what makes people think nVidia should do such a thing for free? It makes no business sense. Their products already sell extremely well, and the majority of their market doesn’t care about it. What *financial* motivation (since they are a business) would they have for doing this?
Will someone please just tell me, what makes people think nVidia should do such a thing for free? It makes no business sense. Their products already sell extremely well, and the majority of their market doesn’t care about it. What *financial* motivation (since they are a business) would they have for doing this?
Because no one will use their driver without using their hardware. The more operating systems their hardware works Really Well with, the more graphics cards they’ll sell.
As it is, given a choice, I don’t use ATI cards under linux. I have a longstanding dissatisfaction with ATI drivers, under Windows, and linux, dating back to the Mach64.
Because no one will use their driver without using their hardware. The more operating systems their hardware works Really Well with, the more graphics cards they’ll sell.
Do you really think that as a successful business they haven’t considered the option and possible benefits? If it was really going to make them more money, don’t you think they would do it? Don’t you?
“what makes people think nVidia should do such a thing for free?”
What make you think they did not receive money and that their GNU/Linux client is not the ignored majority in this case ?
I am 100% sure that nVidia is not affecting enough ressources based on there income that come from there GNU/Linux clients.
nVidia main income come from the Film industry and studio this days ( The gamer market , is a loosing money market for them ) , this particular market is 110% behind GNU/Linux and Open Source solution this days.
“Their products already sell extremely well,”
http://en.wikipedia.org/wiki/3dfx
You do know how to do simple math ? Because you obviously failed business 101 , giving to your client what they want and profit from it , and not loose money doing it :
100 000 copy that cost 5$ to produce that you sell for 2$ each …
No , you dont see the simple picture :
500 000$ – 200 000$ = 300 000$ that you stil owe.
The 100 000 copy are sold and they selled superbly , but you loose money on every single copy sold.
What was your point again ? Trying to suggest that GNU/Linux user are not buying nVidia products ? Its only a reality in your dream …
“What *financial* motivation (since they are a business) would they have for doing this?”
Goodwill.
Do they need the goodwill. As it stands Nvidia is really the only game in town when it comes to 3D on linux and freeBSD. You either buy nvidia or settle for subpar 3d.
Maybe because much of the technology that NVidia aplyes into their graphics, are software technology, like ultra crazy alghotitms that are ultra efficient when compared with open source buggy algorithms… Anyway, it’s their software and they are entitled to do what ever they want… I don’t really care, has long has the graphics run smoothly and the system doesn’t crash.
Hypothetical Counterpoint:
We’ll see how you feel if/when Nvidia discontinues Linux drivers completely. Then all of a sudden people will be running back to ATI because:
A.)In this scenario they may or may not still produce their Linux driver
but even if they don’t
B.)There’s a decent open source version, particularly for those that have some of the more classic cards. These will continue to improve and be updated as long as people use them and are interested in developing for them. Oh, and before one comments on open source drivers being subpar, at least they’ll work with each kernel update – unlike Nvidia’s, which sometimes need to be updated themselves to work.
Just a scenario.
We’ll see how you feel if/when Nvidia discontinues Linux drivers completely.
Extremely unlikely given how much money they have tied up in Professional high-end Linux workstation cards and graphics solutions. That would be financial suicide.
if there were no nvidia drivers, they would have been reverse engineered.
This is really excellent!
However, I couldn’t find any information on their site about their plans to provide similiar graphical tools such as NVPerfHud for Linux. This release of course allows for third party implementations of performance analysers to be created, and I’m sure that there will be a couple of FOSS ones appearing in a couple of weeks, but it would nevertheless be interesting to hear from nvidia themselves if they plan to port their existing tools to linux also.
Does anyone know?
“What *financial* motivation (since they are a business) would they have for doing this?”
How about the fact that I can have peace of mind when I decide to get an nvidia card for my current/new computer?
Peace of mind that it will run with XGL/AIXGL/<somethingelse>GL and the game I’d want to run (either natively or under Cedega or Wine)
Peace of mind normally meaning I’d have less hesitation to buy such a card.
When I was looking for a new computer (gaming PC), I encountered lots of good ones, but they had ATI cards. Since I dual-boot both Windows and Linux, and I like my hardware to work on *both* platforms, everytime I looked at an ATI-based system I thought ‘hmmm… nice machine, but with the graphics card, too big of a risk…’
I don’t think that they should open specs. It’s their work and money. Someone invested millions of dollars to create such advanced chip (even GeForce 2), so he won’t give all the work just like that. Get real – gamers do use Windows because it just works and they don’t care whether the kernel uses Some Fancy Scheduler or not. I talked with many real game developers: they prefer developing for Windows, because there’s one standard (DirectX) and they don’t have to care about supporting library version X.Y.Z or similar things.
Edited 2006-10-21 10:07
So can you please reference some good explanation or explain it yourself why exactly would programming interface spec for a chip give me any really useful information about how it’s implemented in hardware.
i386 instruction set has been more or less same since well… 386 with wildly different hardware implementations from intel, amd, transmeta, cyrix etc.
Should CPU manufacturers close down the instruction set too and give us only compilers ?
Also it’s rather clear that any competitor that would actually be able to produce and design the hardware is certainly able to hire a team of people to just reverse engineer the programming interface.
BTW. everything NVIDIA does is closed – network cards, sata controllers, etc.
Nowadays closed network chips are exception rather than rule, you can easily get programming specs for any Realtek or Intel chips for example without signing any NDAs. How would you explain need to hide stuff in this well understood field ?
To me it seems that keeping things closed is just a bussiness philosophy for Nvidia.
Because it costs load of money: design, implementation, testing, testing, testing, and fixing bugs, then repeat from the first or second step if it’s broken. If the design was obvious, then it would be cheap.
It’s not that simple to reverse engineer the programming interface. Why didn’t anyone do it before ?
I’m not saying it’s good to keep everything closed, it won’t change unless the majority of customers changes their minds.
I think you didn’t quite understand my side of the argument.
I certainly agree that producing and designing a graphics chip does cost a lot of money and is long and complicated process. What I do not agree is that competitors could infer anything really useful about how things are exactly implemented in you hardware by looking at how you communicate with it. At most you will know that well there seems to be this kind of unit that speeds up those calculations, but how that unit is implemented would still be a mystery to you.
As for the reverse engineering, I agree with you that it’s far from simple. But for example nvidias network chip interfaces were reverse engineered by both linux and openbsd teams and the resulting driver works far better in general than the nvidias own binary blob.
Reverse engineering GPU interface is of course much more complicated issue, but if it really would give you a deep understanging of the underlying design then any bussiness that wants to create competing product will hire a team of experienced people to do it, throwing couple of $ to the project would not be much compared to costs of other asspects of the chip creation process.
BTW. I’m fairly confident that both ATI and nvidia have such teams for analyzing eachothers work, both from software and hardware side.
Edited 2006-10-21 12:33
What I do not agree is that competitors could infer anything really useful about how things are exactly implemented in you hardware by looking at how you communicate with it.
They can barely infer anything, depends on what is in the hardware specification.
But for example nvidias network chip interfaces were reverse engineered by both linux and openbsd teams and the resulting driver works far better in general than the nvidias own binary blob.
Network chip interface is nothing compared to the the GPU. There’s OpenGraphics project, but AFAIK it needs couple of the VERY EXPENSIVE Xilinx FPGAs and some more ICs – maybe they’ll fit something like the GeForce 2 or 3. I don’t think that they’ll ever support at least Shader Model 1.x. Floating point math eats lots of hardware resources.
Back to the NVidia: I think they’ll release it if it’s profitable for them, even in the long term.
if you really buy into the whole “ohh noo!! we cant open!! our competitors can gain!!!” story you must be more deluted than people who go and yell “the end is coming year 2000!!! the earth will diee!!! elvis returns!!! jesus will kill us all!!”.
hell, not even opening the drivers would damage them, and CERTAINLY not the information required to write an entirely new driver.
nVidia uses a unified driver design, meaning that basically one single binary blob works with the majority of their products. It’s a relatively small matter to port an interface to that blob on different x86 platforms, be it *nix or Win32.
Why should nVidia open the driver? Seriously, what’s the business driver behind doing so? Linux users already promote nVidia as the best solution for accelerated graphics on *nix, log on to virtually any support forum. Read any review or article. Are they being harmed? Are people seriously flocking in significant numbers to Intel because of their mostly-open drivers? And you can bet that the customers paying top $$$ for high-end *nix-based graphics work don’t care.
Are their clear numbers showing customers selecting alternate brands in the name of freedom? Is ATI coming out ahead? Are the BSD drivers simply a goodwill gesture that no self-respecting BSD user would choose?
Yes, we all know the arguments in favor of open API’s. I won’t dispute them, other than to point out the fact that Andrew Morton has suggested a bug-cleaning phase for the kernel because apparently the devs can’t be bothered maintaining many of the legacy drivers that are falling apart with bugs that aren’t being addressed. All I know is I have a nicely working composited desktop in *nix, and that makes me happy, shallow as that is.
If you want to protest, protest with your wallets. It’s the only way to send a message. People complain about driver support in this and that laptop or desktop, yet they chose to purchase it. People want the vendors to open up their hardware, but aren’t willing to make the sacrifices involved (ie. settling for subpar useage, searching for compatible hardware, wanting the best deal) and so take what they can get and complain after.
If you’ve got an issue with nVidia, don’t buy their product. Send a message that way. But seriously, complaining about them on public boards, when they are one of the few vendors making a concentrated effort to support linux among hundreds of others that aren’t, just seems pointless and undermines the entire OSS (not FSF, which is probably the difference) effort.
You’re absolutely right, I’m not going to buy anything from nVidia any more. Luckily Intel seems to be catching up fast.
http://www.phoronix.com/scan.php?page=article&item=571&num=1
Off-topic :
I do sometimes wish for there to be discussion filters so that I didnt have to read the usual ever returning “open source drivers .. & GPL .. NDA ..” comments which accompany the name “NVIDIA” on here & which actually are mostly off topic IMO to the news item itself .
On-topic :
Cool – this I guess will be very useful for high end use especially.
Maya workstations and similiar & all the graphics calculation intensive work that a lot of the HPC Linux vendors are doing.
And of course games
But what I dont get is … :
Drivers are software that talks to hardware.
Applications themselves mostly do not need to know of what the hardware can do because that is all provided by the driver (NVIDIA binary blob) .
Okay read a bit.
So capabilities are provided by the OpenGL libary that talks to the graphics card via the system.
I lost it – could someone please explain this one to me because its actually very interesting IMO.
Is this only of interest to OpenGL developers , driver devs , graphics/games program devs or what ?