On malloc failure, or more likely a passed in pDataSize < pipeline cache
data size, we should return incomplete. Otherwise,
vk_pipeline_cache_object_serialize will assertion fail about the start not
being aligned.
Closes: #8868
Fixes:
591da9877900 ("vulkan: Add a common VkPipelineCache implementation")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22700>
intptr_t data_size_resv = blob_reserve_uint32(&blob);
blob_write_bytes(&blob, object->key_data, object->key_size);
- blob_align(&blob, VK_PIPELINE_CACHE_BLOB_ALIGN);
+ if (!blob_align(&blob, VK_PIPELINE_CACHE_BLOB_ALIGN)) {
+ result = VK_INCOMPLETE;
+ break;
+ }
uint32_t data_size;
if (!vk_pipeline_cache_object_serialize(cache, object,