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