linux.conf.au 2014

Perth, Western Australia - 6th to 10th January 2014

linux.conf.au


<-- Back to schedule

Building 2D rendering acceleration with OpenGL

Project: Mesa, X.Org, Cairo

A Linux graphics driver stack generally consists of a kernel component, an OpenGL driver, a 2D X Window System driver, a video decode/encode driver, and a small bit of shared code between those 3 userspace components. However, given that a 2D X driver has to program the graphics hardware's 3D pipeline just like OpenGL does, it seems like a waste to build and optimize that hardware support code twice.

The problem is that open source OpenGL has been too slow a long time, due to developers focusing optimization effort on the 2D rendering that made up their desktop environments. However, the majority of developer time is now spent on OpenGL, modern OpenGL offers us some new extensions to reduce the overhead of setting up drawing, and it exposes some hardware functionality that we never got around to exploiting in X.

This talk will cover development in Mesa, Cairo, and X, to rebuild Linux's 2D rendering on top of OpenGL, faster than we've experienced before and in less code.

Eric Anholt

Eric Anholt started working on open source to get video games to work on the graphics drivers in Linux and FreeBSD back in high school. He has been a developer for Intel's Open Source Technology Center since 2006. He was a key developer of the GEM kernel graphics memory management API, and a major contributor to the new GLSL compiler for GL 3.1 and beyond.