i965: Add brw_program_serialize_nir

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
Jordan Justen
2017-11-03 16:57:42 -07:00
committed by Timothy Arceri
parent b3f1b765e9
commit 25b3ce6e3b
3 changed files with 14 additions and 6 deletions

View File

@@ -355,12 +355,7 @@ brw_link_shader(struct gl_context *ctx, struct gl_shader_program *shProg)
continue;
struct gl_program *prog = shader->Program;
struct blob writer;
blob_init(&writer);
nir_serialize(&writer, prog->nir);
prog->driver_cache_blob = ralloc_size(NULL, writer.size);
memcpy(prog->driver_cache_blob, writer.data, writer.size);
prog->driver_cache_blob_size = writer.size;
brw_program_serialize_nir(ctx, prog);
}
}

View File

@@ -787,6 +787,17 @@ brw_assign_common_binding_table_offsets(const struct gen_device_info *devinfo,
return next_binding_table_offset;
}
void
brw_program_serialize_nir(struct gl_context *ctx, struct gl_program *prog)
{
struct blob writer;
blob_init(&writer);
nir_serialize(&writer, prog->nir);
prog->driver_cache_blob = ralloc_size(NULL, writer.size);
memcpy(prog->driver_cache_blob, writer.data, writer.size);
prog->driver_cache_blob_size = writer.size;
}
void
brw_program_deserialize_nir(struct gl_context *ctx, struct gl_program *prog,
gl_shader_stage stage)

View File

@@ -81,6 +81,8 @@ brw_assign_common_binding_table_offsets(const struct gen_device_info *devinfo,
struct brw_stage_prog_data *stage_prog_data,
uint32_t next_binding_table_offset);
void
brw_program_serialize_nir(struct gl_context *ctx, struct gl_program *prog);
void
brw_program_deserialize_nir(struct gl_context *ctx, struct gl_program *prog,
gl_shader_stage stage);