From: Jason Ekstrand Date: Thu, 25 Apr 2019 00:54:14 +0000 (-0500) Subject: anv/pipeline: Split setting up per-stage keys into its own loop X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=651fbbf9b8e522d6f3e7be9345590e52e5baf4db;p=mesa.git anv/pipeline: Split setting up per-stage keys into its own loop Reviewed-by: Lionel Landwerlin --- diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c index 323a7894e99..c1941ecfe04 100644 --- a/src/intel/vulkan/anv_pipeline.c +++ b/src/intel/vulkan/anv_pipeline.c @@ -1135,6 +1135,14 @@ anv_pipeline_compile_graphics(struct anv_pipeline *pipeline, unsigned char sha1[20]; anv_pipeline_hash_graphics(pipeline, layout, stages, sha1); + for (unsigned s = 0; s < MESA_SHADER_STAGES; s++) { + if (!stages[s].entrypoint) + continue; + + stages[s].cache_key.stage = s; + memcpy(stages[s].cache_key.sha1, sha1, sizeof(sha1)); + } + unsigned found = 0; unsigned cache_hits = 0; for (unsigned s = 0; s < MESA_SHADER_STAGES; s++) { @@ -1143,9 +1151,6 @@ anv_pipeline_compile_graphics(struct anv_pipeline *pipeline, int64_t stage_start = os_time_get_nano(); - stages[s].cache_key.stage = s; - memcpy(stages[s].cache_key.sha1, sha1, sizeof(sha1)); - bool cache_hit; struct anv_shader_bin *bin = anv_device_search_for_kernel(pipeline->device, cache,