[Mesa-dev] [PATCH 3/3] i965/anv: use nir_opt_vectorize_io()
Jason Ekstrand
jason at jlekstrand.net
Sun Oct 28 01:18:34 UTC 2018
On Sat, Oct 27, 2018 at 8:03 PM Timothy Arceri <tarceri at itsqueeze.com>
wrote:
> From: Timothy Arceri <tarceri at 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.
>
Why are we running it on fragment shaders? They don't benefit at all from
vector I/O. For that matter, why does it affect them at all?
--Jason
> 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 at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20181027/f9b286cc/attachment.html>
More information about the mesa-dev
mailing list