From: Timothy Arceri <tarceri@localhost.localdomain> Commit 8d8222461f9d7f49 caused substantially more URB messages in geometry and tessellation shaders (due to enabling nir_lower_io_to_scalar_early). This combines io again to avoid this regression while still allowing link time optimisation of components.
Shader-db results (SKL): total instructions in shared programs: 13107449 -> 13104666 (-0.02%) instructions in affected programs: 304803 -> 302020 (-0.91%) helped: 1136 HURT: 409 total cycles in shared programs: 332066434 -> 332125306 (0.02%) cycles in affected programs: 70735188 -> 70794060 (0.08%) helped: 11797 HURT: 13257 LOST: 2 GAINED: 1 Most of the cycle/instruction changes is with fragment shaders. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107510 --- src/intel/vulkan/anv_pipeline.c | 6 ++++++ src/mesa/drivers/dri/i965/brw_link.cpp | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c index 7c9b1230115..63acb3cc25e 100644 --- a/src/intel/vulkan/anv_pipeline.c +++ b/src/intel/vulkan/anv_pipeline.c @@ -1016,6 +1016,12 @@ anv_pipeline_compile_graphics(struct anv_pipeline *pipeline, void *stage_ctx = ralloc_context(NULL); + if (nir_opt_vectorize_io(stages[s].nir)) { + brw_nir_optimize(stages[s].nir, compiler, + compiler->scalar_stage[stages[s].nir->info.stage], + false); + } + anv_pipeline_lower_nir(pipeline, stage_ctx, &stages[s], layout); const unsigned *code; diff --git a/src/mesa/drivers/dri/i965/brw_link.cpp b/src/mesa/drivers/dri/i965/brw_link.cpp index 2cbb1e0b879..0bcd73af04c 100644 --- a/src/mesa/drivers/dri/i965/brw_link.cpp +++ b/src/mesa/drivers/dri/i965/brw_link.cpp @@ -319,6 +319,12 @@ brw_link_shader(struct gl_context *ctx, struct gl_shader_program *shProg) struct gl_program *prog = shader->Program; + if (nir_opt_vectorize_io(prog->nir)) { + brw_nir_optimize(prog->nir, compiler, + compiler->scalar_stage[prog->info.stage], + false); + } + _mesa_update_shader_textures_used(shProg, prog); brw_shader_gather_info(prog->nir, prog); -- 2.17.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev