xref: /aosp_15_r20/external/mesa3d/src/virtio/vulkan/vn_android.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker /*
2*61046927SAndroid Build Coastguard Worker  * Copyright 2021 Google LLC
3*61046927SAndroid Build Coastguard Worker  * SPDX-License-Identifier: MIT
4*61046927SAndroid Build Coastguard Worker  *
5*61046927SAndroid Build Coastguard Worker  * based in part on anv and radv which are:
6*61046927SAndroid Build Coastguard Worker  * Copyright © 2015 Intel Corporation
7*61046927SAndroid Build Coastguard Worker  * Copyright © 2016 Red Hat
8*61046927SAndroid Build Coastguard Worker  * Copyright © 2016 Bas Nieuwenhuizen
9*61046927SAndroid Build Coastguard Worker  */
10*61046927SAndroid Build Coastguard Worker 
11*61046927SAndroid Build Coastguard Worker #ifndef VN_ANDROID_H
12*61046927SAndroid Build Coastguard Worker #define VN_ANDROID_H
13*61046927SAndroid Build Coastguard Worker 
14*61046927SAndroid Build Coastguard Worker #include "vn_common.h"
15*61046927SAndroid Build Coastguard Worker 
16*61046927SAndroid Build Coastguard Worker #include <vulkan/vk_android_native_buffer.h>
17*61046927SAndroid Build Coastguard Worker #include <vulkan/vulkan.h>
18*61046927SAndroid Build Coastguard Worker #include <vulkan/vulkan_android.h>
19*61046927SAndroid Build Coastguard Worker 
20*61046927SAndroid Build Coastguard Worker #if DETECT_OS_ANDROID
21*61046927SAndroid Build Coastguard Worker 
22*61046927SAndroid Build Coastguard Worker VkResult
23*61046927SAndroid Build Coastguard Worker vn_android_image_from_anb(struct vn_device *dev,
24*61046927SAndroid Build Coastguard Worker                           const VkImageCreateInfo *image_info,
25*61046927SAndroid Build Coastguard Worker                           const VkNativeBufferANDROID *anb_info,
26*61046927SAndroid Build Coastguard Worker                           const VkAllocationCallbacks *alloc,
27*61046927SAndroid Build Coastguard Worker                           struct vn_image **out_img);
28*61046927SAndroid Build Coastguard Worker 
29*61046927SAndroid Build Coastguard Worker struct vn_device_memory *
30*61046927SAndroid Build Coastguard Worker vn_android_get_wsi_memory_from_bind_info(
31*61046927SAndroid Build Coastguard Worker    struct vn_device *dev, const VkBindImageMemoryInfo *bind_info);
32*61046927SAndroid Build Coastguard Worker 
33*61046927SAndroid Build Coastguard Worker bool
34*61046927SAndroid Build Coastguard Worker vn_android_get_drm_format_modifier_info(
35*61046927SAndroid Build Coastguard Worker    const VkPhysicalDeviceImageFormatInfo2 *format_info,
36*61046927SAndroid Build Coastguard Worker    VkPhysicalDeviceImageDrmFormatModifierInfoEXT *out_info);
37*61046927SAndroid Build Coastguard Worker 
38*61046927SAndroid Build Coastguard Worker const VkFormat *
39*61046927SAndroid Build Coastguard Worker vn_android_format_to_view_formats(VkFormat format, uint32_t *out_count);
40*61046927SAndroid Build Coastguard Worker 
41*61046927SAndroid Build Coastguard Worker uint64_t
42*61046927SAndroid Build Coastguard Worker vn_android_get_ahb_usage(const VkImageUsageFlags usage,
43*61046927SAndroid Build Coastguard Worker                          const VkImageCreateFlags flags);
44*61046927SAndroid Build Coastguard Worker 
45*61046927SAndroid Build Coastguard Worker VkResult
46*61046927SAndroid Build Coastguard Worker vn_android_device_import_ahb(
47*61046927SAndroid Build Coastguard Worker    struct vn_device *dev,
48*61046927SAndroid Build Coastguard Worker    struct vn_device_memory *mem,
49*61046927SAndroid Build Coastguard Worker    const struct VkMemoryDedicatedAllocateInfo *dedicated_info);
50*61046927SAndroid Build Coastguard Worker 
51*61046927SAndroid Build Coastguard Worker VkFormat
52*61046927SAndroid Build Coastguard Worker vn_android_drm_format_to_vk_format(uint32_t format);
53*61046927SAndroid Build Coastguard Worker 
54*61046927SAndroid Build Coastguard Worker uint32_t
55*61046927SAndroid Build Coastguard Worker vn_android_get_ahb_buffer_memory_type_bits(struct vn_device *dev);
56*61046927SAndroid Build Coastguard Worker 
57*61046927SAndroid Build Coastguard Worker uint64_t
58*61046927SAndroid Build Coastguard Worker vn_android_gralloc_get_shared_present_usage(void);
59*61046927SAndroid Build Coastguard Worker 
60*61046927SAndroid Build Coastguard Worker #else
61*61046927SAndroid Build Coastguard Worker 
62*61046927SAndroid Build Coastguard Worker static inline VkResult
vn_android_image_from_anb(UNUSED struct vn_device * dev,UNUSED const VkImageCreateInfo * image_info,UNUSED const VkNativeBufferANDROID * anb_info,UNUSED const VkAllocationCallbacks * alloc,UNUSED struct vn_image ** out_img)63*61046927SAndroid Build Coastguard Worker vn_android_image_from_anb(UNUSED struct vn_device *dev,
64*61046927SAndroid Build Coastguard Worker                           UNUSED const VkImageCreateInfo *image_info,
65*61046927SAndroid Build Coastguard Worker                           UNUSED const VkNativeBufferANDROID *anb_info,
66*61046927SAndroid Build Coastguard Worker                           UNUSED const VkAllocationCallbacks *alloc,
67*61046927SAndroid Build Coastguard Worker                           UNUSED struct vn_image **out_img)
68*61046927SAndroid Build Coastguard Worker {
69*61046927SAndroid Build Coastguard Worker    return VK_ERROR_OUT_OF_HOST_MEMORY;
70*61046927SAndroid Build Coastguard Worker }
71*61046927SAndroid Build Coastguard Worker 
72*61046927SAndroid Build Coastguard Worker static inline struct vn_device_memory *
vn_android_get_wsi_memory_from_bind_info(UNUSED struct vn_device * dev,UNUSED const VkBindImageMemoryInfo * bind_info)73*61046927SAndroid Build Coastguard Worker vn_android_get_wsi_memory_from_bind_info(
74*61046927SAndroid Build Coastguard Worker    UNUSED struct vn_device *dev,
75*61046927SAndroid Build Coastguard Worker    UNUSED const VkBindImageMemoryInfo *bind_info)
76*61046927SAndroid Build Coastguard Worker {
77*61046927SAndroid Build Coastguard Worker    return NULL;
78*61046927SAndroid Build Coastguard Worker }
79*61046927SAndroid Build Coastguard Worker 
80*61046927SAndroid Build Coastguard Worker static inline bool
vn_android_get_drm_format_modifier_info(UNUSED const VkPhysicalDeviceImageFormatInfo2 * format_info,UNUSED VkPhysicalDeviceImageDrmFormatModifierInfoEXT * out_info)81*61046927SAndroid Build Coastguard Worker vn_android_get_drm_format_modifier_info(
82*61046927SAndroid Build Coastguard Worker    UNUSED const VkPhysicalDeviceImageFormatInfo2 *format_info,
83*61046927SAndroid Build Coastguard Worker    UNUSED VkPhysicalDeviceImageDrmFormatModifierInfoEXT *out_info)
84*61046927SAndroid Build Coastguard Worker {
85*61046927SAndroid Build Coastguard Worker    return false;
86*61046927SAndroid Build Coastguard Worker }
87*61046927SAndroid Build Coastguard Worker 
88*61046927SAndroid Build Coastguard Worker static inline const VkFormat *
vn_android_format_to_view_formats(UNUSED VkFormat format,UNUSED uint32_t * out_count)89*61046927SAndroid Build Coastguard Worker vn_android_format_to_view_formats(UNUSED VkFormat format,
90*61046927SAndroid Build Coastguard Worker                                   UNUSED uint32_t *out_count)
91*61046927SAndroid Build Coastguard Worker {
92*61046927SAndroid Build Coastguard Worker    return NULL;
93*61046927SAndroid Build Coastguard Worker }
94*61046927SAndroid Build Coastguard Worker 
95*61046927SAndroid Build Coastguard Worker static inline uint64_t
vn_android_get_ahb_usage(UNUSED const VkImageUsageFlags usage,UNUSED const VkImageCreateFlags flags)96*61046927SAndroid Build Coastguard Worker vn_android_get_ahb_usage(UNUSED const VkImageUsageFlags usage,
97*61046927SAndroid Build Coastguard Worker                          UNUSED const VkImageCreateFlags flags)
98*61046927SAndroid Build Coastguard Worker {
99*61046927SAndroid Build Coastguard Worker    return 0;
100*61046927SAndroid Build Coastguard Worker }
101*61046927SAndroid Build Coastguard Worker 
102*61046927SAndroid Build Coastguard Worker static inline VkResult
vn_android_device_import_ahb(UNUSED struct vn_device * dev,UNUSED struct vn_device_memory * mem,UNUSED const struct VkMemoryDedicatedAllocateInfo * dedicated_info)103*61046927SAndroid Build Coastguard Worker vn_android_device_import_ahb(
104*61046927SAndroid Build Coastguard Worker    UNUSED struct vn_device *dev,
105*61046927SAndroid Build Coastguard Worker    UNUSED struct vn_device_memory *mem,
106*61046927SAndroid Build Coastguard Worker    UNUSED const struct VkMemoryDedicatedAllocateInfo *dedicated_info)
107*61046927SAndroid Build Coastguard Worker {
108*61046927SAndroid Build Coastguard Worker    return VK_ERROR_OUT_OF_HOST_MEMORY;
109*61046927SAndroid Build Coastguard Worker }
110*61046927SAndroid Build Coastguard Worker 
111*61046927SAndroid Build Coastguard Worker static inline VkFormat
vn_android_drm_format_to_vk_format(UNUSED uint32_t format)112*61046927SAndroid Build Coastguard Worker vn_android_drm_format_to_vk_format(UNUSED uint32_t format)
113*61046927SAndroid Build Coastguard Worker {
114*61046927SAndroid Build Coastguard Worker    return VK_FORMAT_UNDEFINED;
115*61046927SAndroid Build Coastguard Worker }
116*61046927SAndroid Build Coastguard Worker 
117*61046927SAndroid Build Coastguard Worker static inline uint32_t
vn_android_get_ahb_buffer_memory_type_bits(UNUSED struct vn_device * dev)118*61046927SAndroid Build Coastguard Worker vn_android_get_ahb_buffer_memory_type_bits(UNUSED struct vn_device *dev)
119*61046927SAndroid Build Coastguard Worker {
120*61046927SAndroid Build Coastguard Worker    return 0;
121*61046927SAndroid Build Coastguard Worker }
122*61046927SAndroid Build Coastguard Worker 
123*61046927SAndroid Build Coastguard Worker static inline uint64_t
vn_android_gralloc_get_shared_present_usage(void)124*61046927SAndroid Build Coastguard Worker vn_android_gralloc_get_shared_present_usage(void)
125*61046927SAndroid Build Coastguard Worker {
126*61046927SAndroid Build Coastguard Worker    return 0;
127*61046927SAndroid Build Coastguard Worker }
128*61046927SAndroid Build Coastguard Worker 
129*61046927SAndroid Build Coastguard Worker #endif /* DETECT_OS_ANDROID */
130*61046927SAndroid Build Coastguard Worker 
131*61046927SAndroid Build Coastguard Worker #endif /* VN_ANDROID_H */
132