[Mesa-dev] [PATCH 00/11] anv: Convert the pipeline cache to use blob
Jason Ekstrand
jason at jlekstrand.net
Wed Oct 11 20:38:40 UTC 2017
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
More information about the mesa-dev
mailing list