nir/lower_tex: add lowering for texture gradient on shadow samplers
authorIago Toral Quiroga <itoral@igalia.com>
Wed, 30 Nov 2016 10:31:01 +0000 (11:31 +0100)
committerIago Toral Quiroga <itoral@igalia.com>
Tue, 13 Dec 2016 09:32:52 +0000 (10:32 +0100)
commit5be2e785b1df2160424eb73e53cca340e0130020
tree9f3766b1975786ebbb3b0529099de34be499784e
parentf90da64fc65d8da99a5a5a140be7b64c8cf5ee6a
nir/lower_tex: add lowering for texture gradient on shadow samplers

This is ported from the Intel lowering pass that we use with GLSL IR.
This takes care of lowering texture gradients on shadow samplers other
than cube maps. Intel hardware requires this for gen < 8.

v2 (Ken):
 - Use the helper function to retrieve ddx/ddy
 - Swizzle away size components we are not interested in

v3:
- Get rid of the ddx/ddy helper and use nir_tex_instr_src_index
  instead (Ken, Eric)

v4:
- Add a 'continue' statement if the lowering makes progress because it
  replaces the original texture instruction

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> (v3)
src/compiler/nir/nir.h
src/compiler/nir/nir_lower_tex.c