tu: Add support for VkBindMemoryStatusKHR

Signed-off-by: Valentine Burley <valentine.burley@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28360>
This commit is contained in:
Valentine Burley
2024-03-24 14:16:11 +00:00
committed by Marge Bot
parent 06f7407172
commit 7ac6aaf522
2 changed files with 22 additions and 3 deletions

View File

@@ -3016,6 +3016,11 @@ tu_BindBufferMemory2(VkDevice device,
VK_FROM_HANDLE(tu_device_memory, mem, pBindInfos[i].memory);
VK_FROM_HANDLE(tu_buffer, buffer, pBindInfos[i].buffer);
const VkBindMemoryStatusKHR *status =
vk_find_struct_const(pBindInfos[i].pNext, BIND_MEMORY_STATUS_KHR);
if (status)
*status->pResult = VK_SUCCESS;
if (mem) {
buffer->bo = mem->bo;
buffer->iova = mem->bo->iova + pBindInfos[i].memoryOffset;

View File

@@ -851,6 +851,11 @@ tu_BindImageMemory2(VkDevice _device,
}
#endif
const VkBindMemoryStatusKHR *status =
vk_find_struct_const(pBindInfos[i].pNext, BIND_MEMORY_STATUS_KHR);
if (status)
*status->pResult = VK_SUCCESS;
if (mem) {
VkResult result;
if (vk_image_is_android_hardware_buffer(&image->vk)) {
@@ -859,12 +864,18 @@ tu_BindImageMemory2(VkDevice _device,
result = vk_android_get_ahb_layout(mem->vk.ahardware_buffer,
&eci, a_plane_layouts,
TU_MAX_PLANE_COUNT);
if (result != VK_SUCCESS)
if (result != VK_SUCCESS) {
if (status)
*status->pResult = result;
return result;
}
result = tu_image_update_layout(device, image, eci.drmFormatModifier, a_plane_layouts);
if (result != VK_SUCCESS)
if (result != VK_SUCCESS) {
if (status)
*status->pResult = result;
return result;
}
}
image->bo = mem->bo;
image->iova = mem->bo->iova + pBindInfos[i].memoryOffset;
@@ -872,8 +883,11 @@ tu_BindImageMemory2(VkDevice _device,
if (image->vk.usage & VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT) {
if (!mem->bo->map) {
result = tu_bo_map(device, mem->bo, NULL);
if (result != VK_SUCCESS)
if (result != VK_SUCCESS) {
if (status)
*status->pResult = result;
return result;
}
}
image->map = (char *)mem->bo->map + pBindInfos[i].memoryOffset;