Advertisement

Program unplayably slow on Linux, awesome on Windows

Started by December 11, 2007 03:10 PM
57 comments, last by RSC_x 16 years, 9 months ago
Quote: Original post by Yann L
Show me a correctly working open source implementation of a GLSL compiler. You know, that shader language that is the basis of all modern shader development. The standard has been out for years now, still the open source community has no working implementation. And no, don't say Mesa. It crashes even on the most simple hello world type GLSL shaders. NVidia, however, offers a fully functional, very powerful, hardware accelerated and highly optimized GLSL compiler as part of their closed source drivers.

Or show me a working open source geometry shader implementation. I can show you a closed source one...

So, what was your point about features again ?


I didn't notice anyone responding to this, so, why would there be an open source implementation of a GLSL compiler BESIDES mesa? Untill noveau matures, or the open source ati drivers mature, there's no reason for one to exist, "all right we've got a GLSL compiler!" "oh shit we don't even have multitexturing implemented on half of the cards!" GLSL, while incredibly important, isn't worth squat if the infrastructure it sits upon isn't implemented, and i'd argue THAT is why there's no GLSL compiler.

But I don't claim to know terribly much about the open ati driver, it may be more mature than I think it is, but I rather think not.
When General Patton died after World War 2 he went to the gates of Heaven to talk to St. Peter. The first thing he asked is if there were any Marines in heaven. St. Peter told him no, Marines are too rowdy for heaven. He then asked why Patton wanted to know. Patton told him he was sick of the Marines overshadowing the Army because they did more with less and were all hard-core sons of bitches. St. Peter reassured him there were no Marines so Patton went into Heaven. As he was checking out his new home he rounded a corner and saw someone in Marine Dress Blues. He ran back to St. Peter and yelled "You lied to me! There are Marines in heaven!" St. Peter said "Who him? That's just God. He wishes he were a Marine."
Quote: Original post by FILO
wow, maybe I'm just a total newbie but this thread really does seem a little out of place in the OpenGL section ;) When I opened this thread first I was expecting a really cool discussion on writing cross platform OpenGL code.

Is this section meant to be just about coding issues? I'm asking because I have refrained from asking similar questions here in the past as I thought it was off topic.

Well, it is OpenGL related, after all. But yeah, since this has more or less turned into a Linux/OSS discussion (with some added package installation help for the OP :), I'll just move it over to the Linux forum.

Aken H Bosch, if you still have OpenGL questions related to this thread, feel free to ignore our rambling and just post them :)

Quote: Original post by Ademan555
I didn't notice anyone responding to this, so, why would there be an open source implementation of a GLSL compiler BESIDES mesa?

Mesa GLSL doesn't work. If it did, I'd agree with you.

Quote: Original post by Ademan555
Untill noveau matures, or the open source ati drivers mature, there's no reason for one to exist, "all right we've got a GLSL compiler!" "oh shit we don't even have multitexturing implemented on half of the cards!" GLSL, while incredibly important, isn't worth squat if the infrastructure it sits upon isn't implemented, and i'd argue THAT is why there's no GLSL compiler.

I agree. But this just emphasizes the entire point I'm trying to make throughout this thread (and that some people seem to misinterprete): I'm not against open source per-se. But currently available open source drivers (and ones that will be available in a short to medium term future) are unusable, because they're incomplete and buggy. So why all that hate against closed source drivers ? They work, while open source drivers currently don't. The choice shouldn't be too hard, if you ask me.

In summary: while open source software has a lot of merits in many application sectors, driver development is not one of them. Sure, OSS drivers can be made to work as well as closed source ones, given enough resources and time. But IMO, this is just wasted energy for something insignificant, because closed source drivers are just fine. This energy should better be spent on more urgent things, like making Linux more user friendly.

Quote: Original post by vibe3d
[blablabla]

