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 <asm...@feralinteractive.com>
> Cc: "18.1" <mesa-sta...@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-sta...@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

Attachment: signature.asc
Description: signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to