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

Bringing GL_ARB_gpu_shader_fp64 to Intel GPUs (XDC 2016)
NIR on the Mesa i965 backend (FOSDEM 2016)
GPU driver development
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 20/04/2017

ARB_gpu_shader_fp64 support on IvyBridge finally landed!

We, at Igalia, have been involved in enabling ARB_gpu_shader_fp64 extension to different Intel generations: first Broadwell and later, then Haswell. Now IvyBridge support is finished and landed Mesa’s master branch. This feature was the last one...

Samuel Iglesias 09/01/2017

Vulkan's Float64 capability support on ANV driver landed!

Since beginning last year, our team at Igalia has been involved in enabling ARB_gpu_shader_fp64 extension to different Intel generations: first Broadwell and later, then Haswell, now IvyBridge (still under review); so working on supporting Vulkan’s...

Iago Toral 06/01/2017

GL_ARB_gpu_shader_fp64 / OpenGL 4.0 lands for Intel/Haswell. More gen7 support coming soon!

2017 starts with good news for Intel Haswell users: it has been a long time coming, but we have finally landed GL_ARB_gpu_shader_fp64 for this platform. Thanks to Matt Turner for reviewing the huge patch series! Maybe you are not particularly …...

Iago Toral 15/11/2016

OpenGL terrain renderer update: Motion Blur

As usual, it can be turned on and off at build-time and there is some configuration available as well to control how the effect works. Here are some screen-shots: Motion Blur Off Motion Blur Off Motion Blur On, intensity 12.5% … Continue reading...

Iago Toral 20/10/2016

OpenGL terrain renderer update: Bloom and Cascaded Shadow Maps

Bloom Filter The bloom filter makes bright objects glow and bleed through other objects positioned in between them and the camera. It is a common post-processing effect used all the time in video games and animated movies. The demo supports …...


Revert "getteximage: Return correct error value when texure object is not found"

From OpenGL 4.5 spec PDF, section '8.11. Texture Queries', page 236: "An INVALID_VALUE error is generated if texture is not the name of an existing texture object." Same wording applies to the compressed version. But turns out this is a spec bug,...

Juan A. Suárez22/06/2017

Revert "arb_get_texture_sub_image-errors: Fix expected error values"

In commit aec149c we test that glGetTextureSubImage() and glGetCompressedTextureSubImage() returns INVALID_VALUE when the texture is not the name of an existing texture object. Nevertheless, this is a bug in the OpenGL 4.5 spec itself, that has...

Juan A. Suárez22/06/2017

radeonsi: call LLVMAddEarlyCSEMemSSAPass only for LLVM >= 4.0

LLVMAddEarlyCSEMemSSAPass() is defined in LLVM 4.0. Fixes: 257b538 ("radeonsi: do EarlyCSEMemSSA LLVM pass) Signed-off-by: Marek Olšák

Juan A. Suárez08/06/2017

tests: Added a couple of new test profiles for the Khronos CTS runner

After: https://github.com/KhronosGroup/VK-GL-CTS/commit/af8c22a343ee2c230488f6de71b36dc3070b2024 OpenGL GL*-CTS case lists were renamed to KHR-GL*. We want to keep the existing profiles so we are able to keep running the caselists from previous CTS...

Andrés Gómez07/06/2017