Nvidia, free software, and Linux

New thread because it has pretty much nothing to do with the original thread.

Continuing the discussion from Poor Gaming Performance in Linux:

Hey, I appreciate your response but there are quite a few statements I disagree with. First something more general:
I find it weird that you defend Nvidia! I would also be confused if you defended any other for-profit company. You only have to justify your buying decisions for yourself, it doesn't matter if I believe that your decision is wrong or stupid. Nvidia does things which are bad for you, the user and you should not defend such behavior, no matter which company, even it it makes sense from the perspective of the company.
It's a thing I notice way too much where users try to understand a decision of a company which is bad for the user. Then they say that the company had to do something this way because it makes sense for the company from a monetary viewpoint, thus justifying the bad decision. It's a stupid thing to do.
You're the user, whatever is bad for you is simply bad for you, you should not care why the company decided to make the decision!


Now I'll go over your list of arguments and try to explain how each decision Nvidia made is bad for the user (if it makes sense for Nvidia to do or not is completely irrelevant).

  1. being open about a decision that's bad for users is not good in any way
  2. the decision to only allow signed firmware means that the whole work of reverse engineering and writing a free software firmware is wasted
  3. you can only run firmware on your GPU which is signed by Nvidia, effectively taking away freedom to use the hardware you bought at your liking
  4. Nvidia can now turn off hardware features in the firmware and you can't turn them back on

AMD GPUs allow you to run arbitrary firmware. You're just wrong on this one (find me a source if you still think you're right).

Yes, that's exactly what I was talking about. You call it asking, I called it pressuring. It's probably very subjective and down to your own interpretation.
Anyway, this is a great example, showing how not playing by the rules of the kernel (i.e. drivers should be free software) results in a bad experience for the user. In this case: GPU offloading doesn't work with Nvidia hardware. (Remember, we don't care why Nvidia doesn't support offloading, we don't care that it's their license choice, we only care that it's bad for us, the users.)

Well, we're at OpenCL 2.0 now and Nvidia still only supports OpenCL 1.1 (iirc). So if you want to develop something that runs on Nvidia hardware you can use OpenCL 1.1 which is really bad to develop for, or use CUDA which Nvidia invests a huge amount of effort.
That's bad for a developer (who is also a user of the GPU) because he can't choose between OpenCL 2.0 and CUDA but essentially has to choice done by Nvidia, and that is using CUDA.
It's also bad for a user of applications because the developer now has to spend double the effort (CUDA + OpenCL) to make the application perform good on all vendors GPUs.

OpenCL 2.0 and HSA are very powerful and really good from a developers perspective. Which one is better however is not relevant. All the cool CUDA features could have gone into OpenCL extensions or at least be opened up for other vendors. Neither of those happened which led to the problems I described earlier.

And again, it's not good for a user, no matter how "cool" or "interesting" the so called "features" are: Nvidia is taking away choice from the user! All those technologies are available on most other GPUs the only thing that happens is that Nvidia gives developers a fast implementation for their GPU and a slow implementation for every other GPU. That would not be a problem if the code was open source and other vendors could adapt the code to run better on their own GPU, but it's not.
For a user it simply means that Nvidia performs better, which also means that it makes no sense to buy a similar fast GPU from another vendor. In short: it takes away choice.

Here you're wrong in a few ways:
1. AMD also shares a lot of the code in Catalyst between Windows and Linux
2. I'm pretty sure that the drivers don't use the same "core" but instead use a separate core for each OS with the same interface and share all of the "non-core" code

Anyway, the interesting part here is that you justify Nvidia's decision to remove a feature. Again, as a user I don't care how or why, the only part that matters is that Nvidia removed that feature!

That's an artificial limit! The hardware clearly does support it so they take away features from you.

I don't care why it happened! It happened! Stop justifying bad decisions!

[...]

Again with the "I don't care!". Now there is an open standard and Nvidia doesn't support it. There isn't more to it.

