diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c index fe3ef4a48df..685ed0e58aa 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_init.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c @@ -723,3 +723,8 @@ gallivm_jit_function(struct gallivm_state *gallivm, return jit_func; } + +unsigned gallivm_get_perf_flags(void) +{ + return gallivm_perf; +} diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.h b/src/gallium/auxiliary/gallivm/lp_bld_init.h index 4b00cebaef5..7c516b2b266 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_init.h +++ b/src/gallium/auxiliary/gallivm/lp_bld_init.h @@ -85,6 +85,8 @@ func_pointer gallivm_jit_function(struct gallivm_state *gallivm, LLVMValueRef func); +unsigned gallivm_get_perf_flags(void); + #ifdef __cplusplus } #endif diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c index fb4d9835af7..2367af870c4 100644 --- a/src/gallium/drivers/llvmpipe/lp_screen.c +++ b/src/gallium/drivers/llvmpipe/lp_screen.c @@ -801,6 +801,7 @@ llvmpipe_get_timestamp(struct pipe_screen *_screen) static void lp_disk_cache_create(struct llvmpipe_screen *screen) { struct mesa_sha1 ctx; + unsigned gallivm_perf = gallivm_get_perf_flags(); unsigned char sha1[20]; char cache_id[20 * 2 + 1]; _mesa_sha1_init(&ctx); @@ -809,6 +810,7 @@ static void lp_disk_cache_create(struct llvmpipe_screen *screen) !disk_cache_get_function_identifier(LLVMLinkInMCJIT, &ctx)) return; + _mesa_sha1_update(&ctx, &gallivm_perf, sizeof(gallivm_perf)); _mesa_sha1_final(&ctx, sha1); disk_cache_format_hex_id(cache_id, sha1, 20 * 2);