Nabla icon indicating copy to clipboard operation
Nabla copied to clipboard

Deprecate Pipeline Cache, replace with Pipeline Binaries

Open devshgraphicsprogramming opened this issue 8 months ago • 0 comments

Description

VK_KHR_pipeline_binary introduces the ability to dump individual binary parts of a pipeline and re-creating the pipeline from them.

Description of the related problem

The Pipeline Cache is a messy object because it functions as a collection of all pipeline binaries, also it can only grow polluting itself with old pipeline versions that will never be used again.

The Pipeline Binaries allow us to get and cache the pipeline compilation result on a per-pipeline and per-driver version basis.

Solution proposal

Remove PipelineCache as an asset and object from Nabla entirely.

After #839 , make a union between the ShaderSpec info cretion params and pipeline binary objects.

Additional context

Note that Shader Stages and Pipeline Binaries don't map 1:1 so SpecializedShaderInfo can't be a union of 1 entry point and one pipeline binary.

Also some stuff from the spec shader info is needed to compute a pipeline cache key, so what to union is not clear 100%.

The VK_KHR_pipeline_binary extension needs to become ubiquitous