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 <jordan.l.justen@intel.com> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
@@ -2079,6 +2079,10 @@ struct gl_program
|
|||||||
|
|
||||||
struct nir_shader *nir;
|
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 */
|
bool is_arb_asm; /** Is this an ARB assembly-style program */
|
||||||
|
|
||||||
/** Is this program written to on disk shader cache */
|
/** Is this program written to on disk shader cache */
|
||||||
|
@@ -279,6 +279,10 @@ _mesa_delete_program(struct gl_context *ctx, struct gl_program *prog)
|
|||||||
ralloc_free(prog->sh.BindlessImages);
|
ralloc_free(prog->sh.BindlessImages);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (prog->driver_cache_blob) {
|
||||||
|
ralloc_free(prog->driver_cache_blob);
|
||||||
|
}
|
||||||
|
|
||||||
ralloc_free(prog);
|
ralloc_free(prog);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user