Vulkan: Ignore VK_INCOMPLETE from vkGetPipelineCacheData
When getting the data store from a pipeline cache, we do the following
sequence:
1.) Query the amount of data to get.
2.) Create a buffer to hold that data.
3.) Request that amount of pipeline cache data.
This typically works without errors, but we have seen cases where the
amount of pipeline cache data changes between steps (1) and (3). This
leads to the driver returning VK_INCOMPLETE because we requested a
different amount of data than the driver currently has (either too much
or too little). However, getting at least the pipeline cache header is
all that's required, so this isn't necessarily an error:
From the Vulkan spec:
> If pDataSize is less than the maximum size that can be retrieved by
the pipeline cache, at most pDataSize bytes will be written to
pData, and vkGetPipelineCacheData will return VK_INCOMPLETE. Any
data written to pData is valid and can be provided as the
pInitialData member of the VkPipelineCacheCreateInfo structure
passed to vkCreatePipelineCache.
This change will update ANGLE to ignore VK_INCOMPLETE, rather than
treating it as an error.
Bug: angleproject:3988
Test: Android dEQP-GLES2.*
Change-Id: I6518d7cb00c26ae403b58aafa86a600fa7a8504a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1900009Reviewed-by:
Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
Showing
Please
register
or
sign in
to comment