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

Samuel Pitoiset samuel.pitoiset at gmail.com
Fri Jun 1 16:53:49 UTC 2018



On 06/01/2018 06:28 PM, Alex Smith wrote:
> On 1 June 2018 at 16:58, Samuel Pitoiset <samuel.pitoiset at gmail.com 
> <mailto:samuel.pitoiset at gmail.com>> wrote:
> 
> 
> 
>     On 06/01/2018 05:48 PM, Dylan Baker wrote:
> 
>         Quoting Alex Smith (2018-06-01 07:56:38)
> 
>             On 1 June 2018 at 15:48, Dylan Baker <dylan at pnwbakers.com
>             <mailto: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
>             <mailto:asmith at feralinteractive.com>>
>                   > Cc: "18.1" <mesa-stable at lists.freedesktop.org
>             <mailto: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 <http://info.name>,
>                   >                                                   
>             strlen(modules[i]->
>                   nir->info.name <http://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
>             <mailto:mesa-stable at lists.freedesktop.org>
>                   >
>             https://lists.freedesktop.org/mailman/listinfo/mesa-stable
>             <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
> 
> 
>         Thanks! This is in the tree for 18.1.2.
> 
> 
>     Apparently, this series regresses some CTS on my side, Bas will
>     investigate, would be nice to not release 18.1.2 without this fixed. :)
> 
> 
> What tests are failing?

deqp-vk/pipeline/push_constant/graphics_pipeline/count_3_shaders_vert_geom_frag: 
fail
deqp-vk/binding_model/shader_access/primary_cmd_buf/storage_buffer_dynamic/geometry/*

(polaris10)

> 
> 
> 
>         Dylan
> 
> 
> 
>         _______________________________________________
>         mesa-dev mailing list
>         mesa-dev at lists.freedesktop.org
>         <mailto:mesa-dev at lists.freedesktop.org>
>         https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>         <https://lists.freedesktop.org/mailman/listinfo/mesa-dev>
> 
> 


More information about the mesa-dev mailing list