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:
@@ -102,6 +102,14 @@ shader_cache_write_program_metadata(struct gl_context *ctx,
|
|||||||
struct blob metadata;
|
struct blob metadata;
|
||||||
blob_init(&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);
|
serialize_glsl_program(&metadata, ctx, prog);
|
||||||
|
|
||||||
struct cache_item_metadata cache_item_metadata;
|
struct cache_item_metadata cache_item_metadata;
|
||||||
|
@@ -1282,6 +1282,21 @@ struct dd_function_table {
|
|||||||
struct gl_semaphore_object *semObj,
|
struct gl_semaphore_object *semObj,
|
||||||
int fd);
|
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);
|
||||||
|
/*@}*/
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user