vulkan: Update from version 0.181.0 to 0.183.0
Change-Id: I721bfc6891974e2bab7dce7e92e7884de360412a
(cherry picked from commit 85009ebe92a71d3c707efad6387118b186cca0c9)
diff --git a/vulkan/nulldrv/null_driver.cpp b/vulkan/nulldrv/null_driver.cpp
index f07dfa7..7e890be 100644
--- a/vulkan/nulldrv/null_driver.cpp
+++ b/vulkan/nulldrv/null_driver.cpp
@@ -339,23 +339,41 @@
// -----------------------------------------------------------------------------
// CmdBuffer
-VkResult CreateCommandBuffer(VkDevice device,
- const VkCmdBufferCreateInfo*,
- VkCmdBuffer* out_cmdbuf) {
+VkResult AllocCommandBuffers(VkDevice device,
+ const VkCmdBufferAllocInfo* alloc_info,
+ VkCmdBuffer* cmdbufs) {
+ VkResult result = VK_SUCCESS;
const VkAllocCallbacks* alloc = device->instance->alloc;
- VkCmdBuffer_T* cmdbuf = static_cast<VkCmdBuffer_T*>(alloc->pfnAlloc(
- alloc->pUserData, sizeof(VkCmdBuffer_T), alignof(VkCmdBuffer_T),
- VK_SYSTEM_ALLOC_TYPE_API_OBJECT));
- if (!cmdbuf)
- return VK_ERROR_OUT_OF_HOST_MEMORY;
- cmdbuf->dispatch.magic = HWVULKAN_DISPATCH_MAGIC;
- *out_cmdbuf = cmdbuf;
- return VK_SUCCESS;
+
+ std::fill(cmdbufs, cmdbufs + alloc_info->count, nullptr);
+ for (uint32_t i = 0; i < alloc_info->count; i++) {
+ cmdbufs[i] = static_cast<VkCmdBuffer_T*>(alloc->pfnAlloc(
+ alloc->pUserData, sizeof(VkCmdBuffer_T), alignof(VkCmdBuffer_T),
+ VK_SYSTEM_ALLOC_TYPE_API_OBJECT));
+ if (!cmdbufs[i]) {
+ result = VK_ERROR_OUT_OF_HOST_MEMORY;
+ break;
+ }
+ cmdbufs[i]->dispatch.magic = HWVULKAN_DISPATCH_MAGIC;
+ }
+ if (result != VK_SUCCESS) {
+ for (uint32_t i = 0; i < alloc_info->count; i++) {
+ if (!cmdbufs[i])
+ break;
+ alloc->pfnFree(alloc->pUserData, cmdbufs[i]);
+ }
+ }
+
+ return result;
}
-void DestroyCommandBuffer(VkDevice device, VkCmdBuffer cmdbuf) {
+void FreeCommandBuffers(VkDevice device,
+ VkCmdPool,
+ uint32_t count,
+ const VkCmdBuffer* cmdbufs) {
const VkAllocCallbacks* alloc = device->instance->alloc;
- alloc->pfnFree(alloc->pUserData, cmdbuf);
+ for (uint32_t i = 0; i < count; i++)
+ alloc->pfnFree(alloc->pUserData, cmdbufs[i]);
}
// -----------------------------------------------------------------------------
@@ -535,13 +553,10 @@
}
VkResult AllocDescriptorSets(VkDevice device,
- VkDescriptorPool,
- VkDescriptorSetUsage,
- uint32_t count,
- const VkDescriptorSetLayout*,
- VkDescriptorSet* sets) {
- for (uint32_t i = 0; i < count; i++)
- sets[i] = AllocHandle(device, HandleType::kDescriptorSet);
+ const VkDescriptorSetAllocInfo* alloc_info,
+ VkDescriptorSet* descriptor_sets) {
+ for (uint32_t i = 0; i < alloc_info->count; i++)
+ descriptor_sets[i] = AllocHandle(device, HandleType::kDescriptorSet);
return VK_SUCCESS;
}
@@ -874,7 +889,7 @@
void DestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool) {
}
-VkResult ResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool) {
+VkResult ResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) {
ALOGV("TODO: vk%s", __FUNCTION__);
return VK_SUCCESS;
}