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
signature.asc
Description: signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev