vulkan: Update from version 0.181.0 to 0.183.0
Change-Id: I721bfc6891974e2bab7dce7e92e7884de360412a
(cherry picked from commit 85009ebe92a71d3c707efad6387118b186cca0c9)
diff --git a/vulkan/libvulkan/entry.cpp b/vulkan/libvulkan/entry.cpp
index da3837e..0af3bc8 100644
--- a/vulkan/libvulkan/entry.cpp
+++ b/vulkan/libvulkan/entry.cpp
@@ -457,13 +457,13 @@
}
__attribute__((visibility("default")))
-VkResult vkResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool) {
- return GetVtbl(device).ResetDescriptorPool(device, descriptorPool);
+VkResult vkResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) {
+ return GetVtbl(device).ResetDescriptorPool(device, descriptorPool, flags);
}
__attribute__((visibility("default")))
-VkResult vkAllocDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorSetUsage setUsage, uint32_t count, const VkDescriptorSetLayout* pSetLayouts, VkDescriptorSet* pDescriptorSets) {
- return GetVtbl(device).AllocDescriptorSets(device, descriptorPool, setUsage, count, pSetLayouts, pDescriptorSets);
+VkResult vkAllocDescriptorSets(VkDevice device, const VkDescriptorSetAllocInfo* pAllocInfo, VkDescriptorSet* pDescriptorSets) {
+ return GetVtbl(device).AllocDescriptorSets(device, pAllocInfo, pDescriptorSets);
}
__attribute__((visibility("default")))
@@ -517,13 +517,13 @@
}
__attribute__((visibility("default")))
-VkResult vkCreateCommandBuffer(VkDevice device, const VkCmdBufferCreateInfo* pCreateInfo, VkCmdBuffer* pCmdBuffer) {
- return vulkan::CreateCommandBuffer(device, pCreateInfo, pCmdBuffer);
+VkResult vkAllocCommandBuffers(VkDevice device, const VkCmdBufferAllocInfo* pAllocInfo, VkCmdBuffer* pCmdBuffers) {
+ return GetVtbl(device).AllocCommandBuffers(device, pAllocInfo, pCmdBuffers);
}
__attribute__((visibility("default")))
-void vkDestroyCommandBuffer(VkDevice device, VkCmdBuffer commandBuffer) {
- GetVtbl(device).DestroyCommandBuffer(device, commandBuffer);
+void vkFreeCommandBuffers(VkDevice device, VkCmdPool cmdPool, uint32_t count, const VkCmdBuffer* pCommandBuffers) {
+ GetVtbl(device).FreeCommandBuffers(device, cmdPool, count, pCommandBuffers);
}
__attribute__((visibility("default")))
diff --git a/vulkan/libvulkan/get_proc_addr.cpp b/vulkan/libvulkan/get_proc_addr.cpp
index bd16ac5..b9bd689 100644
--- a/vulkan/libvulkan/get_proc_addr.cpp
+++ b/vulkan/libvulkan/get_proc_addr.cpp
@@ -69,6 +69,7 @@
const NameProcEntry kDeviceProcTbl[] = {
// clang-format off
{"vkAcquireNextImageKHR", reinterpret_cast<PFN_vkVoidFunction>(vkAcquireNextImageKHR)},
+ {"vkAllocCommandBuffers", reinterpret_cast<PFN_vkVoidFunction>(vkAllocCommandBuffers)},
{"vkAllocDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(vkAllocDescriptorSets)},
{"vkAllocMemory", reinterpret_cast<PFN_vkVoidFunction>(vkAllocMemory)},
{"vkBeginCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(vkBeginCommandBuffer)},
@@ -120,7 +121,6 @@
{"vkCmdWriteTimestamp", reinterpret_cast<PFN_vkVoidFunction>(vkCmdWriteTimestamp)},
{"vkCreateBuffer", reinterpret_cast<PFN_vkVoidFunction>(vkCreateBuffer)},
{"vkCreateBufferView", reinterpret_cast<PFN_vkVoidFunction>(vkCreateBufferView)},
- {"vkCreateCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(vkCreateCommandBuffer)},
{"vkCreateCommandPool", reinterpret_cast<PFN_vkVoidFunction>(vkCreateCommandPool)},
{"vkCreateComputePipelines", reinterpret_cast<PFN_vkVoidFunction>(vkCreateComputePipelines)},
{"vkCreateDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(vkCreateDescriptorPool)},
@@ -142,7 +142,6 @@
{"vkCreateSwapchainKHR", reinterpret_cast<PFN_vkVoidFunction>(vkCreateSwapchainKHR)},
{"vkDestroyBuffer", reinterpret_cast<PFN_vkVoidFunction>(vkDestroyBuffer)},
{"vkDestroyBufferView", reinterpret_cast<PFN_vkVoidFunction>(vkDestroyBufferView)},
- {"vkDestroyCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(vkDestroyCommandBuffer)},
{"vkDestroyCommandPool", reinterpret_cast<PFN_vkVoidFunction>(vkDestroyCommandPool)},
{"vkDestroyDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(vkDestroyDescriptorPool)},
{"vkDestroyDescriptorSetLayout", reinterpret_cast<PFN_vkVoidFunction>(vkDestroyDescriptorSetLayout)},
@@ -165,6 +164,7 @@
{"vkDeviceWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(vkDeviceWaitIdle)},
{"vkEndCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(vkEndCommandBuffer)},
{"vkFlushMappedMemoryRanges", reinterpret_cast<PFN_vkVoidFunction>(vkFlushMappedMemoryRanges)},
+ {"vkFreeCommandBuffers", reinterpret_cast<PFN_vkVoidFunction>(vkFreeCommandBuffers)},
{"vkFreeDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(vkFreeDescriptorSets)},
{"vkFreeMemory", reinterpret_cast<PFN_vkVoidFunction>(vkFreeMemory)},
{"vkGetBufferMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(vkGetBufferMemoryRequirements)},
@@ -229,6 +229,7 @@
const NameOffsetEntry kDeviceOffsetTbl[] = {
// clang-format off
{"vkAcquireNextImageKHR", offsetof(DeviceVtbl, AcquireNextImageKHR)},
+ {"vkAllocCommandBuffers", offsetof(DeviceVtbl, AllocCommandBuffers)},
{"vkAllocDescriptorSets", offsetof(DeviceVtbl, AllocDescriptorSets)},
{"vkAllocMemory", offsetof(DeviceVtbl, AllocMemory)},
{"vkBeginCommandBuffer", offsetof(DeviceVtbl, BeginCommandBuffer)},
@@ -280,7 +281,6 @@
{"vkCmdWriteTimestamp", offsetof(DeviceVtbl, CmdWriteTimestamp)},
{"vkCreateBuffer", offsetof(DeviceVtbl, CreateBuffer)},
{"vkCreateBufferView", offsetof(DeviceVtbl, CreateBufferView)},
- {"vkCreateCommandBuffer", offsetof(DeviceVtbl, CreateCommandBuffer)},
{"vkCreateCommandPool", offsetof(DeviceVtbl, CreateCommandPool)},
{"vkCreateComputePipelines", offsetof(DeviceVtbl, CreateComputePipelines)},
{"vkCreateDescriptorPool", offsetof(DeviceVtbl, CreateDescriptorPool)},
@@ -302,7 +302,6 @@
{"vkCreateSwapchainKHR", offsetof(DeviceVtbl, CreateSwapchainKHR)},
{"vkDestroyBuffer", offsetof(DeviceVtbl, DestroyBuffer)},
{"vkDestroyBufferView", offsetof(DeviceVtbl, DestroyBufferView)},
- {"vkDestroyCommandBuffer", offsetof(DeviceVtbl, DestroyCommandBuffer)},
{"vkDestroyCommandPool", offsetof(DeviceVtbl, DestroyCommandPool)},
{"vkDestroyDescriptorPool", offsetof(DeviceVtbl, DestroyDescriptorPool)},
{"vkDestroyDescriptorSetLayout", offsetof(DeviceVtbl, DestroyDescriptorSetLayout)},
@@ -325,6 +324,7 @@
{"vkDeviceWaitIdle", offsetof(DeviceVtbl, DeviceWaitIdle)},
{"vkEndCommandBuffer", offsetof(DeviceVtbl, EndCommandBuffer)},
{"vkFlushMappedMemoryRanges", offsetof(DeviceVtbl, FlushMappedMemoryRanges)},
+ {"vkFreeCommandBuffers", offsetof(DeviceVtbl, FreeCommandBuffers)},
{"vkFreeDescriptorSets", offsetof(DeviceVtbl, FreeDescriptorSets)},
{"vkFreeMemory", offsetof(DeviceVtbl, FreeMemory)},
{"vkGetBufferMemoryRequirements", offsetof(DeviceVtbl, GetBufferMemoryRequirements)},
@@ -896,14 +896,14 @@
ALOGE("missing device proc: %s", "vkResetCommandPool");
success = false;
}
- vtbl.CreateCommandBuffer = reinterpret_cast<PFN_vkCreateCommandBuffer>(get_proc_addr(device, "vkCreateCommandBuffer"));
- if (UNLIKELY(!vtbl.CreateCommandBuffer)) {
- ALOGE("missing device proc: %s", "vkCreateCommandBuffer");
+ vtbl.AllocCommandBuffers = reinterpret_cast<PFN_vkAllocCommandBuffers>(get_proc_addr(device, "vkAllocCommandBuffers"));
+ if (UNLIKELY(!vtbl.AllocCommandBuffers)) {
+ ALOGE("missing device proc: %s", "vkAllocCommandBuffers");
success = false;
}
- vtbl.DestroyCommandBuffer = reinterpret_cast<PFN_vkDestroyCommandBuffer>(get_proc_addr(device, "vkDestroyCommandBuffer"));
- if (UNLIKELY(!vtbl.DestroyCommandBuffer)) {
- ALOGE("missing device proc: %s", "vkDestroyCommandBuffer");
+ vtbl.FreeCommandBuffers = reinterpret_cast<PFN_vkFreeCommandBuffers>(get_proc_addr(device, "vkFreeCommandBuffers"));
+ if (UNLIKELY(!vtbl.FreeCommandBuffers)) {
+ ALOGE("missing device proc: %s", "vkFreeCommandBuffers");
success = false;
}
vtbl.BeginCommandBuffer = reinterpret_cast<PFN_vkBeginCommandBuffer>(get_proc_addr(device, "vkBeginCommandBuffer"));
diff --git a/vulkan/libvulkan/loader.cpp b/vulkan/libvulkan/loader.cpp
index ba2f5cf..c427918 100644
--- a/vulkan/libvulkan/loader.cpp
+++ b/vulkan/libvulkan/loader.cpp
@@ -1047,8 +1047,8 @@
if (strcmp(name, "vkGetDeviceQueue") == 0) {
return reinterpret_cast<PFN_vkVoidFunction>(GetDeviceQueue);
}
- if (strcmp(name, "vkCreateCommandBuffer") == 0) {
- return reinterpret_cast<PFN_vkVoidFunction>(CreateCommandBuffer);
+ if (strcmp(name, "vkAllocCommandBuffers") == 0) {
+ return reinterpret_cast<PFN_vkVoidFunction>(AllocCommandBuffers);
}
if (strcmp(name, "vkDestroyDevice") == 0) {
return reinterpret_cast<PFN_vkVoidFunction>(DestroyDevice);
@@ -1072,24 +1072,21 @@
*out_queue = queue;
}
-VkResult CreateCommandBuffer(VkDevice drv_device,
- const VkCmdBufferCreateInfo* create_info,
- VkCmdBuffer* out_cmdbuf) {
- const DeviceVtbl* vtbl = GetVtbl(drv_device);
- VkCmdBuffer cmdbuf;
- VkResult result =
- vtbl->CreateCommandBuffer(drv_device, create_info, &cmdbuf);
+VkResult AllocCommandBuffers(VkDevice device,
+ const VkCmdBufferAllocInfo* alloc_info,
+ VkCmdBuffer* cmdbuffers) {
+ const DeviceVtbl* vtbl = GetVtbl(device);
+ VkResult result = vtbl->AllocCommandBuffers(device, alloc_info, cmdbuffers);
if (result != VK_SUCCESS)
return result;
- hwvulkan_dispatch_t* dispatch =
- reinterpret_cast<hwvulkan_dispatch_t*>(cmdbuf);
- if (dispatch->magic != HWVULKAN_DISPATCH_MAGIC) {
- ALOGE("invalid VkCmdBuffer dispatch magic: 0x%" PRIxPTR,
- dispatch->magic);
- return VK_ERROR_INITIALIZATION_FAILED;
+ for (uint32_t i = 0; i < alloc_info->count; i++) {
+ hwvulkan_dispatch_t* dispatch =
+ reinterpret_cast<hwvulkan_dispatch_t*>(cmdbuffers[i]);
+ ALOGE_IF(dispatch->magic != HWVULKAN_DISPATCH_MAGIC,
+ "invalid VkCmdBuffer dispatch magic: 0x%" PRIxPTR,
+ dispatch->magic);
+ dispatch->vtbl = vtbl;
}
- dispatch->vtbl = vtbl;
- *out_cmdbuf = cmdbuf;
return VK_SUCCESS;
}
diff --git a/vulkan/libvulkan/loader.h b/vulkan/libvulkan/loader.h
index fcaec61..5e0a6c9 100644
--- a/vulkan/libvulkan/loader.h
+++ b/vulkan/libvulkan/loader.h
@@ -131,8 +131,8 @@
PFN_vkCreateCommandPool CreateCommandPool;
PFN_vkDestroyCommandPool DestroyCommandPool;
PFN_vkResetCommandPool ResetCommandPool;
- PFN_vkCreateCommandBuffer CreateCommandBuffer;
- PFN_vkDestroyCommandBuffer DestroyCommandBuffer;
+ PFN_vkAllocCommandBuffers AllocCommandBuffers;
+ PFN_vkFreeCommandBuffers FreeCommandBuffers;
PFN_vkQueueSubmit QueueSubmit;
PFN_vkQueueWaitIdle QueueWaitIdle;
@@ -225,9 +225,9 @@
uint32_t family,
uint32_t index,
VkQueue* out_queue);
-VkResult CreateCommandBuffer(VkDevice device,
- const VkCmdBufferCreateInfo* create_info,
- VkCmdBuffer* out_cmdbuf);
+VkResult AllocCommandBuffers(VkDevice device,
+ const VkCmdBufferAllocInfo* alloc_info,
+ VkCmdBuffer* cmdbuffers);
VkResult DestroyDevice(VkDevice drv_device);
void* AllocDeviceMem(VkDevice device,