Mesa (main): mesa/shaderapi: change construct_name signature
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Jun 28 09:30:52 UTC 2021
Module: Mesa
Branch: main
Commit: 5582c52a055841637ac58337f0007aa0ea405da9
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5582c52a055841637ac58337f0007aa0ea405da9
Author: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Date: Thu May 27 15:38:04 2021 +0200
mesa/shaderapi: change construct_name signature
Pass the sha1 as an argument.
This will be used by the next commit.
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11621>
---
src/mesa/main/shaderapi.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c
index 22f6c0cf708..dab12e7a1ef 100644
--- a/src/mesa/main/shaderapi.c
+++ b/src/mesa/main/shaderapi.c
@@ -1918,12 +1918,13 @@ _mesa_LinkProgram(GLuint programObj)
/**
* Generate a SHA-1 hash value string for given source string.
*/
-static void
+static char *
generate_sha1(const char *source, char sha_str[64])
{
unsigned char sha[20];
_mesa_sha1_compute(source, strlen(source), sha);
_mesa_sha1_format(sha_str, sha);
+ return sha_str;
}
/**
@@ -1934,17 +1935,15 @@ generate_sha1(const char *source, char sha_str[64])
* <path>/<stage prefix>_<CHECKSUM>.arb
*/
static char *
-construct_name(const gl_shader_stage stage, const char *source,
- const char *path)
+construct_name(const gl_shader_stage stage, const char *sha,
+ const char *source, const char *path)
{
- char sha[64];
static const char *types[] = {
"VS", "TC", "TE", "GS", "FS", "CS",
};
const char *format = strncmp(source, "!!ARB", 5) ? "glsl" : "arb";
- generate_sha1(source, sha);
return ralloc_asprintf(NULL, "%s/%s_%s.%s", path, types[stage], sha, format);
}
@@ -1957,6 +1956,7 @@ _mesa_dump_shader_source(const gl_shader_stage stage, const char *source)
static bool path_exists = true;
char *dump_path;
FILE *f;
+ char sha[64];
if (!path_exists)
return;
@@ -1967,7 +1967,8 @@ _mesa_dump_shader_source(const gl_shader_stage stage, const char *source)
return;
}
- char *name = construct_name(stage, source, dump_path);
+ char *name = construct_name(stage, generate_sha1(source, sha),
+ source, dump_path);
f = fopen(name, "w");
if (f) {
@@ -1993,6 +1994,7 @@ _mesa_read_shader_source(const gl_shader_stage stage, const char *source)
int len, shader_size = 0;
GLcharARB *buffer;
FILE *f;
+ char sha[64];
if (!path_exists)
return NULL;
@@ -2003,7 +2005,8 @@ _mesa_read_shader_source(const gl_shader_stage stage, const char *source)
return NULL;
}
- char *name = construct_name(stage, source, read_path);
+ char *name = construct_name(stage, generate_sha1(source, sha),
+ source, read_path);
f = fopen(name, "r");
ralloc_free(name);
if (!f)
More information about the mesa-commit
mailing list