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;
}
diff --git a/vulkan/nulldrv/null_driver.h b/vulkan/nulldrv/null_driver.h
index 655a414..c35df18 100644
--- a/vulkan/nulldrv/null_driver.h
+++ b/vulkan/nulldrv/null_driver.h
@@ -109,8 +109,8 @@
void DestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout);
VkResult CreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, VkDescriptorPool* pDescriptorPool);
void DestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool);
-VkResult ResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool);
-VkResult AllocDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorSetUsage setUsage, uint32_t count, const VkDescriptorSetLayout* pSetLayouts, VkDescriptorSet* pDescriptorSets);
+VkResult ResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
+VkResult AllocDescriptorSets(VkDevice device, const VkDescriptorSetAllocInfo* pAllocInfo, VkDescriptorSet* pDescriptorSets);
VkResult FreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t count, const VkDescriptorSet* pDescriptorSets);
void UpdateDescriptorSets(VkDevice device, uint32_t writeCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t copyCount, const VkCopyDescriptorSet* pDescriptorCopies);
VkResult CreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, VkFramebuffer* pFramebuffer);
@@ -121,8 +121,8 @@
VkResult CreateCommandPool(VkDevice device, const VkCmdPoolCreateInfo* pCreateInfo, VkCmdPool* pCmdPool);
void DestroyCommandPool(VkDevice device, VkCmdPool cmdPool);
VkResult ResetCommandPool(VkDevice device, VkCmdPool cmdPool, VkCmdPoolResetFlags flags);
-VkResult CreateCommandBuffer(VkDevice device, const VkCmdBufferCreateInfo* pCreateInfo, VkCmdBuffer* pCmdBuffer);
-void DestroyCommandBuffer(VkDevice device, VkCmdBuffer commandBuffer);
+VkResult AllocCommandBuffers(VkDevice device, const VkCmdBufferAllocInfo* pAllocInfo, VkCmdBuffer* pCmdBuffers);
+void FreeCommandBuffers(VkDevice device, VkCmdPool cmdPool, uint32_t count, const VkCmdBuffer* pCommandBuffers);
VkResult BeginCommandBuffer(VkCmdBuffer cmdBuffer, const VkCmdBufferBeginInfo* pBeginInfo);
VkResult EndCommandBuffer(VkCmdBuffer cmdBuffer);
VkResult ResetCommandBuffer(VkCmdBuffer cmdBuffer, VkCmdBufferResetFlags flags);
diff --git a/vulkan/nulldrv/null_driver_gen.cpp b/vulkan/nulldrv/null_driver_gen.cpp
index e86a795..431977d 100644
--- a/vulkan/nulldrv/null_driver_gen.cpp
+++ b/vulkan/nulldrv/null_driver_gen.cpp
@@ -67,6 +67,7 @@
const NameProcEntry kDeviceProcTbl[] = {
// clang-format off
+ {"vkAllocCommandBuffers", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkAllocCommandBuffers>(AllocCommandBuffers))},
{"vkAllocDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkAllocDescriptorSets>(AllocDescriptorSets))},
{"vkAllocMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkAllocMemory>(AllocMemory))},
{"vkBeginCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkBeginCommandBuffer>(BeginCommandBuffer))},
@@ -118,7 +119,6 @@
{"vkCmdWriteTimestamp", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdWriteTimestamp>(CmdWriteTimestamp))},
{"vkCreateBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateBuffer>(CreateBuffer))},
{"vkCreateBufferView", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateBufferView>(CreateBufferView))},
- {"vkCreateCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateCommandBuffer>(CreateCommandBuffer))},
{"vkCreateCommandPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateCommandPool>(CreateCommandPool))},
{"vkCreateComputePipelines", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateComputePipelines>(CreateComputePipelines))},
{"vkCreateDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateDescriptorPool>(CreateDescriptorPool))},
@@ -139,7 +139,6 @@
{"vkCreateShaderModule", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateShaderModule>(CreateShaderModule))},
{"vkDestroyBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyBuffer>(DestroyBuffer))},
{"vkDestroyBufferView", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyBufferView>(DestroyBufferView))},
- {"vkDestroyCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyCommandBuffer>(DestroyCommandBuffer))},
{"vkDestroyCommandPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyCommandPool>(DestroyCommandPool))},
{"vkDestroyDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyDescriptorPool>(DestroyDescriptorPool))},
{"vkDestroyDescriptorSetLayout", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyDescriptorSetLayout>(DestroyDescriptorSetLayout))},
@@ -161,6 +160,7 @@
{"vkDeviceWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDeviceWaitIdle>(DeviceWaitIdle))},
{"vkEndCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEndCommandBuffer>(EndCommandBuffer))},
{"vkFlushMappedMemoryRanges", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkFlushMappedMemoryRanges>(FlushMappedMemoryRanges))},
+ {"vkFreeCommandBuffers", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkFreeCommandBuffers>(FreeCommandBuffers))},
{"vkFreeDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkFreeDescriptorSets>(FreeDescriptorSets))},
{"vkFreeMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkFreeMemory>(FreeMemory))},
{"vkGetBufferMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetBufferMemoryRequirements>(GetBufferMemoryRequirements))},