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:

committed by
Marge Bot

parent
06f7407172
commit
7ac6aaf522
@@ -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;
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user