From: Jordan Justen Date: Fri, 13 Oct 2017 20:00:23 +0000 (-0700) Subject: main: Add driver cache blob fields to gl_program X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=571bee96d5456bb62fad2aaf72d9119b24650c5a;p=mesa.git main: Add driver cache blob fields to gl_program These fields can be used to optionally save off a driver blob with the program metadata. For example, serialized nir, or tgsi. v3: * Rename serialized_nir* to driver_cache_blob*. (Tim) * Free memory. (Jason) Signed-off-by: Jordan Justen Reviewed-by: Timothy Arceri Reviewed-by: Jason Ekstrand --- diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 2802a0e3605..b7a46aed534 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -2079,6 +2079,10 @@ struct gl_program struct nir_shader *nir; + /* Saved and restored with metadata. Freed with ralloc. */ + void *driver_cache_blob; + size_t driver_cache_blob_size; + bool is_arb_asm; /** Is this an ARB assembly-style program */ /** Is this program written to on disk shader cache */ diff --git a/src/mesa/program/program.c b/src/mesa/program/program.c index 0defa012aee..faf5b7fa28a 100644 --- a/src/mesa/program/program.c +++ b/src/mesa/program/program.c @@ -279,6 +279,10 @@ _mesa_delete_program(struct gl_context *ctx, struct gl_program *prog) ralloc_free(prog->sh.BindlessImages); } + if (prog->driver_cache_blob) { + ralloc_free(prog->driver_cache_blob); + } + ralloc_free(prog); }