I think you're wrong on this. To my knowledge Adaptive Sync is not mandatory in DP1.3, but that's beside the point: Nvidia can still choose not to support Adaptive Sync simply by not supporting it in their driver.

I have yet to see a single instance where proprietary software makes sense. True, sometimes a piece of proprietary software might be better in some way than free software, but it doesn't change the fact that the piece of proprietary software would make more sense if it were free software.

Replying to myself because apparently I just went over the max-size of a post.


About a few things I skipped at the beginning of your post:

I disagree with your interpretation. I'm all for competition but competition should be useful for the user. I don't think that proprietary APIs are in any way useful for a user because it means that when a user wants to use a program that is designed to run on the proprietary API, the user has no choice of the hardware.
We can see this every now and then when people choose their GPU by vendor because the program they want to use only supports CUDA or CPU computing.
That's bad, and that's why a new feature or API is only useful for the user if it is free software or a standard. Competition has to be in this frame to be useful.

Why do you care as a user? You should not! You care about choice and good value for your money and that's why you should say that every API should be open.

When two free software implementations compete against each other I'm more happy as a proprietary software and a free software implementation compete. Saying "I'm for proprietary software because it forces competition" is crazy because the same competition exists with free software.
Also, I'm not saying that Nvidia supporting Linux is a bad thing, all I'm saying is that Nvidia generally makes bad decisions for the users.
So, yes, VDPAU and Linux support are good things but I'm still going to call them out on all the other shit they're doing, and for me personally, I'm not willing to support the company in any way. It's a decision everyone has to make for himself but I'll gladly help to explain my reasoning.

Hi, I wanted to let you know that I have read this. And I don't know when I am able to make "a full reply". But in-general I do agree with some of your points. And disagree with others. I too think that companies should be called on their shit (although it's apparent that we draw the line in different height).

But something stuck me odd... You wrote that:

However nVidia already has (at least partial) OpenCL 2.0 support in their Linux driver. When you do:

$ strings /usr/lib/x86_64-linux-gnu/nvidia/current/libnvidia-opencl.so.340.65 | grep CL_COMMAND_SVM_

You get:

CL_COMMAND_SVM_MAP
CL_COMMAND_SVM_UNMAP
CL_COMMAND_SVM_MEMCPY
CL_COMMAND_SVM_MEMFILL
CL_COMMAND_SVM_FREE

And these are macros that are only part of the OpenCL 2.0 as kindly noted by AMD's and Khronos Group's documentation:

However I see no mention of the OpenCL 2.0 in the nVidia's developer documentation. And that is little fishy. I guess people at nVidia are still working on it. After all AMD got their OpenCL support out only few months ago in September, 2014. And Intel got their support rolled out in August, 2014 which was pretty quick. I guess the nVidia's OpenCL implementation makes it either A. complex to include new stuff, or B. they have something going on there.

However we have to remember that the guy leading Khronos Group at the moment, Neil Trevett, is an nVidia employee. Not to mention that nVidia was in a big role in designing the OpenCL 2.0, and nVidia would only lose in the long run if they would not implement OpenCL 2.0. I'd expect nVidia to have OpenCL 2.0 out sometime this year.

I'll try to find time to reply to you in a more complete manner. You're pretty interesting guy.


how did I get here....AND

I think you are lying about those big butts

1 Like

So.......... Tits or Ass?

I like fore arms

1 Like

I protest your implication that I do not indeed like or enjoy big butts. We will have a dual at dawn, good sir, first person to die loses.

I think you misunderstand I am in capable of dying since I am a Wizard, let me show you my selfe:

That is a fair point, I guess I will, just have to dismember you, and put your torso and head into 2 different safes and drop each safe in 2 different oceans and in the deepest parts of those oceans.

NO ITS NOT!!!
FLKDS:JFKLSD:FJKSLGH:W#RUPQWBU$#

1 Like