Skip to content

radv: use vk_pipeline_cache

This series re-implements the RADV pipeline cache based on the common vk_pipeline_cache.

Based on !21967 (merged) and !22029 (merged).

We use a dual-layer approach with two types of cache entries

  1. radv_shader:
  • serialized as radv_shader_binary
  • uses SHA1 of the binary as key
  1. radv_pipeline_cache_object:
  • contains pointers to associated radv_shaders
  • serialized as list of SHA1
  • uses pipeline hash as key

In combination with single-file disk-cache, this reduces the cache size by ~60%. With multi-file disk-cache, it slightly increases the cache size by ~2% due to the overhead from additional small files.

Merge request reports