Module: Mesa Branch: main Commit: dfa8c15164c2f005d4690b6b9b652451c59e1917 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=dfa8c15164c2f005d4690b6b9b652451c59e1917
Author: Mike Blumenkrantz <[email protected]> Date: Wed Mar 29 08:08:00 2023 -0400 zink: break out nir blob deserializing Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22266> --- src/gallium/drivers/zink/zink_compiler.c | 12 +++++++++--- src/gallium/drivers/zink/zink_compiler.h | 2 ++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index 442cbb213a3..27d0f48ce10 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -5175,12 +5175,18 @@ zink_shader_has_cubes(nir_shader *nir) return false; } +nir_shader * +zink_shader_blob_deserialize(struct zink_screen *screen, struct blob *blob) +{ + struct blob_reader blob_reader; + blob_reader_init(&blob_reader, blob->data, blob->size); + return nir_deserialize(NULL, &screen->nir_options, &blob_reader); +} + nir_shader * zink_shader_deserialize(struct zink_screen *screen, struct zink_shader *zs) { - struct blob_reader blob; - blob_reader_init(&blob, zs->blob.data, zs->blob.size); - return nir_deserialize(NULL, &screen->nir_options, &blob); + return zink_shader_blob_deserialize(screen, &zs->blob); } void diff --git a/src/gallium/drivers/zink/zink_compiler.h b/src/gallium/drivers/zink/zink_compiler.h index 574db1b574b..343ee9b7b70 100644 --- a/src/gallium/drivers/zink/zink_compiler.h +++ b/src/gallium/drivers/zink/zink_compiler.h @@ -97,6 +97,8 @@ zink_shader_descriptor_is_buffer(struct zink_shader *zs, enum zink_descriptor_ty bool zink_shader_has_cubes(nir_shader *nir); nir_shader * +zink_shader_blob_deserialize(struct zink_screen *screen, struct blob *blob); +nir_shader * zink_shader_deserialize(struct zink_screen *screen, struct zink_shader *zs); void zink_shader_serialize_blob(nir_shader *nir, struct blob *blob);
