xref: /aosp_15_r20/external/vulkan-headers/include/vulkan/vulkan_android.h (revision 902771965e4c6d39c75c62130a6a330c08b024db)
1*90277196SAndroid Build Coastguard Worker #ifndef VULKAN_ANDROID_H_
2*90277196SAndroid Build Coastguard Worker #define VULKAN_ANDROID_H_ 1
3*90277196SAndroid Build Coastguard Worker 
4*90277196SAndroid Build Coastguard Worker /*
5*90277196SAndroid Build Coastguard Worker ** Copyright 2015-2024 The Khronos Group Inc.
6*90277196SAndroid Build Coastguard Worker **
7*90277196SAndroid Build Coastguard Worker ** SPDX-License-Identifier: Apache-2.0
8*90277196SAndroid Build Coastguard Worker */
9*90277196SAndroid Build Coastguard Worker 
10*90277196SAndroid Build Coastguard Worker /*
11*90277196SAndroid Build Coastguard Worker ** This header is generated from the Khronos Vulkan XML API Registry.
12*90277196SAndroid Build Coastguard Worker **
13*90277196SAndroid Build Coastguard Worker */
14*90277196SAndroid Build Coastguard Worker 
15*90277196SAndroid Build Coastguard Worker 
16*90277196SAndroid Build Coastguard Worker #ifdef __cplusplus
17*90277196SAndroid Build Coastguard Worker extern "C" {
18*90277196SAndroid Build Coastguard Worker #endif
19*90277196SAndroid Build Coastguard Worker 
20*90277196SAndroid Build Coastguard Worker 
21*90277196SAndroid Build Coastguard Worker 
22*90277196SAndroid Build Coastguard Worker // VK_KHR_android_surface is a preprocessor guard. Do not pass it to API calls.
23*90277196SAndroid Build Coastguard Worker #define VK_KHR_android_surface 1
24*90277196SAndroid Build Coastguard Worker struct ANativeWindow;
25*90277196SAndroid Build Coastguard Worker #define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
26*90277196SAndroid Build Coastguard Worker #define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
27*90277196SAndroid Build Coastguard Worker typedef VkFlags VkAndroidSurfaceCreateFlagsKHR;
28*90277196SAndroid Build Coastguard Worker typedef struct VkAndroidSurfaceCreateInfoKHR {
29*90277196SAndroid Build Coastguard Worker     VkStructureType                   sType;
30*90277196SAndroid Build Coastguard Worker     const void*                       pNext;
31*90277196SAndroid Build Coastguard Worker     VkAndroidSurfaceCreateFlagsKHR    flags;
32*90277196SAndroid Build Coastguard Worker     struct ANativeWindow*             window;
33*90277196SAndroid Build Coastguard Worker } VkAndroidSurfaceCreateInfoKHR;
34*90277196SAndroid Build Coastguard Worker 
35*90277196SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
36*90277196SAndroid Build Coastguard Worker 
37*90277196SAndroid Build Coastguard Worker #ifndef VK_NO_PROTOTYPES
38*90277196SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
39*90277196SAndroid Build Coastguard Worker     VkInstance                                  instance,
40*90277196SAndroid Build Coastguard Worker     const VkAndroidSurfaceCreateInfoKHR*        pCreateInfo,
41*90277196SAndroid Build Coastguard Worker     const VkAllocationCallbacks*                pAllocator,
42*90277196SAndroid Build Coastguard Worker     VkSurfaceKHR*                               pSurface);
43*90277196SAndroid Build Coastguard Worker #endif
44*90277196SAndroid Build Coastguard Worker 
45*90277196SAndroid Build Coastguard Worker 
46*90277196SAndroid Build Coastguard Worker // VK_ANDROID_external_memory_android_hardware_buffer is a preprocessor guard. Do not pass it to API calls.
47*90277196SAndroid Build Coastguard Worker #define VK_ANDROID_external_memory_android_hardware_buffer 1
48*90277196SAndroid Build Coastguard Worker struct AHardwareBuffer;
49*90277196SAndroid Build Coastguard Worker #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 5
50*90277196SAndroid Build Coastguard Worker #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer"
51*90277196SAndroid Build Coastguard Worker typedef struct VkAndroidHardwareBufferUsageANDROID {
52*90277196SAndroid Build Coastguard Worker     VkStructureType    sType;
53*90277196SAndroid Build Coastguard Worker     void*              pNext;
54*90277196SAndroid Build Coastguard Worker     uint64_t           androidHardwareBufferUsage;
55*90277196SAndroid Build Coastguard Worker } VkAndroidHardwareBufferUsageANDROID;
56*90277196SAndroid Build Coastguard Worker 
57*90277196SAndroid Build Coastguard Worker typedef struct VkAndroidHardwareBufferPropertiesANDROID {
58*90277196SAndroid Build Coastguard Worker     VkStructureType    sType;
59*90277196SAndroid Build Coastguard Worker     void*              pNext;
60*90277196SAndroid Build Coastguard Worker     VkDeviceSize       allocationSize;
61*90277196SAndroid Build Coastguard Worker     uint32_t           memoryTypeBits;
62*90277196SAndroid Build Coastguard Worker } VkAndroidHardwareBufferPropertiesANDROID;
63*90277196SAndroid Build Coastguard Worker 
64*90277196SAndroid Build Coastguard Worker typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID {
65*90277196SAndroid Build Coastguard Worker     VkStructureType                  sType;
66*90277196SAndroid Build Coastguard Worker     void*                            pNext;
67*90277196SAndroid Build Coastguard Worker     VkFormat                         format;
68*90277196SAndroid Build Coastguard Worker     uint64_t                         externalFormat;
69*90277196SAndroid Build Coastguard Worker     VkFormatFeatureFlags             formatFeatures;
70*90277196SAndroid Build Coastguard Worker     VkComponentMapping               samplerYcbcrConversionComponents;
71*90277196SAndroid Build Coastguard Worker     VkSamplerYcbcrModelConversion    suggestedYcbcrModel;
72*90277196SAndroid Build Coastguard Worker     VkSamplerYcbcrRange              suggestedYcbcrRange;
73*90277196SAndroid Build Coastguard Worker     VkChromaLocation                 suggestedXChromaOffset;
74*90277196SAndroid Build Coastguard Worker     VkChromaLocation                 suggestedYChromaOffset;
75*90277196SAndroid Build Coastguard Worker } VkAndroidHardwareBufferFormatPropertiesANDROID;
76*90277196SAndroid Build Coastguard Worker 
77*90277196SAndroid Build Coastguard Worker typedef struct VkImportAndroidHardwareBufferInfoANDROID {
78*90277196SAndroid Build Coastguard Worker     VkStructureType            sType;
79*90277196SAndroid Build Coastguard Worker     const void*                pNext;
80*90277196SAndroid Build Coastguard Worker     struct AHardwareBuffer*    buffer;
81*90277196SAndroid Build Coastguard Worker } VkImportAndroidHardwareBufferInfoANDROID;
82*90277196SAndroid Build Coastguard Worker 
83*90277196SAndroid Build Coastguard Worker typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID {
84*90277196SAndroid Build Coastguard Worker     VkStructureType    sType;
85*90277196SAndroid Build Coastguard Worker     const void*        pNext;
86*90277196SAndroid Build Coastguard Worker     VkDeviceMemory     memory;
87*90277196SAndroid Build Coastguard Worker } VkMemoryGetAndroidHardwareBufferInfoANDROID;
88*90277196SAndroid Build Coastguard Worker 
89*90277196SAndroid Build Coastguard Worker typedef struct VkExternalFormatANDROID {
90*90277196SAndroid Build Coastguard Worker     VkStructureType    sType;
91*90277196SAndroid Build Coastguard Worker     void*              pNext;
92*90277196SAndroid Build Coastguard Worker     uint64_t           externalFormat;
93*90277196SAndroid Build Coastguard Worker } VkExternalFormatANDROID;
94*90277196SAndroid Build Coastguard Worker 
95*90277196SAndroid Build Coastguard Worker typedef struct VkAndroidHardwareBufferFormatProperties2ANDROID {
96*90277196SAndroid Build Coastguard Worker     VkStructureType                  sType;
97*90277196SAndroid Build Coastguard Worker     void*                            pNext;
98*90277196SAndroid Build Coastguard Worker     VkFormat                         format;
99*90277196SAndroid Build Coastguard Worker     uint64_t                         externalFormat;
100*90277196SAndroid Build Coastguard Worker     VkFormatFeatureFlags2            formatFeatures;
101*90277196SAndroid Build Coastguard Worker     VkComponentMapping               samplerYcbcrConversionComponents;
102*90277196SAndroid Build Coastguard Worker     VkSamplerYcbcrModelConversion    suggestedYcbcrModel;
103*90277196SAndroid Build Coastguard Worker     VkSamplerYcbcrRange              suggestedYcbcrRange;
104*90277196SAndroid Build Coastguard Worker     VkChromaLocation                 suggestedXChromaOffset;
105*90277196SAndroid Build Coastguard Worker     VkChromaLocation                 suggestedYChromaOffset;
106*90277196SAndroid Build Coastguard Worker } VkAndroidHardwareBufferFormatProperties2ANDROID;
107*90277196SAndroid Build Coastguard Worker 
108*90277196SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties);
109*90277196SAndroid Build Coastguard Worker typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer);
110*90277196SAndroid Build Coastguard Worker 
111*90277196SAndroid Build Coastguard Worker #ifndef VK_NO_PROTOTYPES
112*90277196SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkGetAndroidHardwareBufferPropertiesANDROID(
113*90277196SAndroid Build Coastguard Worker     VkDevice                                    device,
114*90277196SAndroid Build Coastguard Worker     const struct AHardwareBuffer*               buffer,
115*90277196SAndroid Build Coastguard Worker     VkAndroidHardwareBufferPropertiesANDROID*   pProperties);
116*90277196SAndroid Build Coastguard Worker 
117*90277196SAndroid Build Coastguard Worker VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryAndroidHardwareBufferANDROID(
118*90277196SAndroid Build Coastguard Worker     VkDevice                                    device,
119*90277196SAndroid Build Coastguard Worker     const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
120*90277196SAndroid Build Coastguard Worker     struct AHardwareBuffer**                    pBuffer);
121*90277196SAndroid Build Coastguard Worker #endif
122*90277196SAndroid Build Coastguard Worker 
123*90277196SAndroid Build Coastguard Worker 
124*90277196SAndroid Build Coastguard Worker // VK_ANDROID_external_format_resolve is a preprocessor guard. Do not pass it to API calls.
125*90277196SAndroid Build Coastguard Worker #define VK_ANDROID_external_format_resolve 1
126*90277196SAndroid Build Coastguard Worker #define VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION 1
127*90277196SAndroid Build Coastguard Worker #define VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME "VK_ANDROID_external_format_resolve"
128*90277196SAndroid Build Coastguard Worker typedef struct VkPhysicalDeviceExternalFormatResolveFeaturesANDROID {
129*90277196SAndroid Build Coastguard Worker     VkStructureType    sType;
130*90277196SAndroid Build Coastguard Worker     void*              pNext;
131*90277196SAndroid Build Coastguard Worker     VkBool32           externalFormatResolve;
132*90277196SAndroid Build Coastguard Worker } VkPhysicalDeviceExternalFormatResolveFeaturesANDROID;
133*90277196SAndroid Build Coastguard Worker 
134*90277196SAndroid Build Coastguard Worker typedef struct VkPhysicalDeviceExternalFormatResolvePropertiesANDROID {
135*90277196SAndroid Build Coastguard Worker     VkStructureType     sType;
136*90277196SAndroid Build Coastguard Worker     void*               pNext;
137*90277196SAndroid Build Coastguard Worker     VkBool32            nullColorAttachmentWithExternalFormatResolve;
138*90277196SAndroid Build Coastguard Worker     VkChromaLocation    externalFormatResolveChromaOffsetX;
139*90277196SAndroid Build Coastguard Worker     VkChromaLocation    externalFormatResolveChromaOffsetY;
140*90277196SAndroid Build Coastguard Worker } VkPhysicalDeviceExternalFormatResolvePropertiesANDROID;
141*90277196SAndroid Build Coastguard Worker 
142*90277196SAndroid Build Coastguard Worker typedef struct VkAndroidHardwareBufferFormatResolvePropertiesANDROID {
143*90277196SAndroid Build Coastguard Worker     VkStructureType    sType;
144*90277196SAndroid Build Coastguard Worker     void*              pNext;
145*90277196SAndroid Build Coastguard Worker     VkFormat           colorAttachmentFormat;
146*90277196SAndroid Build Coastguard Worker } VkAndroidHardwareBufferFormatResolvePropertiesANDROID;
147*90277196SAndroid Build Coastguard Worker 
148*90277196SAndroid Build Coastguard Worker 
149*90277196SAndroid Build Coastguard Worker #ifdef __cplusplus
150*90277196SAndroid Build Coastguard Worker }
151*90277196SAndroid Build Coastguard Worker #endif
152*90277196SAndroid Build Coastguard Worker 
153*90277196SAndroid Build Coastguard Worker #endif
154