Short Overview: Current State of Mesa and OpenGL on Linux

cube-with-matrix
Most free X.Org graphic drivers are based on Mesa, which is a free OpenGL specification implementation. However, while OpenGL is already in Version 2.1 the Mesa implementation only supports version 1.5. This is to change soon – but OpenGL will make new releases as well.

Graphics in Linux has several problems and issues: first of all there is only Intel providing real free graphics drivers – but Intel does not build high-end graphics hardware. Second, Microsoft did its usual monopoly homework, and everyone talks about DirectX 10 – it becomes harder to port graphics apps between Windows and Linux because on Windows you most certainly want to use DirectX. Third there is OpenGL itself: the development stagnated for quite some time and the current OpenGL API does not support all the new cool hardware things out there. Fourth, and that is something I realized just few hours ago, the OpenGL implementation for Linux, Mesa, does only provide an OpenGL implementation for Version 1.5 – although OpenGL 2.0 was introduced almost three years ago.

The first problem might see changes in the future: Nvidia always provided advanced graphics drivers for the Linux community, and AMD at least said it would like to solve issues somehow. The second problem is more difficult: it depends on how well OpenGL evolves in the future. If the API is well implemented with Windows and if there are impressive features and such things available which are appealing to developers on the Windows platform these might prefer OpenGL again instead of DirectX. But to achieve that goal the OpenGL people really have to do their homework.

This is somehow related to the third problem: OpenGL itself. Version 2.0 was released in autumn 2004, version 2.1 was released last year. This year we will see two releases at once: one release in the 2.x branch – and a 3.0 release.

First one that is coming out soon is Longs Peak (OpenGL 2.x), which is a major clean-up of the code after almost a decade and a half of nothing else but stacking numerous extensions together.
This API is supposed to arrive in summer timeframe, most probably July. Approximately three months after that, Mount Evans (OpenGL 3.0) will run specifically on hardware born after November 8th, 2006. You’ve guessed it correctly, we are talking about DirectX 10-class hardware, bringing all the features of unified 3D architecture to the world of OpenGL.

This means that OpenGL will get all cool features as well – eventually. I hope that this move is not too late, and I really hope that this will bring more people to use OpenGL again. This is crucial as soon as it comes to porting applications to Linux or any other operating system.

But to use all these cool features there must be drivers available who actually implement these features. Nvidia and ATI/AMD provide Linux drivers (and Windows drivers of course) implementing OpenGL in version 2.1 (Nvidia) or 2.0 (ATI/AMD). However, the free implementation of OpenGL, Mesa 3D is only at version 1.5 – which was released 4 (!) years ago. This is depressing somehow :/
However, the current development version of Mesa, version 6.5.3 is in a good state and a new version, v7.0 featuring OpenGL 2.0/2.1 support is expected soon:

Mesa 7.0 is expected to follow shortly.

Shortly can be anything, but to me it sounds like we see OpenGL support this summer.

The question is afterwards: how fast will the drivers pick up the implemented support for the new API? I can only hope that they are already targeting at the new Mesa release.

And there is another question: how ling will it take to take on with the next OpenGL releases? 4 years are just too much time for the fast developing graphics market.

But having a look at the Mesa news it looks more like that the main development was done in recent months, meaning that the development sped up, compared to the time before. This would mean that there is now an active development community behind Mesa. And if that is true chances are that we will see OpenGL 2.x and 3.x support soon in Mesa.

In any case, the new Mesa will be released soon. And since it will be the first main release after 3 years we can expect a lot of news overage, maybe even an interview or two and quite some information about the road map of Mesa and even OpenGL.

I just hope Mesa will update their homepage till then, it looks horrible at the moment 😉

