Deal of the Month: 50% Discount on Windows 7 (Limited Amazon.com offer) Main Page | Report this Page
Computers Forum Index  »  Computer - Graphics - API (Opengl)  »  OpenGL in Linux = always Mesa?
Page 1 of 1    

OpenGL in Linux = always Mesa?

Author Message
Lasse Liehu
Posted: Sun Apr 24, 2005 1:02 pm
Guest
Is there any other way to build OpenGL programs for Linux than Mesa. I read
something about that Mesa isn't actually OpenGL. It's a software
implementation of it.

And what's different OpenGL and Mesa, actually? Speed?

Maybe I'm stupid, but...
 
Wolfgang Draxinger
Posted: Sun Apr 24, 2005 3:02 pm
Guest
Lasse Liehu wrote:

Quote:
Is there any other way to build OpenGL programs for Linux than
Mesa.

Actually when you link your programm against libGL.so (use the
compiler option -l so it would be '-lGL') then the system will
use the one OpenGL implementations that is installed. If you got
Mesa3D then libGL.so will be a symlink to libMesaGL.so. On my
system it would be libGL.so provided by the ATI driver package.
For more information on how shared libraries are loaded in Linux
and alikes refer to the manpages of 'ld' and 'ld.conf'.

Quote:
I read something about that Mesa isn't actually OpenGL.
It's a software implementation of it.
And what's different OpenGL and Mesa, actually? Speed?

OpenGL is a standard Mesa3D is a compliant implementation of it
doing the rendering on the CPU, so it's a software renderer.
Other OpenGL implementations are e.g. the libGL.so that come
with your graphics card's drivers. Both nVidia and ATI provide
closed source drivers for Linux. Unfortunately the ATI ones are
quite a mess.

Wolfgang Draxinger
--
 
Wolfgang Draxinger
Posted: Sun Apr 24, 2005 5:02 pm
Guest
Lasse Liehu wrote:

Quote:
So when I have nVidia's graphics card driver installed and if I
find libGL.so and I don't have Mesa3D installed, I only need
OpenGL headers and then I can build and link OpenGL programs
(don't use Mesa) for Linux. And they runs other graphics cards
than my graphics card's vendor cards too.

I don't be sure of this all (yet). So I wrote this here, so
other people can tell me if I'm wrong.

Yes this is it about. Dynamic Linking is not against a specific
library from a certain vendor. Only the name of the library to
use and the provided functions are stored, the actual linking
happens at runtime.

Wolfgang Draxinger
--
 
Rolf Magnus
Posted: Sun Apr 24, 2005 5:02 pm
Guest
Lasse Liehu wrote:

Quote:
Is there any other way to build OpenGL programs for Linux than Mesa.

Yes.

Quote:
I read something about that Mesa isn't actually OpenGL.

That's right. Due to licensing issues, Mesa is not allowed to call itself an
OpenGL implementation, but it's pretty much compatible with it.

Quote:
It's a software implementation of it.

It ususally uses software rendering, AFAIK.
 
Lasse Liehu
Posted: Sun Apr 24, 2005 5:02 pm
Guest
Wolfgang Draxinger wrote:
Quote:
Actually when you link your programm against libGL.so (use the
compiler option -l so it would be '-lGL') then the system will
use the one OpenGL implementations that is installed. If you got
Mesa3D then libGL.so will be a symlink to libMesaGL.so. On my
system it would be libGL.so provided by the ATI driver package.
For more information on how shared libraries are loaded in Linux
and alikes refer to the manpages of 'ld' and 'ld.conf'.

Other OpenGL implementations are e.g. the libGL.so that come
with your graphics card's drivers. Both nVidia and ATI provide
closed source drivers for Linux. Unfortunately the ATI ones are
quite a mess.

So when I have nVidia's graphics card driver installed and if I find
libGL.so and I don't have Mesa3D installed, I only need OpenGL headers and
then I can build and link OpenGL programs (don't use Mesa) for Linux. And
they runs other graphics cards than my graphics card's vendor cards too.

I don't be sure of this all (yet). So I wrote this here, so other people can
tell me if I'm wrong.
 
JB West
Posted: Mon Apr 25, 2005 1:03 pm
Guest
"Lasse Liehu" <lliehu@kolumbus.fi> wrote in message
news:d4gerh$r29$1@phys-news1.kolumbus.fi...
Quote:
Wolfgang Draxinger wrote:
Actually when you link your programm against libGL.so (use the
compiler option -l so it would be '-lGL') then the system will
use the one OpenGL implementations that is installed. If you got
Mesa3D then libGL.so will be a symlink to libMesaGL.so. On my
system it would be libGL.so provided by the ATI driver package.
For more information on how shared libraries are loaded in Linux
and alikes refer to the manpages of 'ld' and 'ld.conf'.

Other OpenGL implementations are e.g. the libGL.so that come
with your graphics card's drivers. Both nVidia and ATI provide
closed source drivers for Linux. Unfortunately the ATI ones are
quite a mess.

So when I have nVidia's graphics card driver installed and if I find
libGL.so and I don't have Mesa3D installed, I only need OpenGL headers and
then I can build and link OpenGL programs (don't use Mesa) for Linux. And
they runs other graphics cards than my graphics card's vendor cards too.

I don't be sure of this all (yet). So I wrote this here, so other people
can
tell me if I'm wrong.


You've about got it. NVIDIA provides an excellent libGL implementation and
updated
headers that have all of their supported extensions. You don't need (or
want) any
Mesa3D in such a situation. Programs built with these will run on ATI or
software-only
equiupped systems, as long as you correctly use the extensions capabilities
query mechanism
in OpenGL and don't use features that don't exist on some cards.

-jbw
 
 
Page 1 of 1    
All times are GMT
The time now is Sun Nov 08, 2009 1:21 pm