[Mesa-dev] [PATCH] anv,i965: Move CS shared lowering into anv
Jordan Justen
jordan.l.justen at intel.com
Wed Aug 23 21:54:27 UTC 2017
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
On 2017-08-23 14:00:29, Jason Ekstrand wrote:
> Right now, OpenGL uses the GLSL lowering for shared variables and anv
> uses NIR to lower them. For a long time, we've done this weird thing
> where we do the NIR lowering unconditionally and then add the SLM sizes
> from the two together. This works because one of them will always be 0
> but it's a bit sketchy. Let's just move the NIR-based lowering into
> anv_pipeline and get rid of the sketch.
>
> Cc: Jordan Justen <jordan.l.justen at intel.com>
> ---
> src/intel/compiler/brw_fs.cpp | 2 --
> src/intel/vulkan/anv_pipeline.c | 5 +++++
> 2 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp
> index f2596e3..eb9b4c3 100644
> --- a/src/intel/compiler/brw_fs.cpp
> +++ b/src/intel/compiler/brw_fs.cpp
> @@ -6751,8 +6751,6 @@ brw_compile_cs(const struct brw_compiler *compiler, void *log_data,
> {
> nir_shader *shader = nir_shader_clone(mem_ctx, src_shader);
> shader = brw_nir_apply_sampler_key(shader, compiler, &key->tex, true);
> - brw_nir_lower_cs_shared(shader);
> - prog_data->base.total_shared += shader->num_shared;
>
> /* Now that we cloned the nir_shader, we can update num_uniforms based on
> * the thread_local_id_index.
> diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c
> index 6ae682f..279d765 100644
> --- a/src/intel/vulkan/anv_pipeline.c
> +++ b/src/intel/vulkan/anv_pipeline.c
> @@ -381,6 +381,11 @@ anv_pipeline_compile(struct anv_pipeline *pipeline,
> if (stage != MESA_SHADER_COMPUTE)
> NIR_PASS_V(nir, anv_nir_lower_multiview, pipeline->subpass->view_mask);
>
> + if (stage == MESA_SHADER_COMPUTE) {
> + NIR_PASS_V(nir, brw_nir_lower_cs_shared);
> + prog_data->total_shared = nir->num_shared;
> + }
> +
> nir_shader_gather_info(nir, nir_shader_get_entrypoint(nir));
>
> /* Figure out the number of parameters */
> --
> 2.5.0.400.gff86faf
>
More information about the mesa-dev
mailing list