/* * Copyright © 2016 Red Hat. * Copyright © 2016 Bas Nieuwenhuizen * * based in part on anv driver which is: * Copyright © 2015 Intel Corporation * * SPDX-License-Identifier: MIT */ #ifndef RADV_ANDROID_H #define RADV_ANDROID_H #include #include #include #include #include "vk_android.h" /* Helper to determine if we should compile * any of the Android AHB support. * * To actually enable the ext we also need * the necessary kernel support. */ #if DETECT_OS_ANDROID && ANDROID_API_LEVEL >= 26 #define RADV_SUPPORT_ANDROID_HARDWARE_BUFFER 1 #include #else #define RADV_SUPPORT_ANDROID_HARDWARE_BUFFER 0 #endif struct radv_device; struct radv_device_memory; VkResult radv_image_from_gralloc(VkDevice device_h, const VkImageCreateInfo *base_info, const VkNativeBufferANDROID *gralloc_info, const VkAllocationCallbacks *alloc, VkImage *out_image_h); unsigned radv_ahb_format_for_vk_format(VkFormat vk_format); VkFormat radv_select_android_external_format(const void *next, VkFormat default_format); VkResult radv_import_ahb_memory(struct radv_device *device, struct radv_device_memory *mem, unsigned priority, const VkImportAndroidHardwareBufferInfoANDROID *info); VkResult radv_create_ahb_memory(struct radv_device *device, struct radv_device_memory *mem, unsigned priority, const VkMemoryAllocateInfo *pAllocateInfo); bool radv_android_gralloc_supports_format(VkFormat format, VkImageUsageFlagBits usage); #endif /* RADV_ANDROID_H */