Iago Toral

Ourense (Spain)

Iago has been a member of Igalia since 2003 and became a partner of the company in 2006.

Latest Updates

Iago Toral 02/10/2017

Working with lights and shadows – Part III: rendering the shadows

In the previous post in this series I introduced how to render the shadow map image, which is simply the depth information for the scene from the view point of the light. In this post I will cover how to … Continue reading →

Iago Toral 30/07/2017

Working with lights and shadows – Part II: The shadow map

In the previous post we talked about the Phong lighting model as a means to represent light in a scene. Once we have light, we can think about implementing shadows, which are the parts of the scene that are not … Continue reading →

Iago Toral 21/06/2017

Working with lights and shadows – Part I: Phong reflection model

Some time ago I promised to write a bit more about how shadow mapping works. It has taken me a while to bring myself to actually deliver on that front, but I have finally decided to put together some posts … Continue reading →

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...


By Type:


i965: Make vec4_visitor's destructor virtual

We need a virtual destructor when at least one of the class' methods is virtual. Failure to do so might lead to undefined behavior when destructing derived classes. Fixes the following warning: brw_vec4_gs_visitor.cpp: In function 'const unsigned int*...

Iago Toral05/10/2015

glsl: revert "glsl: atomic counters can be declared as buffer-qualified variables"

This reverts commit 586142658e2927a68c. The specs are not explicit about any restrictions related to the types allowed on buffer variables, however, the description of opaque types (like atomic counters) is in conclict with the purpose of buffer...

Iago Toral28/09/2015

i965/fs: Fix comparison between signed and unsigned integer expressions

brw_fs_visitor.cpp: In member function 'void fs_visitor::emit_urb_writes()': brw_fs_visitor.cpp:977:58: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] Reviewed-by: Tapani Pälli

Iago Toral18/09/2015

i965/vec4: Don't unspill the same register in consecutive instructions

If we have spilled/unspilled a register in the current instruction, avoid emitting unspills for the same register in the same instruction or consecutive instructions following the current one as long as they keep reading the spilled register. This...

Iago Toral04/09/2015

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