You know damn well that my comment wasn't directed at the "use Google" part of your post, but at that part where you were being an ass to the OP. And you're still being an ass right now, so watch out...
Advertisement
Well, I know someone else mentioned this, but open source drivers do have the advantage of being "immune" to kernel interface changes. When you're using a binary driver you "get to" recompile a portion of the driver in order for it to work, up until lately that meant you got an Xorg error and got dumped to a console.

And I don't think it's really fair to compare the two development models for driver development just yet, specs haven't been available so the open source drivers so a large effort has to be made to reverse engineer the hardware/existing drivers. With ATI releasing the specs to open source developers I think we'll see the drivers rapidly improving, and at that time the comparison will be more fair.

With that said, you're totally right, the choice IS easy right now, I use the binary blob because it works, I just don't think it's fair to judge the merit of open source driver development at this point in time.
When General Patton died after World War 2 he went to the gates of Heaven to talk to St. Peter. The first thing he asked is if there were any Marines in heaven. St. Peter told him no, Marines are too rowdy for heaven. He then asked why Patton wanted to know. Patton told him he was sick of the Marines overshadowing the Army because they did more with less and were all hard-core sons of bitches. St. Peter reassured him there were no Marines so Patton went into Heaven. As he was checking out his new home he rounded a corner and saw someone in Marine Dress Blues. He ran back to St. Peter and yelled "You lied to me! There are Marines in heaven!" St. Peter said "Who him? That's just God. He wishes he were a Marine."
Quote: Original post by Ademan555
Well, I know someone else mentioned this, but open source drivers do have the advantage of being "immune" to kernel interface changes.

Who cares ? You'll update your graphics driver a lot more often than the kernel anyway, in order to get all the newest extensions, bug fixes, etc. If you eventually update the kernel, well, you'll have to wait a little longer to get updated graphics drivers. Big deal. 99% of the world seems to run fine on Windows without changing the kernel every five seconds. I don't see why Linux should be any different. I haven't updated my kernel in quite some time now (Yeah, I use Linux. Shock.)

And at least you can be reasonably sure that said closed source drivers have been quality tested by the IHV, instead of having some idiot shove in some last minute change into the opensource driver source tree that wasn't correctly stress tested and breaks the whole thing hours after the release (happens all the time with Linux)

[OT venting]
Oh, and this whole thing of changing the kernel interface for relatively small modifications is completely retarded, and a sign of very bad software engineering. When done within a profit oriented corporate environment, such breaking changes would be a complete maintenance nightmare, and could potentially tear an entire company down. Just look at all the flak Microsoft gets when changing their DirectX interfaces - and these are only a few non-critical multimedia libraries, that even remain backwards compatible !

They only get away with such things under Linux, because the powers that be (ie. the kernel devteam) aren't financially liable and don't have to suffer the consequences of their irrational decisions. In an actual company, you'd get fired for something like this. That's essentially what I meant by the lack of quality control and accountability earlier.
[/OT venting]

Quote: Original post by Ademan555
And I don't think it's really fair to compare the two development models for driver development just yet, specs haven't been available so the open source drivers so a large effort has to be made to reverse engineer the hardware/existing drivers.

As I said, some manufacturers are just not willing to release these specs. Would you prefer a closed source driver with all the newest cutting edge features, or a dumbed down open source driver only containing the parts of the technology that the company essentially 'declassified' ? I'll take the former any time.
Quote: Original post by Yann L
[...] I'm not against open source per-se. But currently available open source drivers (and ones that will be available in a short to medium term future) are unusable, because they're incomplete and buggy. So why all that hate against closed source drivers ? They work, while open source drivers currently don't. The choice shouldn't be too hard, if you ask me.


I think there is another misunderstanding going on. I'm not against some IHV implementing the OpenGL drivers if they want. It happens all the time with FOSS modules. What I'd like is the modules to be FOSS, so they can be integrated to the kernel source tree. NVidia would still be developing the driver for NVidia hardware. FWIW, I know it isn't going to happen with NVidia, I'm simply explaining what I'd like to see.

As for why the hate against closed source drivers: I personally don't hate closed source software, I just don't want to use it. I'm opposed to the privatization of knowledge. YMMV.

