Does mesa use hardware acceleration?

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?

All help and comments are most welcome.
Ben

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.

Thanks PK. Much obliged.

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.

Jamie

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.

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.