16 thoughts on “Short Overview: Current State of Mesa and OpenGL on Linux”

  1. Graphics in Linux has several problems and issues: first of all there
    is only Intel providing real free graphics drivers – but Intel does
    not build high-end graphics software. Second, Microsoft did its usual
    monopoly homework, and everyone talks about DirectX 10 – it becomes
    harder to port graphics apps between Windows and Linux because on
    >
    >
    Yeah, there’s a problem alright. Lamers like you are increasingly unable to sucker Linux users into spending $$$$$ on totally useless ATI and Nvidia graphics cards every 6 months or so.

  2. even intel can’t still make a good driver, doom3 works quiet well with GMA 945 under windows, but don’t work under linux and i have all the latest goodies, x11 7.3 (ok a developpement version), and mesa 6.5.3

  3. This might be due to Mesa – it doesn’t implement that much current and maybe necessary OpenGL.
    Have you filled a bug report? Did they respond? That might clear the situation.

  4. >Graphics in Linux has several problems and issues: first of all there is
    >only Intel providing real free graphics drivers – but Intel does not build
    >high-end graphics software.
    That doesn’t quite make sense, I think you meant to say in the last sentence “but Intel does not build high-end graphics hardware”.

  5. Actually, it doesn’t matter what version of OpenGL Mesa supports if you are installing drivers from the manufacturer (ATI/NVidia/Intel), because they include their own driver which implements OpenGL, and it is usually at 2.0 or higher.
    I disagree with your comment that OpenGL on windows is in ok shape. On Windows XP Pro SP2, guess what version of OpenGL is supported? 1.0. The only way you can get the fancy features of the newer versions is by using extensions. In fact, I don’t know of a single recent game which will run on the opengl driver provided by Microsoft. You MUST install your manufacturer’s driver.
    I think that OpenGL (Mesa) is doing quite well. It is actively maintained, and supports all of the 1.5 features, and most of the newer ones (as extensions) as well (usually within weeks of their implementation by manufacturers). In fact, if you are planning to install (closed source and proprietary) drivers for your card, then Mesa isn’t used at all.

  6. Adam: I can’t follow you. You state that I wrote that the Linux proprietary drivers use Mesa and that I wrote that OpenGL is well implemented in Windows. That is not true, I did not state such things:
    I know that Mesa isn’t used at all by the proprietary drivers, and that these do provide their own installations. That’s exactly what I’ve written above:
    “But to use all these cool features there must be drivers available who actually implement these features. Nvidia and ATI/AMD provide Linux drivers (and Windows drivers of course) implementing OpenGL in version 2.1 (Nvidia) or 2.0 (ATI/AMD).”
    Where dooes this differ from what you’ve said ?

    And where do I say that Windows implements OpenGL well?

  7. I had the impression you knew that the proprietary drivers implemented OpenGL 2.0 and 2.1, but since MESA was only 1.5, you were unable to take advantage of it.

  8. dyluck: I don’t get your point – yes, I knew about the state of the proprietary drivers and also about the free Mesa… I even wrote it above!

  9. The fact is: it is not clear when or how Mesa or a proprietary driver OpenGL implementation is used or comes into play at Linux, DRI, or what else layer.

  10. Zeco: What are you talking about? Why should it not be clear? It is indeed pretty well known which drivers do access Mesa and which not.

  11. liquidat: I enjoyed that informative write-up, thank you. However, not everyone is an expert on X, Mesa, etc. If it’s well known which drivers use Mesa and which do not perhaps you could fill us in on said information (at least w.r.t. a few of the more popular drivers such as nv, nvidia, ati, radeon, fglrx, maybe some Matrox cards, etc.)

    Of course we all know how to use Google and such, but you’ve already done a nice job of collecting relevant info in this area so that’s why we ask you.

  12. sjs, I’m not an expert neither, and everything I know is already written above in the article:
    All proprietary drivers do not use Mesa but their own implementation, all free drivers use Mesa.

  13. Mesa is an all software/userspace implementation of opengl. Windows also has a software fallback implementation of opengl. I found this out when testing a gl game I wrote on multiple systems. Graphics card manufacturers provide an ICD (Installable Client Driver). The ICD supports the OpenGL interface, but executes in hardware which is commonly much faster. Modern games typically never use the software implementations, relying heavily on current ICDs to provide the speed necessary to work correctly.

  14. gmon, this is not correct afaik: all free X.Org hardware drivers do use Mesa. To also quote Wikipedia:

    The Direct Rendering Infrastructure (DRI) finally succeeded in providing an infrastructure for direct 3D rendering by the OpenGL applications and was officially added to Mesa.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.