I disagree with other things you've said, but I've got to dash so... I simply hope you aren't taking my disagreeing personally. [smile]
Quote: Original post by let_bound
I think there is another misunderstanding going on. I'm not against some IHV implementing the OpenGL drivers if they want. It happens all the time with FOSS modules. What I'd like is the modules to be FOSS, so they can be integrated to the kernel source tree. NVidia would still be developing the driver for NVidia hardware. FWIW, I know it isn't going to happen with NVidia, I'm simply explaining what I'd like to see.

Oh, I got you perfectly fine there. But as I said multiple times, opensource is just not an option for some companies for several reasons:

1) Intellectual property protection.

You don't want your competitors know what you're doing. Designing a 3D chipset is an extremely expensive thing to do. You have to invest hundreds of millions, if not billions. Thousands of employees need to be paid, chip production facilities built, etc. And all that huge amount of money, and the responsability for the thousands of employee families that depend on it, are only backed by one single thing: intellectual property. It's all they have. If they lose that, the Chinese could probably sell a cloned GPU for 1% of the price, and the IHV would go out of business.

Now the driver contains a lot of critical parts, that can tremendeously help in reverse engineering of the GPU. It is perfectly clear why they don't want to expose this functionality through an open source driver.

2) Quality management

When you create a piece of PC hardware, the driver is a vital connection point between your hardware and the user. With bad drivers, even the best hardware can become a pain in the ass to use, and customers will flock to the competition. That's what happened with ATI. Their OpenGL drivers were abominable, so most OpenGL developers now recommend NVidia.

Quality control is a very important part of any development process, but even more so for drivers. If you open source your drivers, you essentially lose the control over them. This can be very dangerous for your reputation.

Say a company has a nicely working open source driver for their excellent hardware. Everybody is happy, until some idiot decides to fork the driver. Since it's free open source, he has the right to do that. Now he completely butchers up the thing, and distributes it. The people using his driver instead of the official one (simply because they don't know the difference) will blame their problems on the manufacturer.

3) Liability

Manufacturers are liable for all damages directly caused by their hardware, or by their software. Imagine NVidias driver fucking up, and frying the GPU due to some bug accidentally increasing the clock rate. Here, the situation is clear: Nvidia is liable, they have to replace the card and fix the driver.

Now imagine the same scenario with an open source driver. Some thrid party idiot adds this bug into the OSS driver, and kills a few dozen cards of unsuspecting users. One of the cards catch fire during the process, and burns the house down, killing two sleeping babies (yeah, I'm pushing it there, but this is theoretically not impossible ;) Who is legally liable for the damage ? Nvidia is not, since they can argue that a third party abused their GPU in a non-supported way. The moron who caused the bug isn't either, due to the GPL protecting him from all direct and indirect responsability.

So, essentially the victims will not get their cards replaced, and OSS just killed two babies [wink] But seriously, such liability questions can be a big problem with open source drivers. While NVidia wouldn't be liable in such a case, this could take a big hit on their reputation, even if they are not responsible for it in any way !

Essentially, open source drivers open up a lot of problems most FOSS idealists don't think about. It's not always as easy as Richard Stallman wants you to believe...

Quote:
I simply hope you aren't taking my disagreeing personally.

*shrug* Why should I ?
Advertisement
Quote: Original post by Yann L
3) Liability

Manufacturers are liable for all damages directly caused by their hardware, or by their software. Imagine NVidias driver fucking up, and frying the GPU due to some bug accidentally increasing the clock rate. Here, the situation is clear: Nvidia is liable, they have to replace the card and fix the driver.

