On Sunday, October 22, 2017 1:01:21 PM PDT Jordan Justen wrote: > v3: > * Rename serialized_nir* to driver_cache_blob*. (Tim) > > Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> > Reviewed-by: Timothy Arceri <tarc...@itsqueeze.com> > --- > src/compiler/glsl/shader_cache.cpp | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/src/compiler/glsl/shader_cache.cpp > b/src/compiler/glsl/shader_cache.cpp > index ca90cfde350..1d208fb0911 100644 > --- a/src/compiler/glsl/shader_cache.cpp > +++ b/src/compiler/glsl/shader_cache.cpp > @@ -1062,6 +1062,14 @@ write_shader_metadata(struct blob *metadata, > gl_linked_shader *shader) > } > > write_shader_parameters(metadata, glprog->Parameters); > + > + assert((glprog->driver_cache_blob == NULL) == > + (glprog->driver_cache_blob_size == 0)); > + blob_write_uint32(metadata, (uint32_t)glprog->driver_cache_blob_size); > + if (glprog->driver_cache_blob_size > 0) { > + blob_write_bytes(metadata, glprog->driver_cache_blob, > + glprog->driver_cache_blob_size); > + } > } > > static void > @@ -1116,6 +1124,14 @@ read_shader_metadata(struct blob_reader *metadata, > > glprog->Parameters = _mesa_new_parameter_list(); > read_shader_parameters(metadata, glprog->Parameters); > + > + glprog->driver_cache_blob_size = (size_t)blob_read_uint32(metadata); > + if (glprog->driver_cache_blob_size > 0) { > + glprog->driver_cache_blob = > + (uint8_t*)ralloc_size(glprog, glprog->driver_cache_blob_size); > + blob_copy_bytes(metadata, glprog->driver_cache_blob, > + glprog->driver_cache_blob_size); > + }
Shouldn't you check for overrun here, and leave things in a consistent state (passing the assertion above)? > } > > static void >
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev