On 1 June 2018 at 15:48, Dylan Baker <[email protected]> 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 <[email protected]>
> Cc: "18.1" <[email protected]>
> ---
> 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
> [email protected]
> 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