i965: use nir_lower_indirect_derefs() for GLSL
authorTimothy Arceri <timothy.arceri@collabora.com>
Mon, 15 Aug 2016 00:09:25 +0000 (10:09 +1000)
committerJason Ekstrand <jason.ekstrand@intel.com>
Mon, 5 Dec 2016 22:00:35 +0000 (14:00 -0800)
commit9404439a754e5640ccd98df40fa694835c0d8759
tree5764e7da8402ae6c9e62991a01afcd80813cc3f3
parent0c70b26a2d66ab05e0ab551a8206538914aed531
i965: use nir_lower_indirect_derefs() for GLSL

This moves the nir_lower_indirect_derefs() call into
brw_preprocess_nir() so thats is called by both OpenGL and Vulkan
and removes that call to the old GLSL IR pass
lower_variable_index_to_cond_assign()

We want to do this pass in nir to be able to move loop unrolling
to nir.

There is a increase of 1-3 instructions in a small number of shaders,
and 2 Kerbal Space program shaders that increase by 32 instructions.

Shader-db results BDW:

total instructions in shared programs: 8705873 -> 8706194 (0.00%)
instructions in affected programs: 32515 -> 32836 (0.99%)
helped: 3
HURT: 79

total cycles in shared programs: 74618120 -> 74583476 (-0.05%)
cycles in affected programs: 528104 -> 493460 (-6.56%)
helped: 47
HURT: 37

LOST:   2
GAINED: 0
src/intel/vulkan/anv_pipeline.c
src/mesa/drivers/dri/i965/brw_link.cpp
src/mesa/drivers/dri/i965/brw_nir.c