[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