[Mesa-dev] [Mesa-stable] [PATCH 1/3] radv: Set active_stages the same whether or not shaders were cached

Alex Smith asmith at feralinteractive.com
Fri Jun 1 14:56:38 UTC 2018


On 1 June 2018 at 15:48, Dylan Baker <dylan at pnwbakers.com> wrote:

> Quoting Alex Smith (2018-05-31 08:44:18)
> > With GFX9 merged shaders, active_stages would be set to the original
> > stages specified if shaders were not cached, but to the stages still
> > present after merging if they were.
> >
> > Be consistent and use the original stages.
> >
> > Signed-off-by: Alex Smith <asmith at feralinteractive.com>
> > Cc: "18.1" <mesa-stable at lists.freedesktop.org>
> > ---
> >  src/amd/vulkan/radv_pipeline.c | 7 ++-----
> >  1 file changed, 2 insertions(+), 5 deletions(-)
> >
> > diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_
> pipeline.c
> > index 52734a308a..18dcc43ebe 100644
> > --- a/src/amd/vulkan/radv_pipeline.c
> > +++ b/src/amd/vulkan/radv_pipeline.c
> > @@ -1964,6 +1964,8 @@ void radv_create_shaders(struct radv_pipeline
> *pipeline,
> >                                 _mesa_sha1_compute(modules[i]->nir->
> info.name,
> >
> strlen(modules[i]->nir->info.name),
> >                                                    modules[i]->sha1);
> > +
> > +                       pipeline->active_stages |=
> mesa_to_vk_shader_stage(i);
> >                 }
> >         }
> >
> > @@ -1979,10 +1981,6 @@ void radv_create_shaders(struct radv_pipeline
> *pipeline,
> >
> >         if (radv_create_shader_variants_from_pipeline_cache(device,
> cache, hash, pipeline->shaders) &&
> >             (!modules[MESA_SHADER_GEOMETRY] ||
> pipeline->gs_copy_shader)) {
> > -               for (unsigned i = 0; i < MESA_SHADER_STAGES; ++i) {
> > -                       if (pipeline->shaders[i])
> > -                               pipeline->active_stages |=
> mesa_to_vk_shader_stage(i);
> > -               }
> >                 return;
> >         }
> >
> > @@ -2015,7 +2013,6 @@ void radv_create_shaders(struct radv_pipeline
> *pipeline,
> >                                                     stage ? stage->pName
> : "main", i,
> >                                                     stage ?
> stage->pSpecializationInfo : NULL,
> >                                                     flags);
> > -               pipeline->active_stages |= mesa_to_vk_shader_stage(i);
> >
> >                 /* We don't want to alter meta shaders IR directly so
> clone it
> >                  * first.
> > --
> > 2.14.3
> >
> > _______________________________________________
> > mesa-stable mailing list
> > mesa-stable at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-stable
>
> Hi Alex,
>
> This doesn't apply cleanly to the 18.1 tree with the following collision:
>
> ++<<<<<<< HEAD
>
>  +                                                  stage ?
> stage->pSpecializationInfo : NULL);
>  +              pipeline->active_stages |= mesa_to_vk_shader_stage(i);
>
> ++=======
>
> +                                                   stage ?
> stage->pSpecializationInfo : NULL,
> +                                                   flags);
>
> ++>>>>>>> 0fa51bfdbe5... radv: Set active_stages the same whether or not
> shaders were cached
>
> I can remove the flags field (which doesn't exist in 18.1) before merging
> if you
> think that's the right thing to do. Does that seem reasonable?
>

Yes, that's correct. Should just be removing the pipeline->active_stages
line at that point.

Thanks,
Alex


> Dylan
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180601/755795a6/attachment.html>


More information about the mesa-dev mailing list