Graphics Pipeline and Rendering Technologies

High framerates, smooth animations, and quality display are key to user interaction. Igalia has years of experience building and optimizing many different parts of the graphics stack.

Companies developing software for mobile, embedded or desktop environments often find the graphics and rendering software stack to be one of their greatest challenges. The most successful devices and software platforms have optimized, frictionless user experience, including fast rendering and fluid touch interfaces.

At Igalia we have been creating high performance user interfaces and middleware for the past decade. Along the way, we've built accelerated compositors, eliminated hardware bottlenecks, optimized rendering of web browsers, and perfected font display.

Open source work is a part of our company culture, so we are long time contributors to and integrators of toolkits and APIs like Mesa, OpenGL, GTK+, EFL, Qt, Clutter/Cogl and Wayland. Some of our work includes:

  • Implementation of new standards such as WebGL and WebAudio, multimedia acceleration and GStreamer integration in WebKit
  • Maintenance of GStreamer support in WebKit
  • Accelerated large drop-shadows in web engines
  • Building cross-process graphics architectures and compositors for projects like WebKit2

We can help you ensure that your users have a compelling experience powered by an optimized graphics software stack.



  • OpenGL
  • WebGL
  • Mesa
  • Wayland
  • Cairo
  • HTML acceleration
  • Harfbuzz
  • Graphical toolkits
  • Graphical libraries
  • Accelerated Rendering
  • Accelerated Compositing

Featured Media

How to test OpenGL drivers using Free Software (FOSDEM 2015)
WebKitGTK+ Wayland: WebKit2 and Accelerated Compositing
WebKitGTK+: WebGL & Accelerated Compositing
Epiphany on Wayland: WebGL and CSS3D
OpenGL drivers using Free Software at FOSDEM 2015
WebGL game in Epiphany with WebKit2
WebGL game in Epiphany with WebKit2


Samuel Iglesias 12/06/2015

piglit (V): how to contribute to piglit and table of contents

Last post and the one before were about how to create your own piglit tests. Previously, I have written an introduction to piglit and how to launch a tailored piglit run (more details about these last two topics in my FOSDEM 2015 talk). Now it’s...

Samuel Iglesias 11/06/2015

piglit (IV): How to write binary test programs

Last post I talked about how to develop GLSL shader tests and how to add them to piglit. This is a nice way to develop simple tests but sometimes you need to do something more complex. For that case, piglit can run binary test programs. Introduction...

Samuel Iglesias 29/05/2015

piglit (III): How to write GLSL shader tests

In earlier posts I talked about how to install piglit on your system and run the first time and how to tailor your piglit run. I have given a talk in FOSDEM 2015 about how to test your OpenGL drivers using Free Software where I explained how to run...

Iago Toral 20/05/2015

Bringing ARB_shader_storage_buffer_object to Mesa and i965

In the last weeks I have been working together with my colleague Samuel on bringing support for ARB_shader_storage_buffer_object, an OpenGL 4.3 feature, to Mesa and the Intel i965 driver, so I figured I would write a bit on what this brings to OpenGL/GLSL...

Iago Toral 27/04/2015

Free access to Valve-produced games on Steam for Mesa contributors

Just like they did for Debian developers before, it is Valve’s way of saying thanks and giving something back to the community. This is great news for all Mesa contributors, now we can play some great Valve games for free and we can also have an...


i965/gen8: Fix antialiased line rendering with width < 1.5

The same fix Marius implemented for gen6 (commit a9b04d8a) and gen7 (commit 24ecf37a). Also, we need the same code to handle special cases of line width in gen6, gen7 and now gen8, so put that in the helper function we use to compute the line...

Iago Toral11/06/2015

nir: prevent use-after-free condition in should_lower_phi()

lower_phis_to_scalar() pass recurses the instruction dependence graph to determine if all the sources of a given instruction are scalarizable. To prevent cycles, it temporary marks the phi instruction before recursing in, then updates the entry with the...


swrast: Fix rgba_draw_pixels with GL_COLOR_INDEX

When we implemented the format conversion rewrite we forgot to handle GL_COLOR_INDEX here, which needs special handling. Fixes the following piglit test: bin/gl-1.0-drawpixels-color-index -auto -fbo Buzilla:...

Iago Toral04/05/2015

i965: Fix out-of-bounds accesses into pull_constant_loc array

The piglit test glsl-fs-uniform-array-loop-unroll.shader_test was designed to do an out of bounds access into an uniform array to make sure that we handle that situation gracefully inside the driver, however, as Ken describes in bug 79202, Valgrind...

Iago Toral10/03/2015