venus: support AHB storage image format

R8 + GPU_DATA_BUFFER has been added to support AHB backed storage image
for compute use cases.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35845>
This commit is contained in:
Yiwei Zhang
2025-06-30 13:01:16 -07:00
committed by Marge Bot
parent 5ac532bfc7
commit a5762997da
+8 -5
View File
@@ -168,6 +168,8 @@ vn_android_drm_format_to_vk_format(uint32_t format)
return VK_FORMAT_R16G16B16A16_SFLOAT;
case DRM_FORMAT_ABGR2101010:
return VK_FORMAT_A2B10G10R10_UNORM_PACK32;
case DRM_FORMAT_R8:
return VK_FORMAT_R8_UNORM;
case DRM_FORMAT_YVU420:
return VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM;
case DRM_FORMAT_NV12:
@@ -870,12 +872,13 @@ vn_android_device_import_ahb(
mem_type_index = ffs(mem_type_bits & mem_req->memoryTypeBits) - 1;
}
/* XXX Workaround before we use cross-domain backend in minigbm. The
* blob_mem allocated from virgl backend can have a queried guest
* mappable size smaller than the size returned from image memory
* requirement.
/* XXX Workaround before we use cross-domain backend in minigbm, since
* venus doesn't support transfer blit for classic 3d resources.
*
* For AHB image, we can allow r8 storage image support, since that's
* always allocated with blob mem.
*/
force_unmappable = true;
force_unmappable = img->base.vk.format != VK_FORMAT_R8_UNORM;
}
if (dedicated_info && dedicated_info->buffer != VK_NULL_HANDLE) {