Show Your Support: Did you know that the hundreds of articles written on Phoronix each month are mostly authored by one individual? Phoronix.com doesn't have a whole news room with unlimited resources and relies upon people reading our content without blocking ads and alternatively by people subscribing to Phoronix Premium for our ad-free service with other extra features.
Intel Aims To Hit On Performance, Plans LLVM Compiler
Anholt began his hour-long presentation by taking about OpenGL 3.1 finally coming about in Mesa, OpenGL ES 3.0 coming together fairly quickly, MSAA anti-aliasing finally being settled, and various other Mesa/DRM accomplishments that have already been covered at length on Phoronix.
Eric then went on to talk about performance improvements coming to Mesa for Intel hardware, due to people running more benchmarks (Phoronix) and for improving Valve's Linux performance.
One of the big ones they are working on is providing threaded GL dispatch support within the Intel Mesa driver, which comes down to separating the driver and application work to multiple cores. The closed-source AMD and NVIDIA drivers perform this threaded dispatch, but Mesa does not and it's causing performance problems and is one of the features being requested by Valve.
Another item being worked on for improving the Intel OpenGL Linux performance is better memory mapping.
Then a big item was shared: Intel's planning to do an LLVM shader compiler back-end for their driver. The Radeon Gallium3D driver already has an LLVM shader compiler but Intel is now interested in switching to LLVM too for a high-performance shader compiler. This should yield Intel's biggest performance win of the items they're currently working on.
Intel now being interested in a LLVM shader compiler for their graphics driver is rather interesting since in past years they preferred writing their own compiler and weren't convinced about using LLVM IR, etc. However, after working on their own compiler, their own IR, and other prerequisites for years and still not being satisfied, they're now planning to use LLVM. "We want to use a real compiler and stop writing our own with our own IR, own optimizations, etc."
It will be a while before Intel's Mesa driver has a working LLVM shader compiler and they're being cautious about not having the switch between compilers be painful. "The transition to LLVM looks pretty ugly since it's a big change. Hopefully better on regressions when changing shader compilers this time than last time."
Eric also shared that they'll likely go from OpenGL 3.1 to OpenGL 3.3 in Mesa without ever releasing an OpenGL 3.2 version since most of the work to getting to GL3.3 will be coming at the same time. For hitting OpenGL 4.0, it will still be a while in Mesa. Eric believes though that they eventually will catch up with the latest upstream Khronos OpenGL desktop specification since Intel developers have been working harder and catching up faster than the one to two new specification releases per year, but still it will be a long process.
Also mentioned by Eric is "GLX is pretty much deprecated at this point." Intel is encouraging developers to use EGL rather than GLX. EGL is needed anyways for Wayland, Android, OS X, etc and the Mesa EGL support has matured quite well and still works fine with an X.Org Server. Eric said, "Please please please stop using GLX. There shouldn't be anything left that GLX has that EGL doesn't."
The Intel Valve Linux details shared will come in another Phoronix article.