Hi, I would like to develop some games in linux using the OpenGL API. Everywhere I go looking for the libraries says: Use Mesa - it’s basically the same thing. But on the Mesa3d site, it says that mesa uses software acceleration. Can someone explain this? How do I develop hardware accelerated games on linux using the OpenGL API?
I have a NVidia card. Am I right in understanding that they also provide an OpenGL implementation with their drivers?
Does not mesa do like the openGL API, if hardware acceleration is aviable uses it.
Also if a function is not supported by the card in hardware it will be done in software by mesa.
Also now with the xfree86 video drivers, hardware acceleration is supported for many of the popular cards.
Anyway you still need mesa library’s to program openGL in linux. But now they library’s go by the standard openGL format of libGL, libGLU, libglut.
Originally posted by PK:
[b]Mesa is a software implementation of the OpenGL API. So you can think of it like:
Program -> API -> Mesa -> display
nVidia provides a hardware implementation of the OpenGL. nVidia’s drivers “drive” the implementation. So it’s kinda like:
Program -> API -> driver -> video card -> display
You need to install nVidia’s drivers. You don’t need Mesa.[/b]
In your case the OpenGL drivers from NVidia are what you need because Mesa does not have a HW accelerated driver for NVidia cards.
– That is not to say that Mesa does not have HW acceleration, there are a bunch of graphics cards that work really well with hardware acceleration using Mesa. NVidia choose to write there own drivers and not release the hardware documentation, so the Mesa developers did not write drivers for their cards. This is a touchy issue with some people who like to see all the Hardware Manufactures release their specs. I’m just happy to get support from NVidia, so I can use their cards under Linux.
Mesa always was and still is a software implementation(except for voodoo cards I think). Previously the utah-glx project provided a hw driver based on the mesa sources as dri is currently doing. In short the mesa code(not the one in mesa3d.org but the one bundled with xlibs,which might be slightly modified) is used for the dispatcher, api core and software fallback parts while card-specific code does the actual rasterization,etc. For more info follow this link: http://dri.sourceforge.net/faq/faq_display.phtml?id=38
[This message has been edited by zen (edited 04-16-2003).]
Originally posted by nexusone:
Anyway you still need mesa library’s to program openGL in linux.
If you have an nVidia card, you install nVidia drivers, and they provide your OpenGL implementation.
I don’t have mesa installed and I can compile and run OpenGL apps just fine.
$ emerge -s mesa
media-libs/mesa [ Masked ]
Latest version available: 3.5
Latest version installed: [ Not Installed ]
Size of downloaded files: 2,247 kB
Homepage: http://mesa3d.sourceforge.net/
Description: OpenGL like graphic library for Linux
media-libs/mesa-glu [ Masked ]
Latest version available: 3.5
Latest version installed: [ Not Installed ]
Size of downloaded files: 2,247 kB
Homepage: http://mesa3d.sourceforge.net/
Description: OpenGL like graphic library for Linux, this package only contains the glu and glut parts
The mesa packages are specifically masked in my Portage tree so that they won’t be installed.
Originally posted by zen:
[b]Mesa always was and still is a software implementation(except for voodoo cards I think). Previously the utah-glx project provided a hw driver based on the mesa sources as dri is currently doing. In short the mesa code(not the one in mesa3d.org but the one bundled with xlibs,which might be slightly modified) is used for the dispatcher, api core and software fallback parts while card-specific code does the actual rasterization,etc. For more info follow this link: http://dri.sourceforge.net/faq/faq_display.phtml?id=38
[This message has been edited by zen (edited 04-16-2003).][/b]
I believe that this is how a well-behaved OpenGL implementation works. It provides a path to the hardware through a driver, when the hardware is there, and if it isn’t it provides a software path.
In the case of the NVidia drivers, they did not just write a driver to plug into mesa, they wrote another OpenGL implementation that uses their hardware, – bypassing the Mesa implementation of OpenGL.