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