[Mesa-dev] [PATCH 1/2] glsl/serialize: Save shader program metadata sha1
Timothy Arceri
tarceri at itsqueeze.com
Mon Mar 12 21:52:59 UTC 2018
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
On 12/03/18 11:25, Jordan Justen wrote:
> When the shader cache is used, this can be generated. In fact, the
> shader cache uses this sha1 to lookup the serialized GL shader
> program.
>
> If a GL shader program is restored with ProgramBinary, the shaders are
> not available, and therefore the correct sha1 cannot be generated. If
> this is restored, then we can use the shader cache to restore the
> binary programs to the program that was loaded with ProgramBinary.
>
> Cc: Timothy Arceri <tarceri at itsqueeze.com>
> Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
> ---
> src/compiler/glsl/serialize.cpp | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/src/compiler/glsl/serialize.cpp b/src/compiler/glsl/serialize.cpp
> index 9d2033bddfa..1fdbaa990f4 100644
> --- a/src/compiler/glsl/serialize.cpp
> +++ b/src/compiler/glsl/serialize.cpp
> @@ -1163,6 +1163,8 @@ extern "C" void
> serialize_glsl_program(struct blob *blob, struct gl_context *ctx,
> struct gl_shader_program *prog)
> {
> + blob_write_bytes(blob, prog->data->sha1, sizeof(prog->data->sha1));
> +
> write_uniforms(blob, prog);
>
> write_hash_tables(blob, prog);
> @@ -1219,6 +1221,8 @@ deserialize_glsl_program(struct blob_reader *blob, struct gl_context *ctx,
>
> assert(prog->data->UniformStorage == NULL);
>
> + blob_copy_bytes(blob, prog->data->sha1, sizeof(prog->data->sha1));
> +
> read_uniforms(blob, prog);
>
> read_hash_tables(blob, prog);
>
More information about the mesa-dev
mailing list