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 Hnefi
What's so hard about downloading hardware drivers? Even Windows users have to do it. It's not a problem, even from a user-friendliness point of view, as long as you don't have to do it for anything other than the major hardware components.


I said it'll lag behind kernel releases, not than downloading software was hard. Because Windows users have to do it doesn't make it easy: it makes it necessary for Windows users.


Quote: Also, lag behind? The job of a driver is to make sure that the specific hardware that it is written for works with the interface the kernel provides. The kernel interface really shouldn't change much (if it does, you'll have to recompile everything), and the hardware certainly doesn't, so what's there to lag behind on?


But the kernel interface changes. Like it or dislike it, that's how it is. There are upsides and downsides to this, and we could argue forever about it, but the fact is than it changes when the Linux dev team thinks it should change.


Quote:
Quote: I also don't think it's the IHV's job to package the module. Even if it managed to ship a binary module that doesn't lag behind the kernel, it wouldn't be able to cater to all the different distros out there.

Finally, it doesn't work for NVidia. Installing their modules with their installer works only for the few distros they bother to support (Red Hat, Suse, others?). If you aren't using one of the distros they've picked, the installer might silently overwrite various libraries, the module won't be loaded if you upgrade the kernel, etc.

Have you even used Nvidias drivers? I've installed them on Ubuntu, Debian, Mandrake and Slackware.