Now imagine the same scenario with an open source driver. Some thrid party idiot adds this bug into the OSS driver, and kills a few dozen cards of unsuspecting users. One of the cards catch fire during the process, and burns the house down, killing two sleeping babies (yeah, I'm pushing it there, but this is theoretically not impossible ;) Who is legally liable for the damage ? Nvidia is not, since they can argue that a third party abused their GPU in a non-supported way. The moron who caused the bug isn't either, due to the GPL protecting him from all direct and indirect responsability.

So, essentially the victims will not get their cards replaced, and OSS just killed two babies [wink] But seriously, such liability questions can be a big problem with open source drivers. While NVidia wouldn't be liable in such a case, this could take a big hit on their reputation, even if they are not responsible for it in any way !

Essentially, open source drivers open up a lot of problems most FOSS idealists don't think about. It's not always as easy as Richard Stallman wants you to believe...

they allready hawe a owercloick utility which prety much allows user to burn device.
and if it explodes and kills someones its not about software.
this means the product were dangerous for home use but standard pc's are not.
and this means providers fault.
or electricity were too high
it can cause by two facts 1.dafected power supply
2 card contains non standard things or just wrong .

him i think this creates another complo theoy.
terrorists can use nuclear vga bombs?

anyway they dont need to share any info about vram.
if they share just dma style acces will make them faster.

i dont think its right to close civiliant to jauil for security.
instead they probally can find another way for stopping unlicenced products.


also realy big part of nvidia devices are allready from china[ licenced ]
nvidia too works on china.
© Loading... !!!
Please Wait...!
Sorry for taking so long to reply. Busy week and weekend.

Quote: Original post by Yann L
Oh, I got you perfectly fine there. But as I said multiple times, opensource is just not an option for some companies for several reasons:


I agree with pretty much everything you said, except for one thing.


Quote:
3) Liability

Manufacturers are liable for all damages directly caused by their hardware, or by their software. Imagine NVidias driver fucking up, and frying the GPU due to some bug accidentally increasing the clock rate. Here, the situation is clear: Nvidia is liable, they have to replace the card and fix the driver.

Now imagine the same scenario with an open source driver. Some thrid party idiot adds this bug into the OSS driver, and kills a few dozen cards of unsuspecting users. One of the cards catch fire during the process, and burns the house down, killing two sleeping babies (yeah, I'm pushing it there, but this is theoretically not impossible ;) Who is legally liable for the damage ? Nvidia is not, since they can argue that a third party abused their GPU in a non-supported way. The moron who caused the bug isn't either, due to the GPL protecting him from all direct and indirect responsability.


The GPL per se doesn't protect the developer any more than some NVidia EULA would. The non-responsibility clause in the GPL is essentially invalid in some countries like France where the concept of "vice caché" applies, no matter what the licence says.

What I'm trying to say is that the concept of responsibility isn't up to the licence, but rather down to local law. I've seen EULA more abusive than the GPL, for example. I don't think denial of responsibilities is a trait of FOSS, but rather a trait of our society (and this is particularly true in business): "we" try to blame the next guy as much as we can. I'm getting a bit philosophical here though.


Quote: While NVidia wouldn't be liable in such a case, this could take a big hit on their reputation, even if they are not responsible for it in any way !


I agree 100%.


Quote: Essentially, open source drivers open up a lot of problems most FOSS idealists don't think about. It's not always as easy as Richard Stallman wants you to believe...


I like to think of myself as a FOSS idealist, even though I'm an "enterprise developer". Like many idealists, I'm deeply dissatisfied with the current system, therefore I don't mind damaging it. I can see why a lot of people would disagree with this, and I understand their point of vue. I just happen not to share it. [smile]


Quote:
Quote:
I simply hope you aren't taking my disagreeing personally.

*shrug* Why should I ?


Some post on this thread made me think that, maybe, I was being too pushy or stubborn (which I am, more often than not).
last thing i want to say is ,closed source newer been user friendly.
and closed sources destny is dying. example is mac's.
why mac's died or just going to die?
simply closed sorce will end after some years.

and one magic of open source is opengl can be used on dos and allmost any platforms. like html php com asp vb
yes its impossible. but this is because closed source kills that magic.
isnt it possible with ati? i dont know but if its not probally its not
corrctly open source .
© Loading... !!!
Please Wait...!

This topic is closed to new replies.

Advertisement