summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Smith <[email protected]>2018-05-31 15:02:32 +0100
committerAlex Smith <[email protected]>2018-06-01 08:53:01 +0100
commit0fa51bfdbe5773cb8534b9e006b81581f4e14982 (patch)
treee49827e3a271b2a982e53648f2ba3a7263a1f223
parent9e61147ef6de379700b2fec3c9cea30cc2eb23d9 (diff)
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 <[email protected]> Cc: "18.1" <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
-rw-r--r--src/amd/vulkan/radv_pipeline.c7
1 files changed, 2 insertions, 5 deletions
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.