anv/pipeline: Constant fold after apply_pipeline_layout

Thanks to the new NIR load_descriptor intrinsic added by the UBO/SSBO
lowering series, we weren't getting UBO pushing because the UBO range
detection pass couldn't see the constants it needed.  This fixes that
problem with a quick round of constant folding.  Because we're folding
we no longer need to go out of our way to generate constants when we
lower the vulkan_resource_index intrinsic and we can make it a bit
simpler.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
This commit is contained in:
Jason Ekstrand
2019-01-10 01:47:14 -06:00
committed by Jason Ekstrand
parent 031e94dc72
commit 8ea8727a87
2 changed files with 5 additions and 12 deletions

View File

@@ -544,6 +544,7 @@ anv_pipeline_lower_nir(struct anv_pipeline *pipeline,
pipeline->device->robust_buffer_access,
layout, nir, prog_data,
&stage->bind_map);
NIR_PASS_V(nir, nir_opt_constant_folding);
}
if (nir->info.stage != MESA_SHADER_COMPUTE)