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

Dylan Baker dylan at pnwbakers.com
Fri Jun 1 14:48:22 UTC 2018


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?

Dylan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180601/e250ae46/attachment-0001.sig>


More information about the mesa-dev mailing list