Если я правильно понимаю, я должен создать пустой объект VkPipelineCache
, передать его в vkCreateGraphicsPipelines
, и в него будут записаны данные.Затем я могу использовать его с другими создаваемыми конвейерами или сохранить в файл и использовать при следующем запуске.
Я пытался следовать примеру LunarG для получения дополнительной информации:
uint32_t headerLength = pData[0];
uint32_t cacheHeaderVersion = pData[1];
uint32_t vendorID = pData[2];
uint32_t deviceID = pData[3];
Но я всегда получаю headerLength
- это 32, а остальные 0. Просмотр спецификации (https://vulkan.lunarg.com/doc/view/1.0.26.0/linux/vkspec.chunked/ch09s06.html Таблица 9.1), cacheHeaderVersion всегда должен быть равен 1, поскольку единственная доступная версия заголовка кэша - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1
.
Кроме того, размер pData обычно составляет всего 32 байта, даже когда я создаю 10 конвейеров сЭто.Что я делаю не так?