From: Alex Smith Date: Thu, 31 May 2018 14:02:32 +0000 (+0100) Subject: radv: Set active_stages the same whether or not shaders were cached X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0fa51bfdbe5773cb8534b9e006b81581f4e14982;p=mesa.git radv: Set active_stages the same whether or not shaders were cached 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 Cc: "18.1" Reviewed-by: Bas Nieuwenhuizen --- diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index 03911471c84..7a44544f44e 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.