i965: Use ShaderCacheSerializeDriverBlob driver function
This function is called just before the gl_program::driver_cache_blob is saved out as part of the gl_program serialization. Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
parent
450f00e39d
commit
6497be42b7
|
@ -343,6 +343,10 @@ brw_init_driver_functions(struct brw_context *brw,
|
|||
functions->ProgramBinarySerializeDriverBlob = brw_program_serialize_nir;
|
||||
functions->ProgramBinaryDeserializeDriverBlob =
|
||||
brw_deserialize_program_binary;
|
||||
|
||||
if (brw->screen->disk_cache) {
|
||||
functions->ShaderCacheSerializeDriverBlob = brw_program_serialize_nir;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -359,17 +359,6 @@ brw_link_shader(struct gl_context *ctx, struct gl_shader_program *shProg)
|
|||
}
|
||||
}
|
||||
|
||||
if (brw->ctx.Cache) {
|
||||
for (stage = 0; stage < ARRAY_SIZE(shProg->_LinkedShaders); stage++) {
|
||||
struct gl_linked_shader *shader = shProg->_LinkedShaders[stage];
|
||||
if (!shader)
|
||||
continue;
|
||||
|
||||
struct gl_program *prog = shader->Program;
|
||||
brw_program_serialize_nir(ctx, prog);
|
||||
}
|
||||
}
|
||||
|
||||
if (brw->precompile && !brw_shader_precompile(ctx, shProg))
|
||||
return false;
|
||||
|
||||
|
|
|
@ -843,6 +843,9 @@ brw_assign_common_binding_table_offsets(const struct gen_device_info *devinfo,
|
|||
void
|
||||
brw_program_serialize_nir(struct gl_context *ctx, struct gl_program *prog)
|
||||
{
|
||||
if (prog->driver_cache_blob)
|
||||
return;
|
||||
|
||||
struct blob writer;
|
||||
blob_init(&writer);
|
||||
nir_serialize(&writer, prog->nir);
|
||||
|
|
Loading…
Reference in New Issue