On Mon, Jun 23, 2014 at 10:27 PM, Abdiel Janulgue
<abdiel.janul...@linux.intel.com> wrote:
> This patch series add the plumbing to support the GLSL IR instruction 
> saturate().
> Previously, saturate is implemented as min/max instructions. Most GPUs, 
> however,
> can probably perform saturate for free. With these changes, we can allow 
> saturate
> to be optimized as a single instruction.
>
> In addition, the optimization try_emit_saturate was previously used to 
> optimize
> min/max operations to a saturate operation. It didn't work for code such as
> min(max(a, b), c) where (b == 0.0 and c < 1.0) and related cases.
> With this infrastructure in place, we can optimize those operations easily in 
> the
> do_algebraic pass. This is done in the next patch set.

Nice work.

> Abdiel Janulgue (11):
>       glsl: Add ir_unop_saturate
>       glsl: Add constant evaluation of ir_unop_saturate
>       glsl: Add a pass to lower ir_unop_saturate to clamp(x, 0, 1)

With the fixes mentioned in their respective threads, these are

Reviewed-by: Matt Turner <matts...@gmail.com>

>       ir_to_mesa, glsl_to_tgsi: lower ir_unop_saturate
>       ir_to_mesa, glsl_to_tgsi: Add support for ir_unop_saturate
>       ir_to_mesa, glsl_to_tgsi: Remove try_emit_saturate

>       i965/fs: Add support for ir_unop_saturate
>       i965/vec4: Add support for ir_unop_saturate
>       i965/fs: Remove try_emit_saturate
>       i965/vec4: Remove try_emit_saturate
>       glsl: Implement saturate as ir_binop_saturate

As well as these.

I'll review the ir_to_mesa and glsl_to_tgsi patches now. I'd like it
it someone more familiar with that code (and whose driver uses it)
would also review them.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to