This directory contains the Vulkan SC Emulation Pipeline Cache Compiler (Mock PCC) that enables compiling Vulkan SC pipeline caches compatible with the Vulkan SC Emulation ICD.
The Mock PCC accompanies the Vulkan SC Emulation ICD to provide a full Vulkan SC implementation stack to create and test Vulkan SC applications on any platform with a Vulkan driver.
The Mock PCC is a command line utility that takes a set of pipeline JSON files and SPIR-V binary files to build Vulkan SC pipeline caches compatible with the Vulkan SC Emulation ICD.
It supports all the standard command line arguments that are also expected by the Vulkan SC Conformance Test Suite (CTS).
For example, the following command can be used to build all pipeline JSON files and corresponding SPIR-V binaries in the current directory:
pcconvk --path . --out pipeline_cache.bin
For additional command line options, see the output of the pcconvk --help
command.
Currently, the pipeline cache compiler always generates device-independent pipeline caches without no target device compilation and the resulting Vulkan SC pipeline cache will only contain so called "debug information" (i.e. it only embeds the pipeline JSON and shader SPIR-V data). This is sufficient for the Vulkan SC Emulation ICD to build these pipelines on the underlying Vulkan implementation.
As part of the compilation process, the Mock PCC will validate the SPIR-V binaries both before and after applying any specialization constant information present in the encompassing pipeline JSON, and the resulting pipeline cache will contain the already specialized version of the shader SPIR-V. This enables the Vulkan SC pipeline creation commands to be used without the application having to include the specialization constant information.