[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