I started trying to debug a random segfault in the pipeline cache that I was seeing in some of the synchronization tests. After taking a longer look, It became obvious that doing so with the current implementation is nuts. Instead, we're much better off if we take advantage of the blob structure and all of it's nice safety guarantees.
Connor Abbott (1): compiler/blob: make blob_reserve_bytes() more useful Jason Ekstrand (10): glsl/blob: Return false from ensure_can_read on overrun glsl/blob: Return false from grow_to_fit if we've ever failed compiler: Move blob up a level compiler/blob: Switch to init/finsih instead of create/destroy compiler/blob: Add a concept of a fixed-allocation blob compiler/blob: Constify the reader compiler/blob: Make some parameters void instead of uint8_t anv/multialloc: Add new add_size helper anv/pipeline: Declare bind maps closer to their use anv/pipeline_cache: Rework to use multialloc and blob src/compiler/Makefile.sources | 4 +- src/compiler/{glsl => }/blob.c | 91 +++++++--- src/compiler/{glsl => }/blob.h | 104 ++++++++--- src/compiler/glsl/shader_cache.cpp | 39 ++-- src/compiler/glsl/tests/blob_test.c | 4 +- src/intel/vulkan/anv_pipeline.c | 18 +- src/intel/vulkan/anv_pipeline_cache.c | 298 +++++++++++++++---------------- src/intel/vulkan/anv_private.h | 8 +- src/mesa/state_tracker/st_shader_cache.c | 23 +-- src/mesa/state_tracker/st_shader_cache.h | 2 +- 10 files changed, 333 insertions(+), 258 deletions(-) rename src/compiler/{glsl => }/blob.c (79%) rename src/compiler/{glsl => }/blob.h (76%) -- 2.5.0.400.gff86faf _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev