mesa: Add disk shader cache driver blob callback

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
Jordan Justen 2018-04-08 17:56:34 -07:00
parent 213491600a
commit 2a55553be3
No known key found for this signature in database
GPG Key ID: 37F99F68CAF992EB
2 changed files with 23 additions and 0 deletions

View File

@ -102,6 +102,14 @@ shader_cache_write_program_metadata(struct gl_context *ctx,
struct blob metadata;
blob_init(&metadata);
if (ctx->Driver.ShaderCacheSerializeDriverBlob) {
for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
struct gl_linked_shader *sh = prog->_LinkedShaders[i];
if (sh)
ctx->Driver.ShaderCacheSerializeDriverBlob(ctx, sh->Program);
}
}
serialize_glsl_program(&metadata, ctx, prog);
struct cache_item_metadata cache_item_metadata;

View File

@ -1282,6 +1282,21 @@ struct dd_function_table {
struct gl_semaphore_object *semObj,
int fd);
/*@}*/
/**
* \name Disk shader cache functions
*/
/*@{*/
/**
* Called to initialize gl_program::driver_cache_blob (and size) with a
* ralloc allocated buffer.
*
* This buffer will be saved and restored as part of the gl_program
* serialization and deserialization.
*/
void (*ShaderCacheSerializeDriverBlob)(struct gl_context *ctx,
struct gl_program *prog);
/*@}*/
};