implementation of API in openGL/Mesa

mesa is a implementation for openGL, but i would like to know much deeper into tht like where exactly the implementation of each API is written ? as per the code of mesa i could able to understand the implementation of it…

and one more ques is where exactly the openGL will run … either on GPU / CPU and on what basis the performance will vary …

kindly let me know …thnx

For Linux

For Windows
It doesn’t come with Mesa, but you can download the opengl32.dll.
Also, it is a software rasterizer.

I don’t quite understand the question … What hardware CPU? GPU? do you plan to utilize with linux? This will help decide which case above makes most sense.

In linux if you want:

  1. Optimal usage of GPU: Use proprietary binary drivers from NVIDIA or ATI (not open source). These are good typically up to OpenGL 4.2 spec depending on GPU.

  2. Slower and partial use of GPU up to OpenGL 2.1: Mesa 3D and Direct Rendering Infrastructure project tries to make use of the GPU for some limited cards. This is slower than case one but somewhat faster than pure CPU implementation if you have the supported GPU. Nvidia is not on the list of supported cards for instance – for that there is the nouveau project.

  3. A software CPU rasterizer not requiring a GPU: Mesa is essentially a software (CPU) implementation of OpenGL 2.1 API. There is some effort to get GPUs working as stated in case 2 but it is no where as complete and fast as case 1.

I personally have tried Mesa with each new linux upgrade just to see its progress. Then immediately install the proprietary driver because I really want to work in openGL 4.2 and have the faster performance. Don’t get me wrong Mesa is pretty good and an impressive valuable project for the open source community. It really depends on what is required of your openGL expectations.

thnx marshats

but can we able to see the function defination for API i.e…,like vertex2d … in the mesa3d source code?

Yes, mesa source code is completely open to look at. Why haven’t you simply downloaded the source code at their website and looked at the code?

Have you clicked on the “Documentation”->“FAQ” link at It mentions what mesa3d is and is not in detail.

yeah i have gone through the link but i am unable to trace the implementation for API in source code…i shall be happy :slight_smile: if i get some information on finding that…