Yes I have, on more distros than I care to remember, as well as FreeBSD. Install them using the NVidia installer, and it'll stomp your GL and GLX libraries. The next time Mesa is upgraded, the NVidia libraries will be overwritten. You can avoid that by not installing Mesa, but then you won't be able to install software that requires an implementation of OpenGL because the NVidia libraries and module don't exist as far as the package manager is concerned, rendering it more or less useless. The only sensible way unless you know precisely what you're doing (ie you aren't a newbie) is to install the binary drivers through the package manager, which was exactly my point.

Also, the moment you upgrade the kernel, you'll have to reinstall the module unless the kernel version is exactly the same (if, eg, patching the kernel). If the version isn't the same, you'll have to hope the kernel interface hasn't changed.
Quote: Original post by PaulCesar
I beg to differ, installing drivers on linux isnt a quarter as easy as it is on windows. Its difficult for people like you and me to see because well... we are tech literate.

Well, okay, you have to know how to switch to root and turn off the GDM, operations which are critical for any Linux administrator (even a home user) to know. So let me rephrase it: the installation process for the driver itself is just as easy on Linux as on Windows. But allright, due to the inherent user unfriendliness in Linux, I can see how it would be a good idea to add a clickable option in Gnome for those distros that do not yet have it. I also agree that Linux drivers should be included on the discs that come with the hardware; I don't know why they don't do that.

Although, I must also point out that the instructions you get when downloading the drivers are good enough that most people should be able to follow them. I had no problem doing so when I was a complete Linux newbie, even when I struggled to adjust the resolution in Gnome.

Quote: let_bound wrote:
I said it'll lag behind kernel releases, not than downloading software was hard. Because Windows users have to do it doesn't make it easy: it makes it necessary for Windows users.

I think that using Windows as a standard for user friendliness is not terribly far fetched. Like it or not, installing drivers on Windows is very easy.

Quote: Yes I have, on more distros than I care to remember, as well as FreeBSD. Install them using the NVidia installer, and it'll stomp your GL and GLX libraries. The next time Mesa is upgraded, the NVidia libraries will be overwritten. You can avoid that by not installing Mesa, but then you won't be able to install software that requires an implementation of OpenGL because the NVidia libraries and module don't exist as far as the package manager is concerned, rendering it more or less useless. The only sensible way unless you know precisely what you're doing (ie you aren't a newbie) is to install the binary drivers through the package manager, which was exactly my point.

Since when? I'm using Nvidias proprietary drivers downloaded from their homepage, no Mesa installation, and I can compile OpenGL stuff just fine and dandy. I do remember there being an issue with it way back when I used Slack - no GLU headers in the drivers, IIRC - but that problem did not occur when I went back to Linux about a year ago. I can also use Synaptic to download and install OpenGL-based programs without issues.
-------------Please rate this post if it was useful.
Advertisement
Quote: Original post by Hnefi
I think that using Windows as a standard for user friendliness is not terribly far fetched. Like it or not, installing drivers on Windows is very easy.


My mother would disagree with you, and I'm sure a few Mac users would as well. Ease of use is largely influenced by experience and knowledge. What you seem to call newbie, I'd call power user. There's a fine line between the two.


Quote: Since when? I'm using Nvidias proprietary drivers downloaded from their homepage, no Mesa installation, and I can compile OpenGL stuff just fine and dandy.


Compiling will work, obviously.


Quote:
I do remember there being an issue with it way back when I used Slack - no GLU headers in the drivers, IIRC - but that problem did not occur when I went back to Linux about a year ago. I can also use Synaptic to download and install OpenGL-based programs without issues.


How is Synaptic satisfying dependencies on OpenGL libraries when there is no such thing installed on the system as far as it's concerned? You either have an implementation of OpenGL registered with the package manager (in which case it was moved away by the NVidia installer), or you can't install software that requires said implementation via Synaptic.

You'll also have to run the installer again the moment a new version of the kernel is installed, if only because the module won't be installed in the correct directory otherwise. If the kernel interface has changed, you'll need to download a new version of the driver, if NVidia has caught up already (which, I'll grant you, they're usually quick to do).
What's this crap about Mesa being a waste of time and the GLSL support being shit?
Mesa is not just for Linux. You can use it on Windows as well as a software renderer.
D3D has a reference renderer. Developers use it to compare with their hw drivers to know if there is a likely bug in the driver or not.

GL, sadly, does not have a reference driver. At least there is Mesa.

Mesa doesn't offer every extension but it is getting there.
The GLSL implementation isn't so bad. It is still beta but you can test out your code often enough.
Sig: http://glhlib.sourceforge.net
an open source GLU replacement library. Much more modern than GLU.
float matrix[16], inverse_matrix[16];
glhLoadIdentityf2(matrix);
glhTranslatef2(matrix, 0.0, 0.0, 5.0);
glhRotateAboutXf2(matrix, angleInRadians);
glhScalef2(matrix, 1.0, 1.0, -1.0);
glhQuickInvertMatrixf2(matrix, inverse_matrix);
glUniformMatrix4fv(uniformLocation1, 1, FALSE, matrix);
glUniformMatrix4fv(uniformLocation2, 1, FALSE, inverse_matrix);
for the guy who trys to install opengl mesa with DRI.

install kernel source to usr\src\linux [do not delete it]
install vga driver [nvidia etc.]
-after two you hawe accelerated 3d .
install mesa [if others didn't done this will giwe errors ]
-this third is for developers.
i installed that on knoppix but i missed making vmlinuz?
thing and i dont hawe DRI headers right now.:(

anyway now it supports DRI or fast drawings .

and so there looks like all talnted programmers are here.
and may be some of you guys knows where can i find opengl/DRI headers ?
i cant find them anywhere. and mesa wants from me to compile cernel again but it crashs and i dont want to worry about it.
anyway nvidia driver works just with kernel headers for me..
but mesa does not like them.:(
© Loading... !!!
Please Wait...!
Quote: Original post by let_bound
My mother would disagree with you, and I'm sure a few Mac users would as well. Ease of use is largely influenced by experience and knowledge. What you seem to call newbie, I'd call power user. There's a fine line between the two.

Are you seriously claiming that Windows is not user friendly? That the elderly do not immediately understand it is not a reasonable criterion; many elderly people do not immediately understand how to use the (incredibly simple) electronic system for booking the laundromat in my apartment complex. Using menu systems and the like is simply a very alien form of interaction for someone not used to it. But I digress.
Quote: How is Synaptic satisfying dependencies on OpenGL libraries when there is no such thing installed on the system as far as it's concerned? You either have an implementation of OpenGL registered with the package manager (in which case it was moved away by the NVidia installer), or you can't install software that requires said implementation via Synaptic.

How Synaptic does it, I have no idea. I haven't picked it apart. I guess it simply looks for the relevant libs and headers, like every other dependency checker. If an arcane system such as autoconf can do it, surely Synaptic should be able to - and it seems to work just fine.

Quote: You'll also have to run the installer again the moment a new version of the kernel is installed, if only because the module won't be installed in the correct directory otherwise.

This happened to me on Debian once, but not since I switched to Ubuntu eventhough there's been a couple of kernel upgrades since then (handled through Synaptic). Maybe there haven't been any significant enough upgrades during the past six or eight months.

Either way, what's your point? So the installer (sometimes) has to be run again. Woop-de-woop. It would be nice if it was done automatically, but even when it isn't, it's not exactly a hassle. Kernel upgrades don't seem to be THAT common, after all, since I haven't yet had to reinstall the same driver twice.

Quote: If the kernel interface has changed, you'll need to download a new version of the driver, if NVidia has caught up already (which, I'll grant you, they're usually quick to do).
Again, so what? What's the big deal? Since it's so easy to do and you don't have to do it often, I don't see the problem - particularily since you must have already done it at least once.

Sure, it would be nice not having to reinstall the driver every now and then, but the simplicity of having a pre-packaged solution built by people who are guaranteed to know what they are doing, a solution that is easy to use, is always up to date, can always be found in the same place and always seems to work just fine is, to me, infinitely more important than not having to click a few times extra every few months. Particularily since the damn update manager seems to want to update new things at least five times a week anyway.
-------------Please rate this post if it was useful.
Advertisement
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.
Quote: Original post by Hnefi
Are you seriously claiming that Windows is not user friendly? That the elderly do not immediately understand it is not a reasonable criterion; many elderly people do not immediately understand how to use the (incredibly simple) electronic system for booking the laundromat in my apartment complex. Using menu systems and the like is simply a very alien form of interaction for someone not used to it. But I digress.


I'm claiming user friendliness is greatly influenced by one's experience with and knowledge of a system. Sure, we can ignore the elderly if you want. I know a few (young) Mac users who don't find Windows user friendly. At the other end of the spectrum, I know some Windows users who don't find Mac OS user friendly. They simply aren't used to the other system.

Anyway, I haven't claimed it's hard to install drivers, and I'm not getting in a fruitless "X vs Y" debate. All I said is the NVidia installer will lag behind kernel releases when the kernel interface changes. Changes in the kernel interface happen on a need-to basis. FOSS modules are modified (if necessary) for the new interface before the kernel is released, meaning they're always in sync.


Quote: How Synaptic does it, I have no idea. I haven't picked it apart. I guess it simply looks for the relevant libs and headers, like every other dependency checker. If an arcane system such as autoconf can do it, surely Synaptic should be able to - and it seems to work just fine.


There's nothing arcane about autoconf: the configure script simply attempts to compile and link temporary programs to check for the availability of headers and libraries. Synaptic doesn't do that because it doesn't need to: a Debian archive contains the required information. Because Synaptic can't depend on the presence of a compiler, the configure-way of testing for headers and libraries is out. Not to mention it'd need a whole lot of compilers to check for the availability of OCaml modules, Common Lisp libraries, Mono assemblies, etc.

In a nutshell: if you're installing software with Synaptic that requires an implementation of OpenGL without said implementation having been installed with Synaptic (or APT, etc), your system is broken. If you've installed said implementation with Synaptic (possibly as part of the base system, without you noticing) and then used the NVidia installer, your system is broken. If you're lucky, you'll never notice it.

As this is really irrelevant to the OP's subject, I'll stop replying here.
I agree with Yann, drivers should be IHV supplied, but why not open source too ? I hope AMD did not just release the specs saying "let's rely on the community", I hope they are paying people to work on the open source drivers.

I would like to point out that newbies just do not install drivers, each time I fixed the computer of someone not tech savvy, their drivers were the one shipped with windows.

And for the user friendliness question, well, whatever you do this is the same as saying "Windows is a better Windows than linux". Yes windows UI is more like windows UI than the linux one. But take a look at http://osnews.com/story.php?news_id=6282 , People are familiar with windows UI because they did not have the choice, not because it is superior to other paradigm.
Tchou kanaky ! tchou !
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 appears one of the mods for this forum Yann L has different rules for himself. He has a go at me earlier for telling the OP to use google to find the answers, yet he allows this thread to go completely way offtopic simply because someone has a different opinion to him(let_bound).

This topic is closed to new replies.

Advertisement