xref: /aosp_15_r20/frameworks/native/vulkan/nulldrv/null_driver.cpp (revision 38e8c45f13ce32b0dcecb25141ffecaf386fa17f)
1*38e8c45fSAndroid Build Coastguard Worker /*
2*38e8c45fSAndroid Build Coastguard Worker  * Copyright 2015 The Android Open Source Project
3*38e8c45fSAndroid Build Coastguard Worker  *
4*38e8c45fSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*38e8c45fSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*38e8c45fSAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*38e8c45fSAndroid Build Coastguard Worker  *
8*38e8c45fSAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
9*38e8c45fSAndroid Build Coastguard Worker  *
10*38e8c45fSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*38e8c45fSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*38e8c45fSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*38e8c45fSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*38e8c45fSAndroid Build Coastguard Worker  * limitations under the License.
15*38e8c45fSAndroid Build Coastguard Worker  */
16*38e8c45fSAndroid Build Coastguard Worker 
17*38e8c45fSAndroid Build Coastguard Worker #include <android/hardware_buffer.h>
18*38e8c45fSAndroid Build Coastguard Worker #include <hardware/hwvulkan.h>
19*38e8c45fSAndroid Build Coastguard Worker 
20*38e8c45fSAndroid Build Coastguard Worker #include <errno.h>
21*38e8c45fSAndroid Build Coastguard Worker #include <inttypes.h>
22*38e8c45fSAndroid Build Coastguard Worker #include <stdlib.h>
23*38e8c45fSAndroid Build Coastguard Worker #include <string.h>
24*38e8c45fSAndroid Build Coastguard Worker #include <unistd.h>
25*38e8c45fSAndroid Build Coastguard Worker 
26*38e8c45fSAndroid Build Coastguard Worker #include <algorithm>
27*38e8c45fSAndroid Build Coastguard Worker #include <array>
28*38e8c45fSAndroid Build Coastguard Worker 
29*38e8c45fSAndroid Build Coastguard Worker #include <log/log.h>
30*38e8c45fSAndroid Build Coastguard Worker 
31*38e8c45fSAndroid Build Coastguard Worker #include "null_driver_gen.h"
32*38e8c45fSAndroid Build Coastguard Worker 
33*38e8c45fSAndroid Build Coastguard Worker using namespace null_driver;
34*38e8c45fSAndroid Build Coastguard Worker 
35*38e8c45fSAndroid Build Coastguard Worker struct VkPhysicalDevice_T {
36*38e8c45fSAndroid Build Coastguard Worker     hwvulkan_dispatch_t dispatch;
37*38e8c45fSAndroid Build Coastguard Worker };
38*38e8c45fSAndroid Build Coastguard Worker 
39*38e8c45fSAndroid Build Coastguard Worker struct VkInstance_T {
40*38e8c45fSAndroid Build Coastguard Worker     hwvulkan_dispatch_t dispatch;
41*38e8c45fSAndroid Build Coastguard Worker     VkAllocationCallbacks allocator;
42*38e8c45fSAndroid Build Coastguard Worker     VkPhysicalDevice_T physical_device;
43*38e8c45fSAndroid Build Coastguard Worker     uint64_t next_callback_handle;
44*38e8c45fSAndroid Build Coastguard Worker };
45*38e8c45fSAndroid Build Coastguard Worker 
46*38e8c45fSAndroid Build Coastguard Worker struct VkQueue_T {
47*38e8c45fSAndroid Build Coastguard Worker     hwvulkan_dispatch_t dispatch;
48*38e8c45fSAndroid Build Coastguard Worker };
49*38e8c45fSAndroid Build Coastguard Worker 
50*38e8c45fSAndroid Build Coastguard Worker struct VkCommandBuffer_T {
51*38e8c45fSAndroid Build Coastguard Worker     hwvulkan_dispatch_t dispatch;
52*38e8c45fSAndroid Build Coastguard Worker };
53*38e8c45fSAndroid Build Coastguard Worker 
54*38e8c45fSAndroid Build Coastguard Worker namespace {
55*38e8c45fSAndroid Build Coastguard Worker // Handles for non-dispatchable objects are either pointers, or arbitrary
56*38e8c45fSAndroid Build Coastguard Worker // 64-bit non-zero values. We only use pointers when we need to keep state for
57*38e8c45fSAndroid Build Coastguard Worker // the object even in a null driver. For the rest, we form a handle as:
58*38e8c45fSAndroid Build Coastguard Worker //   [63:63] = 1 to distinguish from pointer handles*
59*38e8c45fSAndroid Build Coastguard Worker //   [62:56] = non-zero handle type enum value
60*38e8c45fSAndroid Build Coastguard Worker //   [55: 0] = per-handle-type incrementing counter
61*38e8c45fSAndroid Build Coastguard Worker // * This works because virtual addresses with the high bit set are reserved
62*38e8c45fSAndroid Build Coastguard Worker // for kernel data in all ABIs we run on.
63*38e8c45fSAndroid Build Coastguard Worker //
64*38e8c45fSAndroid Build Coastguard Worker // We never reclaim handles on vkDestroy*. It's not even necessary for us to
65*38e8c45fSAndroid Build Coastguard Worker // have distinct handles for live objects, and practically speaking we won't
66*38e8c45fSAndroid Build Coastguard Worker // ever create 2^56 objects of the same type from a single VkDevice in a null
67*38e8c45fSAndroid Build Coastguard Worker // driver.
68*38e8c45fSAndroid Build Coastguard Worker //
69*38e8c45fSAndroid Build Coastguard Worker // Using a namespace here instead of 'enum class' since we want scoped
70*38e8c45fSAndroid Build Coastguard Worker // constants but also want implicit conversions to integral types.
71*38e8c45fSAndroid Build Coastguard Worker namespace HandleType {
72*38e8c45fSAndroid Build Coastguard Worker enum Enum {
73*38e8c45fSAndroid Build Coastguard Worker     kBufferView,
74*38e8c45fSAndroid Build Coastguard Worker     kDebugReportCallbackEXT,
75*38e8c45fSAndroid Build Coastguard Worker     kDescriptorPool,
76*38e8c45fSAndroid Build Coastguard Worker     kDescriptorSet,
77*38e8c45fSAndroid Build Coastguard Worker     kDescriptorSetLayout,
78*38e8c45fSAndroid Build Coastguard Worker     kEvent,
79*38e8c45fSAndroid Build Coastguard Worker     kFence,
80*38e8c45fSAndroid Build Coastguard Worker     kFramebuffer,
81*38e8c45fSAndroid Build Coastguard Worker     kImageView,
82*38e8c45fSAndroid Build Coastguard Worker     kPipeline,
83*38e8c45fSAndroid Build Coastguard Worker     kPipelineCache,
84*38e8c45fSAndroid Build Coastguard Worker     kPipelineLayout,
85*38e8c45fSAndroid Build Coastguard Worker     kQueryPool,
86*38e8c45fSAndroid Build Coastguard Worker     kRenderPass,
87*38e8c45fSAndroid Build Coastguard Worker     kSampler,
88*38e8c45fSAndroid Build Coastguard Worker     kSemaphore,
89*38e8c45fSAndroid Build Coastguard Worker     kShaderModule,
90*38e8c45fSAndroid Build Coastguard Worker 
91*38e8c45fSAndroid Build Coastguard Worker     kNumTypes
92*38e8c45fSAndroid Build Coastguard Worker };
93*38e8c45fSAndroid Build Coastguard Worker }  // namespace HandleType
94*38e8c45fSAndroid Build Coastguard Worker 
95*38e8c45fSAndroid Build Coastguard Worker const VkDeviceSize kMaxDeviceMemory = 0x10000000;  // 256 MiB, arbitrary
96*38e8c45fSAndroid Build Coastguard Worker 
97*38e8c45fSAndroid Build Coastguard Worker }  // anonymous namespace
98*38e8c45fSAndroid Build Coastguard Worker 
99*38e8c45fSAndroid Build Coastguard Worker struct VkDevice_T {
100*38e8c45fSAndroid Build Coastguard Worker     hwvulkan_dispatch_t dispatch;
101*38e8c45fSAndroid Build Coastguard Worker     VkAllocationCallbacks allocator;
102*38e8c45fSAndroid Build Coastguard Worker     VkInstance_T* instance;
103*38e8c45fSAndroid Build Coastguard Worker     VkQueue_T queue;
104*38e8c45fSAndroid Build Coastguard Worker     std::array<uint64_t, HandleType::kNumTypes> next_handle;
105*38e8c45fSAndroid Build Coastguard Worker };
106*38e8c45fSAndroid Build Coastguard Worker 
107*38e8c45fSAndroid Build Coastguard Worker // -----------------------------------------------------------------------------
108*38e8c45fSAndroid Build Coastguard Worker // Declare HAL_MODULE_INFO_SYM early so it can be referenced by nulldrv_device
109*38e8c45fSAndroid Build Coastguard Worker // later.
110*38e8c45fSAndroid Build Coastguard Worker 
111*38e8c45fSAndroid Build Coastguard Worker namespace {
112*38e8c45fSAndroid Build Coastguard Worker int OpenDevice(const hw_module_t* module, const char* id, hw_device_t** device);
113*38e8c45fSAndroid Build Coastguard Worker hw_module_methods_t nulldrv_module_methods = {.open = OpenDevice};
114*38e8c45fSAndroid Build Coastguard Worker }  // namespace
115*38e8c45fSAndroid Build Coastguard Worker 
116*38e8c45fSAndroid Build Coastguard Worker #pragma clang diagnostic push
117*38e8c45fSAndroid Build Coastguard Worker #pragma clang diagnostic ignored "-Wmissing-variable-declarations"
118*38e8c45fSAndroid Build Coastguard Worker __attribute__((visibility("default"))) hwvulkan_module_t HAL_MODULE_INFO_SYM = {
119*38e8c45fSAndroid Build Coastguard Worker     .common =
120*38e8c45fSAndroid Build Coastguard Worker         {
121*38e8c45fSAndroid Build Coastguard Worker             .tag = HARDWARE_MODULE_TAG,
122*38e8c45fSAndroid Build Coastguard Worker             .module_api_version = HWVULKAN_MODULE_API_VERSION_0_1,
123*38e8c45fSAndroid Build Coastguard Worker             .hal_api_version = HARDWARE_HAL_API_VERSION,
124*38e8c45fSAndroid Build Coastguard Worker             .id = HWVULKAN_HARDWARE_MODULE_ID,
125*38e8c45fSAndroid Build Coastguard Worker             .name = "Null Vulkan Driver",
126*38e8c45fSAndroid Build Coastguard Worker             .author = "The Android Open Source Project",
127*38e8c45fSAndroid Build Coastguard Worker             .methods = &nulldrv_module_methods,
128*38e8c45fSAndroid Build Coastguard Worker         },
129*38e8c45fSAndroid Build Coastguard Worker };
130*38e8c45fSAndroid Build Coastguard Worker #pragma clang diagnostic pop
131*38e8c45fSAndroid Build Coastguard Worker 
132*38e8c45fSAndroid Build Coastguard Worker // -----------------------------------------------------------------------------
133*38e8c45fSAndroid Build Coastguard Worker 
134*38e8c45fSAndroid Build Coastguard Worker namespace {
135*38e8c45fSAndroid Build Coastguard Worker 
CloseDevice(struct hw_device_t *)136*38e8c45fSAndroid Build Coastguard Worker int CloseDevice(struct hw_device_t* /*device*/) {
137*38e8c45fSAndroid Build Coastguard Worker     // nothing to do - opening a device doesn't allocate any resources
138*38e8c45fSAndroid Build Coastguard Worker     return 0;
139*38e8c45fSAndroid Build Coastguard Worker }
140*38e8c45fSAndroid Build Coastguard Worker 
141*38e8c45fSAndroid Build Coastguard Worker hwvulkan_device_t nulldrv_device = {
142*38e8c45fSAndroid Build Coastguard Worker     .common =
143*38e8c45fSAndroid Build Coastguard Worker         {
144*38e8c45fSAndroid Build Coastguard Worker             .tag = HARDWARE_DEVICE_TAG,
145*38e8c45fSAndroid Build Coastguard Worker             .version = HWVULKAN_DEVICE_API_VERSION_0_1,
146*38e8c45fSAndroid Build Coastguard Worker             .module = &HAL_MODULE_INFO_SYM.common,
147*38e8c45fSAndroid Build Coastguard Worker             .close = CloseDevice,
148*38e8c45fSAndroid Build Coastguard Worker         },
149*38e8c45fSAndroid Build Coastguard Worker     .EnumerateInstanceExtensionProperties =
150*38e8c45fSAndroid Build Coastguard Worker         EnumerateInstanceExtensionProperties,
151*38e8c45fSAndroid Build Coastguard Worker     .CreateInstance = CreateInstance,
152*38e8c45fSAndroid Build Coastguard Worker     .GetInstanceProcAddr = GetInstanceProcAddr};
153*38e8c45fSAndroid Build Coastguard Worker 
OpenDevice(const hw_module_t *,const char * id,hw_device_t ** device)154*38e8c45fSAndroid Build Coastguard Worker int OpenDevice(const hw_module_t* /*module*/,
155*38e8c45fSAndroid Build Coastguard Worker                const char* id,
156*38e8c45fSAndroid Build Coastguard Worker                hw_device_t** device) {
157*38e8c45fSAndroid Build Coastguard Worker     if (strcmp(id, HWVULKAN_DEVICE_0) == 0) {
158*38e8c45fSAndroid Build Coastguard Worker         *device = &nulldrv_device.common;
159*38e8c45fSAndroid Build Coastguard Worker         return 0;
160*38e8c45fSAndroid Build Coastguard Worker     }
161*38e8c45fSAndroid Build Coastguard Worker     return -ENOENT;
162*38e8c45fSAndroid Build Coastguard Worker }
163*38e8c45fSAndroid Build Coastguard Worker 
GetInstanceFromPhysicalDevice(VkPhysicalDevice_T * physical_device)164*38e8c45fSAndroid Build Coastguard Worker VkInstance_T* GetInstanceFromPhysicalDevice(
165*38e8c45fSAndroid Build Coastguard Worker     VkPhysicalDevice_T* physical_device) {
166*38e8c45fSAndroid Build Coastguard Worker     return reinterpret_cast<VkInstance_T*>(
167*38e8c45fSAndroid Build Coastguard Worker         reinterpret_cast<uintptr_t>(physical_device) -
168*38e8c45fSAndroid Build Coastguard Worker         offsetof(VkInstance_T, physical_device));
169*38e8c45fSAndroid Build Coastguard Worker }
170*38e8c45fSAndroid Build Coastguard Worker 
AllocHandle(uint64_t type,uint64_t * next_handle)171*38e8c45fSAndroid Build Coastguard Worker uint64_t AllocHandle(uint64_t type, uint64_t* next_handle) {
172*38e8c45fSAndroid Build Coastguard Worker     const uint64_t kHandleMask = (UINT64_C(1) << 56) - 1;
173*38e8c45fSAndroid Build Coastguard Worker     ALOGE_IF(*next_handle == kHandleMask,
174*38e8c45fSAndroid Build Coastguard Worker              "non-dispatchable handles of type=%" PRIu64
175*38e8c45fSAndroid Build Coastguard Worker              " are about to overflow",
176*38e8c45fSAndroid Build Coastguard Worker              type);
177*38e8c45fSAndroid Build Coastguard Worker     return (UINT64_C(1) << 63) | ((type & 0x7) << 56) |
178*38e8c45fSAndroid Build Coastguard Worker            ((*next_handle)++ & kHandleMask);
179*38e8c45fSAndroid Build Coastguard Worker }
180*38e8c45fSAndroid Build Coastguard Worker 
181*38e8c45fSAndroid Build Coastguard Worker template <class Handle>
AllocHandle(VkInstance instance,HandleType::Enum type)182*38e8c45fSAndroid Build Coastguard Worker Handle AllocHandle(VkInstance instance, HandleType::Enum type) {
183*38e8c45fSAndroid Build Coastguard Worker     return reinterpret_cast<Handle>(
184*38e8c45fSAndroid Build Coastguard Worker         AllocHandle(type, &instance->next_callback_handle));
185*38e8c45fSAndroid Build Coastguard Worker }
186*38e8c45fSAndroid Build Coastguard Worker 
187*38e8c45fSAndroid Build Coastguard Worker template <class Handle>
AllocHandle(VkDevice device,HandleType::Enum type)188*38e8c45fSAndroid Build Coastguard Worker Handle AllocHandle(VkDevice device, HandleType::Enum type) {
189*38e8c45fSAndroid Build Coastguard Worker     return reinterpret_cast<Handle>(
190*38e8c45fSAndroid Build Coastguard Worker         AllocHandle(type, &device->next_handle[type]));
191*38e8c45fSAndroid Build Coastguard Worker }
192*38e8c45fSAndroid Build Coastguard Worker 
DefaultAllocate(void *,size_t size,size_t alignment,VkSystemAllocationScope)193*38e8c45fSAndroid Build Coastguard Worker VKAPI_ATTR void* DefaultAllocate(void*,
194*38e8c45fSAndroid Build Coastguard Worker                                  size_t size,
195*38e8c45fSAndroid Build Coastguard Worker                                  size_t alignment,
196*38e8c45fSAndroid Build Coastguard Worker                                  VkSystemAllocationScope) {
197*38e8c45fSAndroid Build Coastguard Worker     void* ptr = nullptr;
198*38e8c45fSAndroid Build Coastguard Worker     // Vulkan requires 'alignment' to be a power of two, but posix_memalign
199*38e8c45fSAndroid Build Coastguard Worker     // additionally requires that it be at least sizeof(void*).
200*38e8c45fSAndroid Build Coastguard Worker     int ret = posix_memalign(&ptr, std::max(alignment, sizeof(void*)), size);
201*38e8c45fSAndroid Build Coastguard Worker     return ret == 0 ? ptr : nullptr;
202*38e8c45fSAndroid Build Coastguard Worker }
203*38e8c45fSAndroid Build Coastguard Worker 
DefaultReallocate(void *,void * ptr,size_t size,size_t alignment,VkSystemAllocationScope)204*38e8c45fSAndroid Build Coastguard Worker VKAPI_ATTR void* DefaultReallocate(void*,
205*38e8c45fSAndroid Build Coastguard Worker                                    void* ptr,
206*38e8c45fSAndroid Build Coastguard Worker                                    size_t size,
207*38e8c45fSAndroid Build Coastguard Worker                                    size_t alignment,
208*38e8c45fSAndroid Build Coastguard Worker                                    VkSystemAllocationScope) {
209*38e8c45fSAndroid Build Coastguard Worker     if (size == 0) {
210*38e8c45fSAndroid Build Coastguard Worker         free(ptr);
211*38e8c45fSAndroid Build Coastguard Worker         return nullptr;
212*38e8c45fSAndroid Build Coastguard Worker     }
213*38e8c45fSAndroid Build Coastguard Worker 
214*38e8c45fSAndroid Build Coastguard Worker     // TODO(jessehall): Right now we never shrink allocations; if the new
215*38e8c45fSAndroid Build Coastguard Worker     // request is smaller than the existing chunk, we just continue using it.
216*38e8c45fSAndroid Build Coastguard Worker     // The null driver never reallocs, so this doesn't matter. If that changes,
217*38e8c45fSAndroid Build Coastguard Worker     // or if this code is copied into some other project, this should probably
218*38e8c45fSAndroid Build Coastguard Worker     // have a heuristic to allocate-copy-free when doing so will save "enough"
219*38e8c45fSAndroid Build Coastguard Worker     // space.
220*38e8c45fSAndroid Build Coastguard Worker     size_t old_size = ptr ? malloc_usable_size(ptr) : 0;
221*38e8c45fSAndroid Build Coastguard Worker     if (size <= old_size)
222*38e8c45fSAndroid Build Coastguard Worker         return ptr;
223*38e8c45fSAndroid Build Coastguard Worker 
224*38e8c45fSAndroid Build Coastguard Worker     void* new_ptr = nullptr;
225*38e8c45fSAndroid Build Coastguard Worker     if (posix_memalign(&new_ptr, std::max(alignment, sizeof(void*)), size) != 0)
226*38e8c45fSAndroid Build Coastguard Worker         return nullptr;
227*38e8c45fSAndroid Build Coastguard Worker     if (ptr) {
228*38e8c45fSAndroid Build Coastguard Worker         memcpy(new_ptr, ptr, std::min(old_size, size));
229*38e8c45fSAndroid Build Coastguard Worker         free(ptr);
230*38e8c45fSAndroid Build Coastguard Worker     }
231*38e8c45fSAndroid Build Coastguard Worker     return new_ptr;
232*38e8c45fSAndroid Build Coastguard Worker }
233*38e8c45fSAndroid Build Coastguard Worker 
DefaultFree(void *,void * ptr)234*38e8c45fSAndroid Build Coastguard Worker VKAPI_ATTR void DefaultFree(void*, void* ptr) {
235*38e8c45fSAndroid Build Coastguard Worker     free(ptr);
236*38e8c45fSAndroid Build Coastguard Worker }
237*38e8c45fSAndroid Build Coastguard Worker 
238*38e8c45fSAndroid Build Coastguard Worker const VkAllocationCallbacks kDefaultAllocCallbacks = {
239*38e8c45fSAndroid Build Coastguard Worker     .pUserData = nullptr,
240*38e8c45fSAndroid Build Coastguard Worker     .pfnAllocation = DefaultAllocate,
241*38e8c45fSAndroid Build Coastguard Worker     .pfnReallocation = DefaultReallocate,
242*38e8c45fSAndroid Build Coastguard Worker     .pfnFree = DefaultFree,
243*38e8c45fSAndroid Build Coastguard Worker };
244*38e8c45fSAndroid Build Coastguard Worker 
245*38e8c45fSAndroid Build Coastguard Worker }  // namespace
246*38e8c45fSAndroid Build Coastguard Worker 
247*38e8c45fSAndroid Build Coastguard Worker namespace null_driver {
248*38e8c45fSAndroid Build Coastguard Worker 
249*38e8c45fSAndroid Build Coastguard Worker #define DEFINE_OBJECT_HANDLE_CONVERSION(T)              \
250*38e8c45fSAndroid Build Coastguard Worker     T* Get##T##FromHandle(Vk##T h);                     \
251*38e8c45fSAndroid Build Coastguard Worker     T* Get##T##FromHandle(Vk##T h) {                    \
252*38e8c45fSAndroid Build Coastguard Worker         return reinterpret_cast<T*>(uintptr_t(h));      \
253*38e8c45fSAndroid Build Coastguard Worker     }                                                   \
254*38e8c45fSAndroid Build Coastguard Worker     Vk##T GetHandleTo##T(const T* obj);                 \
255*38e8c45fSAndroid Build Coastguard Worker     Vk##T GetHandleTo##T(const T* obj) {                \
256*38e8c45fSAndroid Build Coastguard Worker         return Vk##T(reinterpret_cast<uintptr_t>(obj)); \
257*38e8c45fSAndroid Build Coastguard Worker     }
258*38e8c45fSAndroid Build Coastguard Worker 
259*38e8c45fSAndroid Build Coastguard Worker // -----------------------------------------------------------------------------
260*38e8c45fSAndroid Build Coastguard Worker // Global
261*38e8c45fSAndroid Build Coastguard Worker 
262*38e8c45fSAndroid Build Coastguard Worker VKAPI_ATTR
EnumerateInstanceVersion(uint32_t * pApiVersion)263*38e8c45fSAndroid Build Coastguard Worker VkResult EnumerateInstanceVersion(uint32_t* pApiVersion) {
264*38e8c45fSAndroid Build Coastguard Worker     *pApiVersion = VK_API_VERSION_1_3;
265*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
266*38e8c45fSAndroid Build Coastguard Worker }
267*38e8c45fSAndroid Build Coastguard Worker 
268*38e8c45fSAndroid Build Coastguard Worker VKAPI_ATTR
EnumerateInstanceExtensionProperties(const char * layer_name,uint32_t * count,VkExtensionProperties * properties)269*38e8c45fSAndroid Build Coastguard Worker VkResult EnumerateInstanceExtensionProperties(
270*38e8c45fSAndroid Build Coastguard Worker     const char* layer_name,
271*38e8c45fSAndroid Build Coastguard Worker     uint32_t* count,
272*38e8c45fSAndroid Build Coastguard Worker     VkExtensionProperties* properties) {
273*38e8c45fSAndroid Build Coastguard Worker     if (layer_name) {
274*38e8c45fSAndroid Build Coastguard Worker         ALOGW(
275*38e8c45fSAndroid Build Coastguard Worker             "Driver vkEnumerateInstanceExtensionProperties shouldn't be called "
276*38e8c45fSAndroid Build Coastguard Worker             "with a layer name ('%s')",
277*38e8c45fSAndroid Build Coastguard Worker             layer_name);
278*38e8c45fSAndroid Build Coastguard Worker     }
279*38e8c45fSAndroid Build Coastguard Worker 
280*38e8c45fSAndroid Build Coastguard Worker     const VkExtensionProperties kExtensions[] = {
281*38e8c45fSAndroid Build Coastguard Worker         {VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION}};
282*38e8c45fSAndroid Build Coastguard Worker     const uint32_t kExtensionsCount =
283*38e8c45fSAndroid Build Coastguard Worker         sizeof(kExtensions) / sizeof(kExtensions[0]);
284*38e8c45fSAndroid Build Coastguard Worker 
285*38e8c45fSAndroid Build Coastguard Worker     if (!properties || *count > kExtensionsCount)
286*38e8c45fSAndroid Build Coastguard Worker         *count = kExtensionsCount;
287*38e8c45fSAndroid Build Coastguard Worker     if (properties)
288*38e8c45fSAndroid Build Coastguard Worker         std::copy(kExtensions, kExtensions + *count, properties);
289*38e8c45fSAndroid Build Coastguard Worker     return *count < kExtensionsCount ? VK_INCOMPLETE : VK_SUCCESS;
290*38e8c45fSAndroid Build Coastguard Worker }
291*38e8c45fSAndroid Build Coastguard Worker 
292*38e8c45fSAndroid Build Coastguard Worker VKAPI_ATTR
CreateInstance(const VkInstanceCreateInfo * create_info,const VkAllocationCallbacks * allocator,VkInstance * out_instance)293*38e8c45fSAndroid Build Coastguard Worker VkResult CreateInstance(const VkInstanceCreateInfo* create_info,
294*38e8c45fSAndroid Build Coastguard Worker                         const VkAllocationCallbacks* allocator,
295*38e8c45fSAndroid Build Coastguard Worker                         VkInstance* out_instance) {
296*38e8c45fSAndroid Build Coastguard Worker     if (!allocator)
297*38e8c45fSAndroid Build Coastguard Worker         allocator = &kDefaultAllocCallbacks;
298*38e8c45fSAndroid Build Coastguard Worker 
299*38e8c45fSAndroid Build Coastguard Worker     VkInstance_T* instance =
300*38e8c45fSAndroid Build Coastguard Worker         static_cast<VkInstance_T*>(allocator->pfnAllocation(
301*38e8c45fSAndroid Build Coastguard Worker             allocator->pUserData, sizeof(VkInstance_T), alignof(VkInstance_T),
302*38e8c45fSAndroid Build Coastguard Worker             VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE));
303*38e8c45fSAndroid Build Coastguard Worker     if (!instance)
304*38e8c45fSAndroid Build Coastguard Worker         return VK_ERROR_OUT_OF_HOST_MEMORY;
305*38e8c45fSAndroid Build Coastguard Worker 
306*38e8c45fSAndroid Build Coastguard Worker     instance->dispatch.magic = HWVULKAN_DISPATCH_MAGIC;
307*38e8c45fSAndroid Build Coastguard Worker     instance->allocator = *allocator;
308*38e8c45fSAndroid Build Coastguard Worker     instance->physical_device.dispatch.magic = HWVULKAN_DISPATCH_MAGIC;
309*38e8c45fSAndroid Build Coastguard Worker     instance->next_callback_handle = 0;
310*38e8c45fSAndroid Build Coastguard Worker 
311*38e8c45fSAndroid Build Coastguard Worker     for (uint32_t i = 0; i < create_info->enabledExtensionCount; i++) {
312*38e8c45fSAndroid Build Coastguard Worker         if (strcmp(create_info->ppEnabledExtensionNames[i],
313*38e8c45fSAndroid Build Coastguard Worker                    VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME) == 0) {
314*38e8c45fSAndroid Build Coastguard Worker             ALOGV("instance extension '%s' requested",
315*38e8c45fSAndroid Build Coastguard Worker                   create_info->ppEnabledExtensionNames[i]);
316*38e8c45fSAndroid Build Coastguard Worker         } else if (strcmp(create_info->ppEnabledExtensionNames[i],
317*38e8c45fSAndroid Build Coastguard Worker                    VK_EXT_DEBUG_REPORT_EXTENSION_NAME) == 0) {
318*38e8c45fSAndroid Build Coastguard Worker             ALOGV("instance extension '%s' requested",
319*38e8c45fSAndroid Build Coastguard Worker                   create_info->ppEnabledExtensionNames[i]);
320*38e8c45fSAndroid Build Coastguard Worker         } else {
321*38e8c45fSAndroid Build Coastguard Worker             ALOGW("unsupported extension '%s' requested",
322*38e8c45fSAndroid Build Coastguard Worker                   create_info->ppEnabledExtensionNames[i]);
323*38e8c45fSAndroid Build Coastguard Worker         }
324*38e8c45fSAndroid Build Coastguard Worker     }
325*38e8c45fSAndroid Build Coastguard Worker 
326*38e8c45fSAndroid Build Coastguard Worker     *out_instance = instance;
327*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
328*38e8c45fSAndroid Build Coastguard Worker }
329*38e8c45fSAndroid Build Coastguard Worker 
330*38e8c45fSAndroid Build Coastguard Worker VKAPI_ATTR
GetInstanceProcAddr(VkInstance instance,const char * name)331*38e8c45fSAndroid Build Coastguard Worker PFN_vkVoidFunction GetInstanceProcAddr(VkInstance instance, const char* name) {
332*38e8c45fSAndroid Build Coastguard Worker     return instance ? GetInstanceProcAddr(name) : GetGlobalProcAddr(name);
333*38e8c45fSAndroid Build Coastguard Worker }
334*38e8c45fSAndroid Build Coastguard Worker 
335*38e8c45fSAndroid Build Coastguard Worker VKAPI_ATTR
GetDeviceProcAddr(VkDevice,const char * name)336*38e8c45fSAndroid Build Coastguard Worker PFN_vkVoidFunction GetDeviceProcAddr(VkDevice, const char* name) {
337*38e8c45fSAndroid Build Coastguard Worker     return GetInstanceProcAddr(name);
338*38e8c45fSAndroid Build Coastguard Worker }
339*38e8c45fSAndroid Build Coastguard Worker 
340*38e8c45fSAndroid Build Coastguard Worker // -----------------------------------------------------------------------------
341*38e8c45fSAndroid Build Coastguard Worker // Instance
342*38e8c45fSAndroid Build Coastguard Worker 
DestroyInstance(VkInstance instance,const VkAllocationCallbacks *)343*38e8c45fSAndroid Build Coastguard Worker void DestroyInstance(VkInstance instance,
344*38e8c45fSAndroid Build Coastguard Worker                      const VkAllocationCallbacks* /*allocator*/) {
345*38e8c45fSAndroid Build Coastguard Worker     instance->allocator.pfnFree(instance->allocator.pUserData, instance);
346*38e8c45fSAndroid Build Coastguard Worker }
347*38e8c45fSAndroid Build Coastguard Worker 
348*38e8c45fSAndroid Build Coastguard Worker // -----------------------------------------------------------------------------
349*38e8c45fSAndroid Build Coastguard Worker // PhysicalDevice
350*38e8c45fSAndroid Build Coastguard Worker 
EnumeratePhysicalDevices(VkInstance instance,uint32_t * physical_device_count,VkPhysicalDevice * physical_devices)351*38e8c45fSAndroid Build Coastguard Worker VkResult EnumeratePhysicalDevices(VkInstance instance,
352*38e8c45fSAndroid Build Coastguard Worker                                   uint32_t* physical_device_count,
353*38e8c45fSAndroid Build Coastguard Worker                                   VkPhysicalDevice* physical_devices) {
354*38e8c45fSAndroid Build Coastguard Worker     if (!physical_devices)
355*38e8c45fSAndroid Build Coastguard Worker         *physical_device_count = 1;
356*38e8c45fSAndroid Build Coastguard Worker     else if (*physical_device_count == 0)
357*38e8c45fSAndroid Build Coastguard Worker         return VK_INCOMPLETE;
358*38e8c45fSAndroid Build Coastguard Worker     else {
359*38e8c45fSAndroid Build Coastguard Worker         physical_devices[0] = &instance->physical_device;
360*38e8c45fSAndroid Build Coastguard Worker         *physical_device_count = 1;
361*38e8c45fSAndroid Build Coastguard Worker     }
362*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
363*38e8c45fSAndroid Build Coastguard Worker }
364*38e8c45fSAndroid Build Coastguard Worker 
EnumerateDeviceLayerProperties(VkPhysicalDevice,uint32_t * count,VkLayerProperties *)365*38e8c45fSAndroid Build Coastguard Worker VkResult EnumerateDeviceLayerProperties(VkPhysicalDevice /*gpu*/,
366*38e8c45fSAndroid Build Coastguard Worker                                         uint32_t* count,
367*38e8c45fSAndroid Build Coastguard Worker                                         VkLayerProperties* /*properties*/) {
368*38e8c45fSAndroid Build Coastguard Worker     ALOGW("Driver vkEnumerateDeviceLayerProperties shouldn't be called");
369*38e8c45fSAndroid Build Coastguard Worker     *count = 0;
370*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
371*38e8c45fSAndroid Build Coastguard Worker }
372*38e8c45fSAndroid Build Coastguard Worker 
EnumerateDeviceExtensionProperties(VkPhysicalDevice,const char * layer_name,uint32_t * count,VkExtensionProperties * properties)373*38e8c45fSAndroid Build Coastguard Worker VkResult EnumerateDeviceExtensionProperties(VkPhysicalDevice /*gpu*/,
374*38e8c45fSAndroid Build Coastguard Worker                                             const char* layer_name,
375*38e8c45fSAndroid Build Coastguard Worker                                             uint32_t* count,
376*38e8c45fSAndroid Build Coastguard Worker                                             VkExtensionProperties* properties) {
377*38e8c45fSAndroid Build Coastguard Worker     if (layer_name) {
378*38e8c45fSAndroid Build Coastguard Worker         ALOGW(
379*38e8c45fSAndroid Build Coastguard Worker             "Driver vkEnumerateDeviceExtensionProperties shouldn't be called "
380*38e8c45fSAndroid Build Coastguard Worker             "with a layer name ('%s')",
381*38e8c45fSAndroid Build Coastguard Worker             layer_name);
382*38e8c45fSAndroid Build Coastguard Worker         *count = 0;
383*38e8c45fSAndroid Build Coastguard Worker         return VK_SUCCESS;
384*38e8c45fSAndroid Build Coastguard Worker     }
385*38e8c45fSAndroid Build Coastguard Worker 
386*38e8c45fSAndroid Build Coastguard Worker     const VkExtensionProperties kExtensions[] = {
387*38e8c45fSAndroid Build Coastguard Worker         {VK_ANDROID_NATIVE_BUFFER_EXTENSION_NAME,
388*38e8c45fSAndroid Build Coastguard Worker          VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION}};
389*38e8c45fSAndroid Build Coastguard Worker     const uint32_t kExtensionsCount =
390*38e8c45fSAndroid Build Coastguard Worker         sizeof(kExtensions) / sizeof(kExtensions[0]);
391*38e8c45fSAndroid Build Coastguard Worker 
392*38e8c45fSAndroid Build Coastguard Worker     if (!properties || *count > kExtensionsCount)
393*38e8c45fSAndroid Build Coastguard Worker         *count = kExtensionsCount;
394*38e8c45fSAndroid Build Coastguard Worker     if (properties)
395*38e8c45fSAndroid Build Coastguard Worker         std::copy(kExtensions, kExtensions + *count, properties);
396*38e8c45fSAndroid Build Coastguard Worker     return *count < kExtensionsCount ? VK_INCOMPLETE : VK_SUCCESS;
397*38e8c45fSAndroid Build Coastguard Worker }
398*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceProperties(VkPhysicalDevice,VkPhysicalDeviceProperties * properties)399*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceProperties(VkPhysicalDevice,
400*38e8c45fSAndroid Build Coastguard Worker                                  VkPhysicalDeviceProperties* properties) {
401*38e8c45fSAndroid Build Coastguard Worker     properties->apiVersion = VK_MAKE_API_VERSION(0, 1, 2, VK_HEADER_VERSION);
402*38e8c45fSAndroid Build Coastguard Worker     properties->driverVersion = VK_MAKE_API_VERSION(0, 0, 0, 1);
403*38e8c45fSAndroid Build Coastguard Worker     properties->vendorID = 0;
404*38e8c45fSAndroid Build Coastguard Worker     properties->deviceID = 0;
405*38e8c45fSAndroid Build Coastguard Worker     properties->deviceType = VK_PHYSICAL_DEVICE_TYPE_OTHER;
406*38e8c45fSAndroid Build Coastguard Worker     strcpy(properties->deviceName, "Android Vulkan Null Driver");
407*38e8c45fSAndroid Build Coastguard Worker     memset(properties->pipelineCacheUUID, 0,
408*38e8c45fSAndroid Build Coastguard Worker            sizeof(properties->pipelineCacheUUID));
409*38e8c45fSAndroid Build Coastguard Worker     properties->limits = VkPhysicalDeviceLimits{
410*38e8c45fSAndroid Build Coastguard Worker         4096,     // maxImageDimension1D
411*38e8c45fSAndroid Build Coastguard Worker         4096,     // maxImageDimension2D
412*38e8c45fSAndroid Build Coastguard Worker         256,      // maxImageDimension3D
413*38e8c45fSAndroid Build Coastguard Worker         4096,     // maxImageDimensionCube
414*38e8c45fSAndroid Build Coastguard Worker         256,      // maxImageArrayLayers
415*38e8c45fSAndroid Build Coastguard Worker         65536,    // maxTexelBufferElements
416*38e8c45fSAndroid Build Coastguard Worker         16384,    // maxUniformBufferRange
417*38e8c45fSAndroid Build Coastguard Worker         1 << 27,  // maxStorageBufferRange
418*38e8c45fSAndroid Build Coastguard Worker         128,      // maxPushConstantsSize
419*38e8c45fSAndroid Build Coastguard Worker         4096,     // maxMemoryAllocationCount
420*38e8c45fSAndroid Build Coastguard Worker         4000,     // maxSamplerAllocationCount
421*38e8c45fSAndroid Build Coastguard Worker         1,        // bufferImageGranularity
422*38e8c45fSAndroid Build Coastguard Worker         0,        // sparseAddressSpaceSize
423*38e8c45fSAndroid Build Coastguard Worker         4,        // maxBoundDescriptorSets
424*38e8c45fSAndroid Build Coastguard Worker         16,       // maxPerStageDescriptorSamplers
425*38e8c45fSAndroid Build Coastguard Worker         12,       // maxPerStageDescriptorUniformBuffers
426*38e8c45fSAndroid Build Coastguard Worker         4,        // maxPerStageDescriptorStorageBuffers
427*38e8c45fSAndroid Build Coastguard Worker         16,       // maxPerStageDescriptorSampledImages
428*38e8c45fSAndroid Build Coastguard Worker         4,        // maxPerStageDescriptorStorageImages
429*38e8c45fSAndroid Build Coastguard Worker         4,        // maxPerStageDescriptorInputAttachments
430*38e8c45fSAndroid Build Coastguard Worker         128,      // maxPerStageResources
431*38e8c45fSAndroid Build Coastguard Worker         96,       // maxDescriptorSetSamplers
432*38e8c45fSAndroid Build Coastguard Worker         72,       // maxDescriptorSetUniformBuffers
433*38e8c45fSAndroid Build Coastguard Worker         8,        // maxDescriptorSetUniformBuffersDynamic
434*38e8c45fSAndroid Build Coastguard Worker         24,       // maxDescriptorSetStorageBuffers
435*38e8c45fSAndroid Build Coastguard Worker         4,        // maxDescriptorSetStorageBuffersDynamic
436*38e8c45fSAndroid Build Coastguard Worker         96,       // maxDescriptorSetSampledImages
437*38e8c45fSAndroid Build Coastguard Worker         24,       // maxDescriptorSetStorageImages
438*38e8c45fSAndroid Build Coastguard Worker         4,        // maxDescriptorSetInputAttachments
439*38e8c45fSAndroid Build Coastguard Worker         16,       // maxVertexInputAttributes
440*38e8c45fSAndroid Build Coastguard Worker         16,       // maxVertexInputBindings
441*38e8c45fSAndroid Build Coastguard Worker         2047,     // maxVertexInputAttributeOffset
442*38e8c45fSAndroid Build Coastguard Worker         2048,     // maxVertexInputBindingStride
443*38e8c45fSAndroid Build Coastguard Worker         64,       // maxVertexOutputComponents
444*38e8c45fSAndroid Build Coastguard Worker         0,        // maxTessellationGenerationLevel
445*38e8c45fSAndroid Build Coastguard Worker         0,        // maxTessellationPatchSize
446*38e8c45fSAndroid Build Coastguard Worker         0,        // maxTessellationControlPerVertexInputComponents
447*38e8c45fSAndroid Build Coastguard Worker         0,        // maxTessellationControlPerVertexOutputComponents
448*38e8c45fSAndroid Build Coastguard Worker         0,        // maxTessellationControlPerPatchOutputComponents
449*38e8c45fSAndroid Build Coastguard Worker         0,        // maxTessellationControlTotalOutputComponents
450*38e8c45fSAndroid Build Coastguard Worker         0,        // maxTessellationEvaluationInputComponents
451*38e8c45fSAndroid Build Coastguard Worker         0,        // maxTessellationEvaluationOutputComponents
452*38e8c45fSAndroid Build Coastguard Worker         0,        // maxGeometryShaderInvocations
453*38e8c45fSAndroid Build Coastguard Worker         0,        // maxGeometryInputComponents
454*38e8c45fSAndroid Build Coastguard Worker         0,        // maxGeometryOutputComponents
455*38e8c45fSAndroid Build Coastguard Worker         0,        // maxGeometryOutputVertices
456*38e8c45fSAndroid Build Coastguard Worker         0,        // maxGeometryTotalOutputComponents
457*38e8c45fSAndroid Build Coastguard Worker         64,       // maxFragmentInputComponents
458*38e8c45fSAndroid Build Coastguard Worker         4,        // maxFragmentOutputAttachments
459*38e8c45fSAndroid Build Coastguard Worker         0,        // maxFragmentDualSrcAttachments
460*38e8c45fSAndroid Build Coastguard Worker         4,        // maxFragmentCombinedOutputResources
461*38e8c45fSAndroid Build Coastguard Worker         16384,    // maxComputeSharedMemorySize
462*38e8c45fSAndroid Build Coastguard Worker         {65536, 65536, 65536},  // maxComputeWorkGroupCount[3]
463*38e8c45fSAndroid Build Coastguard Worker         128,                    // maxComputeWorkGroupInvocations
464*38e8c45fSAndroid Build Coastguard Worker         {128, 128, 64},         // maxComputeWorkGroupSize[3]
465*38e8c45fSAndroid Build Coastguard Worker         4,                      // subPixelPrecisionBits
466*38e8c45fSAndroid Build Coastguard Worker         4,                      // subTexelPrecisionBits
467*38e8c45fSAndroid Build Coastguard Worker         4,                      // mipmapPrecisionBits
468*38e8c45fSAndroid Build Coastguard Worker         UINT32_MAX,             // maxDrawIndexedIndexValue
469*38e8c45fSAndroid Build Coastguard Worker         1,                      // maxDrawIndirectCount
470*38e8c45fSAndroid Build Coastguard Worker         2,                      // maxSamplerLodBias
471*38e8c45fSAndroid Build Coastguard Worker         1,                      // maxSamplerAnisotropy
472*38e8c45fSAndroid Build Coastguard Worker         1,                      // maxViewports
473*38e8c45fSAndroid Build Coastguard Worker         {4096, 4096},           // maxViewportDimensions[2]
474*38e8c45fSAndroid Build Coastguard Worker         {-8192.0f, 8191.0f},    // viewportBoundsRange[2]
475*38e8c45fSAndroid Build Coastguard Worker         0,                      // viewportSubPixelBits
476*38e8c45fSAndroid Build Coastguard Worker         64,                     // minMemoryMapAlignment
477*38e8c45fSAndroid Build Coastguard Worker         256,                    // minTexelBufferOffsetAlignment
478*38e8c45fSAndroid Build Coastguard Worker         256,                    // minUniformBufferOffsetAlignment
479*38e8c45fSAndroid Build Coastguard Worker         256,                    // minStorageBufferOffsetAlignment
480*38e8c45fSAndroid Build Coastguard Worker         -8,                     // minTexelOffset
481*38e8c45fSAndroid Build Coastguard Worker         7,                      // maxTexelOffset
482*38e8c45fSAndroid Build Coastguard Worker         0,                      // minTexelGatherOffset
483*38e8c45fSAndroid Build Coastguard Worker         0,                      // maxTexelGatherOffset
484*38e8c45fSAndroid Build Coastguard Worker         0.0f,                   // minInterpolationOffset
485*38e8c45fSAndroid Build Coastguard Worker         0.0f,                   // maxInterpolationOffset
486*38e8c45fSAndroid Build Coastguard Worker         0,                      // subPixelInterpolationOffsetBits
487*38e8c45fSAndroid Build Coastguard Worker         4096,                   // maxFramebufferWidth
488*38e8c45fSAndroid Build Coastguard Worker         4096,                   // maxFramebufferHeight
489*38e8c45fSAndroid Build Coastguard Worker         256,                    // maxFramebufferLayers
490*38e8c45fSAndroid Build Coastguard Worker         VK_SAMPLE_COUNT_1_BIT |
491*38e8c45fSAndroid Build Coastguard Worker             VK_SAMPLE_COUNT_4_BIT,  // framebufferColorSampleCounts
492*38e8c45fSAndroid Build Coastguard Worker         VK_SAMPLE_COUNT_1_BIT |
493*38e8c45fSAndroid Build Coastguard Worker             VK_SAMPLE_COUNT_4_BIT,  // framebufferDepthSampleCounts
494*38e8c45fSAndroid Build Coastguard Worker         VK_SAMPLE_COUNT_1_BIT |
495*38e8c45fSAndroid Build Coastguard Worker             VK_SAMPLE_COUNT_4_BIT,  // framebufferStencilSampleCounts
496*38e8c45fSAndroid Build Coastguard Worker         VK_SAMPLE_COUNT_1_BIT |
497*38e8c45fSAndroid Build Coastguard Worker             VK_SAMPLE_COUNT_4_BIT,  // framebufferNoAttachmentsSampleCounts
498*38e8c45fSAndroid Build Coastguard Worker         4,                          // maxColorAttachments
499*38e8c45fSAndroid Build Coastguard Worker         VK_SAMPLE_COUNT_1_BIT |
500*38e8c45fSAndroid Build Coastguard Worker             VK_SAMPLE_COUNT_4_BIT,  // sampledImageColorSampleCounts
501*38e8c45fSAndroid Build Coastguard Worker         VK_SAMPLE_COUNT_1_BIT,      // sampledImageIntegerSampleCounts
502*38e8c45fSAndroid Build Coastguard Worker         VK_SAMPLE_COUNT_1_BIT |
503*38e8c45fSAndroid Build Coastguard Worker             VK_SAMPLE_COUNT_4_BIT,  // sampledImageDepthSampleCounts
504*38e8c45fSAndroid Build Coastguard Worker         VK_SAMPLE_COUNT_1_BIT |
505*38e8c45fSAndroid Build Coastguard Worker             VK_SAMPLE_COUNT_4_BIT,  // sampledImageStencilSampleCounts
506*38e8c45fSAndroid Build Coastguard Worker         VK_SAMPLE_COUNT_1_BIT,      // storageImageSampleCounts
507*38e8c45fSAndroid Build Coastguard Worker         1,                          // maxSampleMaskWords
508*38e8c45fSAndroid Build Coastguard Worker         VK_TRUE,                    // timestampComputeAndGraphics
509*38e8c45fSAndroid Build Coastguard Worker         1,                          // timestampPeriod
510*38e8c45fSAndroid Build Coastguard Worker         0,                          // maxClipDistances
511*38e8c45fSAndroid Build Coastguard Worker         0,                          // maxCullDistances
512*38e8c45fSAndroid Build Coastguard Worker         0,                          // maxCombinedClipAndCullDistances
513*38e8c45fSAndroid Build Coastguard Worker         2,                          // discreteQueuePriorities
514*38e8c45fSAndroid Build Coastguard Worker         {1.0f, 1.0f},               // pointSizeRange[2]
515*38e8c45fSAndroid Build Coastguard Worker         {1.0f, 1.0f},               // lineWidthRange[2]
516*38e8c45fSAndroid Build Coastguard Worker         0.0f,                       // pointSizeGranularity
517*38e8c45fSAndroid Build Coastguard Worker         0.0f,                       // lineWidthGranularity
518*38e8c45fSAndroid Build Coastguard Worker         VK_TRUE,                    // strictLines
519*38e8c45fSAndroid Build Coastguard Worker         VK_TRUE,                    // standardSampleLocations
520*38e8c45fSAndroid Build Coastguard Worker         1,                          // optimalBufferCopyOffsetAlignment
521*38e8c45fSAndroid Build Coastguard Worker         1,                          // optimalBufferCopyRowPitchAlignment
522*38e8c45fSAndroid Build Coastguard Worker         64,                         // nonCoherentAtomSize
523*38e8c45fSAndroid Build Coastguard Worker     };
524*38e8c45fSAndroid Build Coastguard Worker }
525*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceProperties2KHR(VkPhysicalDevice physical_device,VkPhysicalDeviceProperties2KHR * properties)526*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceProperties2KHR(VkPhysicalDevice physical_device,
527*38e8c45fSAndroid Build Coastguard Worker                                   VkPhysicalDeviceProperties2KHR* properties) {
528*38e8c45fSAndroid Build Coastguard Worker     GetPhysicalDeviceProperties(physical_device, &properties->properties);
529*38e8c45fSAndroid Build Coastguard Worker 
530*38e8c45fSAndroid Build Coastguard Worker     while (properties->pNext) {
531*38e8c45fSAndroid Build Coastguard Worker         properties = reinterpret_cast<VkPhysicalDeviceProperties2KHR *>(properties->pNext);
532*38e8c45fSAndroid Build Coastguard Worker 
533*38e8c45fSAndroid Build Coastguard Worker #pragma clang diagnostic push
534*38e8c45fSAndroid Build Coastguard Worker #pragma clang diagnostic ignored "-Wold-style-cast"
535*38e8c45fSAndroid Build Coastguard Worker         switch ((VkFlags)properties->sType) {
536*38e8c45fSAndroid Build Coastguard Worker         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID: {
537*38e8c45fSAndroid Build Coastguard Worker             VkPhysicalDevicePresentationPropertiesANDROID *presentation_properties =
538*38e8c45fSAndroid Build Coastguard Worker                 reinterpret_cast<VkPhysicalDevicePresentationPropertiesANDROID *>(properties);
539*38e8c45fSAndroid Build Coastguard Worker #pragma clang diagnostic pop
540*38e8c45fSAndroid Build Coastguard Worker 
541*38e8c45fSAndroid Build Coastguard Worker                 // Claim that we do all the right things for the loader to
542*38e8c45fSAndroid Build Coastguard Worker                 // expose KHR_shared_presentable_image on our behalf.
543*38e8c45fSAndroid Build Coastguard Worker                 presentation_properties->sharedImage = VK_TRUE;
544*38e8c45fSAndroid Build Coastguard Worker             } break;
545*38e8c45fSAndroid Build Coastguard Worker 
546*38e8c45fSAndroid Build Coastguard Worker         default:
547*38e8c45fSAndroid Build Coastguard Worker             // Silently ignore other extension query structs
548*38e8c45fSAndroid Build Coastguard Worker             break;
549*38e8c45fSAndroid Build Coastguard Worker         }
550*38e8c45fSAndroid Build Coastguard Worker     }
551*38e8c45fSAndroid Build Coastguard Worker }
552*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice,uint32_t * count,VkQueueFamilyProperties * properties)553*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceQueueFamilyProperties(
554*38e8c45fSAndroid Build Coastguard Worker     VkPhysicalDevice,
555*38e8c45fSAndroid Build Coastguard Worker     uint32_t* count,
556*38e8c45fSAndroid Build Coastguard Worker     VkQueueFamilyProperties* properties) {
557*38e8c45fSAndroid Build Coastguard Worker     if (!properties || *count > 1)
558*38e8c45fSAndroid Build Coastguard Worker         *count = 1;
559*38e8c45fSAndroid Build Coastguard Worker     if (properties && *count == 1) {
560*38e8c45fSAndroid Build Coastguard Worker         properties->queueFlags = VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT |
561*38e8c45fSAndroid Build Coastguard Worker                                  VK_QUEUE_TRANSFER_BIT;
562*38e8c45fSAndroid Build Coastguard Worker         properties->queueCount = 1;
563*38e8c45fSAndroid Build Coastguard Worker         properties->timestampValidBits = 64;
564*38e8c45fSAndroid Build Coastguard Worker         properties->minImageTransferGranularity = VkExtent3D{1, 1, 1};
565*38e8c45fSAndroid Build Coastguard Worker     }
566*38e8c45fSAndroid Build Coastguard Worker }
567*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceQueueFamilyProperties2KHR(VkPhysicalDevice physical_device,uint32_t * count,VkQueueFamilyProperties2KHR * properties)568*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceQueueFamilyProperties2KHR(VkPhysicalDevice physical_device, uint32_t* count, VkQueueFamilyProperties2KHR* properties) {
569*38e8c45fSAndroid Build Coastguard Worker     // note: even though multiple structures, this is safe to forward in this
570*38e8c45fSAndroid Build Coastguard Worker     // case since we only expose one queue family.
571*38e8c45fSAndroid Build Coastguard Worker     GetPhysicalDeviceQueueFamilyProperties(physical_device, count, properties ? &properties->queueFamilyProperties : nullptr);
572*38e8c45fSAndroid Build Coastguard Worker }
573*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceMemoryProperties(VkPhysicalDevice,VkPhysicalDeviceMemoryProperties * properties)574*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceMemoryProperties(
575*38e8c45fSAndroid Build Coastguard Worker     VkPhysicalDevice,
576*38e8c45fSAndroid Build Coastguard Worker     VkPhysicalDeviceMemoryProperties* properties) {
577*38e8c45fSAndroid Build Coastguard Worker     properties->memoryTypeCount = 1;
578*38e8c45fSAndroid Build Coastguard Worker     properties->memoryTypes[0].propertyFlags =
579*38e8c45fSAndroid Build Coastguard Worker         VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT |
580*38e8c45fSAndroid Build Coastguard Worker         VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT |
581*38e8c45fSAndroid Build Coastguard Worker         VK_MEMORY_PROPERTY_HOST_COHERENT_BIT |
582*38e8c45fSAndroid Build Coastguard Worker         VK_MEMORY_PROPERTY_HOST_CACHED_BIT;
583*38e8c45fSAndroid Build Coastguard Worker     properties->memoryTypes[0].heapIndex = 0;
584*38e8c45fSAndroid Build Coastguard Worker     properties->memoryHeapCount = 1;
585*38e8c45fSAndroid Build Coastguard Worker     properties->memoryHeaps[0].size = kMaxDeviceMemory;
586*38e8c45fSAndroid Build Coastguard Worker     properties->memoryHeaps[0].flags = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT;
587*38e8c45fSAndroid Build Coastguard Worker }
588*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physical_device,VkPhysicalDeviceMemoryProperties2KHR * properties)589*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physical_device, VkPhysicalDeviceMemoryProperties2KHR* properties) {
590*38e8c45fSAndroid Build Coastguard Worker     GetPhysicalDeviceMemoryProperties(physical_device, &properties->memoryProperties);
591*38e8c45fSAndroid Build Coastguard Worker }
592*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceFeatures(VkPhysicalDevice,VkPhysicalDeviceFeatures * features)593*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceFeatures(VkPhysicalDevice /*gpu*/,
594*38e8c45fSAndroid Build Coastguard Worker                                VkPhysicalDeviceFeatures* features) {
595*38e8c45fSAndroid Build Coastguard Worker     *features = VkPhysicalDeviceFeatures{
596*38e8c45fSAndroid Build Coastguard Worker         VK_TRUE,   // robustBufferAccess
597*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // fullDrawIndexUint32
598*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // imageCubeArray
599*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // independentBlend
600*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // geometryShader
601*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // tessellationShader
602*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // sampleRateShading
603*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // dualSrcBlend
604*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // logicOp
605*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // multiDrawIndirect
606*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // drawIndirectFirstInstance
607*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // depthClamp
608*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // depthBiasClamp
609*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // fillModeNonSolid
610*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // depthBounds
611*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // wideLines
612*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // largePoints
613*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // alphaToOne
614*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // multiViewport
615*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // samplerAnisotropy
616*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // textureCompressionETC2
617*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // textureCompressionASTC_LDR
618*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // textureCompressionBC
619*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // occlusionQueryPrecise
620*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // pipelineStatisticsQuery
621*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // vertexPipelineStoresAndAtomics
622*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // fragmentStoresAndAtomics
623*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // shaderTessellationAndGeometryPointSize
624*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // shaderImageGatherExtended
625*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // shaderStorageImageExtendedFormats
626*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // shaderStorageImageMultisample
627*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // shaderStorageImageReadWithoutFormat
628*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // shaderStorageImageWriteWithoutFormat
629*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // shaderUniformBufferArrayDynamicIndexing
630*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // shaderSampledImageArrayDynamicIndexing
631*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // shaderStorageBufferArrayDynamicIndexing
632*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // shaderStorageImageArrayDynamicIndexing
633*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // shaderClipDistance
634*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // shaderCullDistance
635*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // shaderFloat64
636*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // shaderInt64
637*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // shaderInt16
638*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // shaderResourceResidency
639*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // shaderResourceMinLod
640*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // sparseBinding
641*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // sparseResidencyBuffer
642*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // sparseResidencyImage2D
643*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // sparseResidencyImage3D
644*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // sparseResidency2Samples
645*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // sparseResidency4Samples
646*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // sparseResidency8Samples
647*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // sparseResidency16Samples
648*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // sparseResidencyAliased
649*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // variableMultisampleRate
650*38e8c45fSAndroid Build Coastguard Worker         VK_FALSE,  // inheritedQueries
651*38e8c45fSAndroid Build Coastguard Worker     };
652*38e8c45fSAndroid Build Coastguard Worker }
653*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physical_device,VkPhysicalDeviceFeatures2KHR * features)654*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physical_device, VkPhysicalDeviceFeatures2KHR* features) {
655*38e8c45fSAndroid Build Coastguard Worker     GetPhysicalDeviceFeatures(physical_device, &features->features);
656*38e8c45fSAndroid Build Coastguard Worker }
657*38e8c45fSAndroid Build Coastguard Worker 
658*38e8c45fSAndroid Build Coastguard Worker // -----------------------------------------------------------------------------
659*38e8c45fSAndroid Build Coastguard Worker // Device
660*38e8c45fSAndroid Build Coastguard Worker 
CreateDevice(VkPhysicalDevice physical_device,const VkDeviceCreateInfo * create_info,const VkAllocationCallbacks * allocator,VkDevice * out_device)661*38e8c45fSAndroid Build Coastguard Worker VkResult CreateDevice(VkPhysicalDevice physical_device,
662*38e8c45fSAndroid Build Coastguard Worker                       const VkDeviceCreateInfo* create_info,
663*38e8c45fSAndroid Build Coastguard Worker                       const VkAllocationCallbacks* allocator,
664*38e8c45fSAndroid Build Coastguard Worker                       VkDevice* out_device) {
665*38e8c45fSAndroid Build Coastguard Worker     VkInstance_T* instance = GetInstanceFromPhysicalDevice(physical_device);
666*38e8c45fSAndroid Build Coastguard Worker     if (!allocator)
667*38e8c45fSAndroid Build Coastguard Worker         allocator = &instance->allocator;
668*38e8c45fSAndroid Build Coastguard Worker     VkDevice_T* device = static_cast<VkDevice_T*>(allocator->pfnAllocation(
669*38e8c45fSAndroid Build Coastguard Worker         allocator->pUserData, sizeof(VkDevice_T), alignof(VkDevice_T),
670*38e8c45fSAndroid Build Coastguard Worker         VK_SYSTEM_ALLOCATION_SCOPE_DEVICE));
671*38e8c45fSAndroid Build Coastguard Worker     if (!device)
672*38e8c45fSAndroid Build Coastguard Worker         return VK_ERROR_OUT_OF_HOST_MEMORY;
673*38e8c45fSAndroid Build Coastguard Worker 
674*38e8c45fSAndroid Build Coastguard Worker     device->dispatch.magic = HWVULKAN_DISPATCH_MAGIC;
675*38e8c45fSAndroid Build Coastguard Worker     device->allocator = *allocator;
676*38e8c45fSAndroid Build Coastguard Worker     device->instance = instance;
677*38e8c45fSAndroid Build Coastguard Worker     device->queue.dispatch.magic = HWVULKAN_DISPATCH_MAGIC;
678*38e8c45fSAndroid Build Coastguard Worker     std::fill(device->next_handle.begin(), device->next_handle.end(),
679*38e8c45fSAndroid Build Coastguard Worker               UINT64_C(0));
680*38e8c45fSAndroid Build Coastguard Worker 
681*38e8c45fSAndroid Build Coastguard Worker     for (uint32_t i = 0; i < create_info->enabledExtensionCount; i++) {
682*38e8c45fSAndroid Build Coastguard Worker         if (strcmp(create_info->ppEnabledExtensionNames[i],
683*38e8c45fSAndroid Build Coastguard Worker                    VK_ANDROID_NATIVE_BUFFER_EXTENSION_NAME) == 0) {
684*38e8c45fSAndroid Build Coastguard Worker             ALOGV("Enabling " VK_ANDROID_NATIVE_BUFFER_EXTENSION_NAME);
685*38e8c45fSAndroid Build Coastguard Worker         }
686*38e8c45fSAndroid Build Coastguard Worker     }
687*38e8c45fSAndroid Build Coastguard Worker 
688*38e8c45fSAndroid Build Coastguard Worker     *out_device = device;
689*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
690*38e8c45fSAndroid Build Coastguard Worker }
691*38e8c45fSAndroid Build Coastguard Worker 
DestroyDevice(VkDevice device,const VkAllocationCallbacks *)692*38e8c45fSAndroid Build Coastguard Worker void DestroyDevice(VkDevice device,
693*38e8c45fSAndroid Build Coastguard Worker                    const VkAllocationCallbacks* /*allocator*/) {
694*38e8c45fSAndroid Build Coastguard Worker     if (!device)
695*38e8c45fSAndroid Build Coastguard Worker         return;
696*38e8c45fSAndroid Build Coastguard Worker     device->allocator.pfnFree(device->allocator.pUserData, device);
697*38e8c45fSAndroid Build Coastguard Worker }
698*38e8c45fSAndroid Build Coastguard Worker 
GetDeviceQueue(VkDevice device,uint32_t,uint32_t,VkQueue * queue)699*38e8c45fSAndroid Build Coastguard Worker void GetDeviceQueue(VkDevice device, uint32_t, uint32_t, VkQueue* queue) {
700*38e8c45fSAndroid Build Coastguard Worker     *queue = &device->queue;
701*38e8c45fSAndroid Build Coastguard Worker }
702*38e8c45fSAndroid Build Coastguard Worker 
703*38e8c45fSAndroid Build Coastguard Worker // -----------------------------------------------------------------------------
704*38e8c45fSAndroid Build Coastguard Worker // CommandPool
705*38e8c45fSAndroid Build Coastguard Worker 
706*38e8c45fSAndroid Build Coastguard Worker struct CommandPool {
707*38e8c45fSAndroid Build Coastguard Worker     typedef VkCommandPool HandleType;
708*38e8c45fSAndroid Build Coastguard Worker     VkAllocationCallbacks allocator;
709*38e8c45fSAndroid Build Coastguard Worker };
DEFINE_OBJECT_HANDLE_CONVERSION(CommandPool)710*38e8c45fSAndroid Build Coastguard Worker DEFINE_OBJECT_HANDLE_CONVERSION(CommandPool)
711*38e8c45fSAndroid Build Coastguard Worker 
712*38e8c45fSAndroid Build Coastguard Worker VkResult CreateCommandPool(VkDevice device,
713*38e8c45fSAndroid Build Coastguard Worker                            const VkCommandPoolCreateInfo* /*create_info*/,
714*38e8c45fSAndroid Build Coastguard Worker                            const VkAllocationCallbacks* allocator,
715*38e8c45fSAndroid Build Coastguard Worker                            VkCommandPool* cmd_pool) {
716*38e8c45fSAndroid Build Coastguard Worker     if (!allocator)
717*38e8c45fSAndroid Build Coastguard Worker         allocator = &device->allocator;
718*38e8c45fSAndroid Build Coastguard Worker     CommandPool* pool = static_cast<CommandPool*>(allocator->pfnAllocation(
719*38e8c45fSAndroid Build Coastguard Worker         allocator->pUserData, sizeof(CommandPool), alignof(CommandPool),
720*38e8c45fSAndroid Build Coastguard Worker         VK_SYSTEM_ALLOCATION_SCOPE_OBJECT));
721*38e8c45fSAndroid Build Coastguard Worker     if (!pool)
722*38e8c45fSAndroid Build Coastguard Worker         return VK_ERROR_OUT_OF_HOST_MEMORY;
723*38e8c45fSAndroid Build Coastguard Worker     pool->allocator = *allocator;
724*38e8c45fSAndroid Build Coastguard Worker     *cmd_pool = GetHandleToCommandPool(pool);
725*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
726*38e8c45fSAndroid Build Coastguard Worker }
727*38e8c45fSAndroid Build Coastguard Worker 
DestroyCommandPool(VkDevice,VkCommandPool cmd_pool,const VkAllocationCallbacks *)728*38e8c45fSAndroid Build Coastguard Worker void DestroyCommandPool(VkDevice /*device*/,
729*38e8c45fSAndroid Build Coastguard Worker                         VkCommandPool cmd_pool,
730*38e8c45fSAndroid Build Coastguard Worker                         const VkAllocationCallbacks* /*allocator*/) {
731*38e8c45fSAndroid Build Coastguard Worker     CommandPool* pool = GetCommandPoolFromHandle(cmd_pool);
732*38e8c45fSAndroid Build Coastguard Worker     pool->allocator.pfnFree(pool->allocator.pUserData, pool);
733*38e8c45fSAndroid Build Coastguard Worker }
734*38e8c45fSAndroid Build Coastguard Worker 
735*38e8c45fSAndroid Build Coastguard Worker // -----------------------------------------------------------------------------
736*38e8c45fSAndroid Build Coastguard Worker // CmdBuffer
737*38e8c45fSAndroid Build Coastguard Worker 
AllocateCommandBuffers(VkDevice,const VkCommandBufferAllocateInfo * alloc_info,VkCommandBuffer * cmdbufs)738*38e8c45fSAndroid Build Coastguard Worker VkResult AllocateCommandBuffers(VkDevice /*device*/,
739*38e8c45fSAndroid Build Coastguard Worker                                 const VkCommandBufferAllocateInfo* alloc_info,
740*38e8c45fSAndroid Build Coastguard Worker                                 VkCommandBuffer* cmdbufs) {
741*38e8c45fSAndroid Build Coastguard Worker     VkResult result = VK_SUCCESS;
742*38e8c45fSAndroid Build Coastguard Worker     CommandPool& pool = *GetCommandPoolFromHandle(alloc_info->commandPool);
743*38e8c45fSAndroid Build Coastguard Worker     std::fill(cmdbufs, cmdbufs + alloc_info->commandBufferCount, nullptr);
744*38e8c45fSAndroid Build Coastguard Worker     for (uint32_t i = 0; i < alloc_info->commandBufferCount; i++) {
745*38e8c45fSAndroid Build Coastguard Worker         cmdbufs[i] =
746*38e8c45fSAndroid Build Coastguard Worker             static_cast<VkCommandBuffer_T*>(pool.allocator.pfnAllocation(
747*38e8c45fSAndroid Build Coastguard Worker                 pool.allocator.pUserData, sizeof(VkCommandBuffer_T),
748*38e8c45fSAndroid Build Coastguard Worker                 alignof(VkCommandBuffer_T), VK_SYSTEM_ALLOCATION_SCOPE_OBJECT));
749*38e8c45fSAndroid Build Coastguard Worker         if (!cmdbufs[i]) {
750*38e8c45fSAndroid Build Coastguard Worker             result = VK_ERROR_OUT_OF_HOST_MEMORY;
751*38e8c45fSAndroid Build Coastguard Worker             break;
752*38e8c45fSAndroid Build Coastguard Worker         }
753*38e8c45fSAndroid Build Coastguard Worker         cmdbufs[i]->dispatch.magic = HWVULKAN_DISPATCH_MAGIC;
754*38e8c45fSAndroid Build Coastguard Worker     }
755*38e8c45fSAndroid Build Coastguard Worker     if (result != VK_SUCCESS) {
756*38e8c45fSAndroid Build Coastguard Worker         for (uint32_t i = 0; i < alloc_info->commandBufferCount; i++) {
757*38e8c45fSAndroid Build Coastguard Worker             if (!cmdbufs[i])
758*38e8c45fSAndroid Build Coastguard Worker                 break;
759*38e8c45fSAndroid Build Coastguard Worker             pool.allocator.pfnFree(pool.allocator.pUserData, cmdbufs[i]);
760*38e8c45fSAndroid Build Coastguard Worker         }
761*38e8c45fSAndroid Build Coastguard Worker     }
762*38e8c45fSAndroid Build Coastguard Worker     return result;
763*38e8c45fSAndroid Build Coastguard Worker }
764*38e8c45fSAndroid Build Coastguard Worker 
FreeCommandBuffers(VkDevice,VkCommandPool cmd_pool,uint32_t count,const VkCommandBuffer * cmdbufs)765*38e8c45fSAndroid Build Coastguard Worker void FreeCommandBuffers(VkDevice /*device*/,
766*38e8c45fSAndroid Build Coastguard Worker                         VkCommandPool cmd_pool,
767*38e8c45fSAndroid Build Coastguard Worker                         uint32_t count,
768*38e8c45fSAndroid Build Coastguard Worker                         const VkCommandBuffer* cmdbufs) {
769*38e8c45fSAndroid Build Coastguard Worker     CommandPool& pool = *GetCommandPoolFromHandle(cmd_pool);
770*38e8c45fSAndroid Build Coastguard Worker     for (uint32_t i = 0; i < count; i++)
771*38e8c45fSAndroid Build Coastguard Worker         pool.allocator.pfnFree(pool.allocator.pUserData, cmdbufs[i]);
772*38e8c45fSAndroid Build Coastguard Worker }
773*38e8c45fSAndroid Build Coastguard Worker 
774*38e8c45fSAndroid Build Coastguard Worker // -----------------------------------------------------------------------------
775*38e8c45fSAndroid Build Coastguard Worker // DeviceMemory
776*38e8c45fSAndroid Build Coastguard Worker 
777*38e8c45fSAndroid Build Coastguard Worker struct DeviceMemory {
778*38e8c45fSAndroid Build Coastguard Worker     typedef VkDeviceMemory HandleType;
779*38e8c45fSAndroid Build Coastguard Worker     VkDeviceSize size;
780*38e8c45fSAndroid Build Coastguard Worker     alignas(16) uint8_t data[0];
781*38e8c45fSAndroid Build Coastguard Worker };
DEFINE_OBJECT_HANDLE_CONVERSION(DeviceMemory)782*38e8c45fSAndroid Build Coastguard Worker DEFINE_OBJECT_HANDLE_CONVERSION(DeviceMemory)
783*38e8c45fSAndroid Build Coastguard Worker 
784*38e8c45fSAndroid Build Coastguard Worker VkResult AllocateMemory(VkDevice device,
785*38e8c45fSAndroid Build Coastguard Worker                         const VkMemoryAllocateInfo* alloc_info,
786*38e8c45fSAndroid Build Coastguard Worker                         const VkAllocationCallbacks* allocator,
787*38e8c45fSAndroid Build Coastguard Worker                         VkDeviceMemory* mem_handle) {
788*38e8c45fSAndroid Build Coastguard Worker     if (SIZE_MAX - sizeof(DeviceMemory) <= alloc_info->allocationSize)
789*38e8c45fSAndroid Build Coastguard Worker         return VK_ERROR_OUT_OF_HOST_MEMORY;
790*38e8c45fSAndroid Build Coastguard Worker     if (!allocator)
791*38e8c45fSAndroid Build Coastguard Worker         allocator = &device->allocator;
792*38e8c45fSAndroid Build Coastguard Worker 
793*38e8c45fSAndroid Build Coastguard Worker     size_t size = sizeof(DeviceMemory) + size_t(alloc_info->allocationSize);
794*38e8c45fSAndroid Build Coastguard Worker     DeviceMemory* mem = static_cast<DeviceMemory*>(allocator->pfnAllocation(
795*38e8c45fSAndroid Build Coastguard Worker         allocator->pUserData, size, alignof(DeviceMemory),
796*38e8c45fSAndroid Build Coastguard Worker         VK_SYSTEM_ALLOCATION_SCOPE_OBJECT));
797*38e8c45fSAndroid Build Coastguard Worker     if (!mem)
798*38e8c45fSAndroid Build Coastguard Worker         return VK_ERROR_OUT_OF_HOST_MEMORY;
799*38e8c45fSAndroid Build Coastguard Worker     mem->size = size;
800*38e8c45fSAndroid Build Coastguard Worker     *mem_handle = GetHandleToDeviceMemory(mem);
801*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
802*38e8c45fSAndroid Build Coastguard Worker }
803*38e8c45fSAndroid Build Coastguard Worker 
FreeMemory(VkDevice device,VkDeviceMemory mem_handle,const VkAllocationCallbacks * allocator)804*38e8c45fSAndroid Build Coastguard Worker void FreeMemory(VkDevice device,
805*38e8c45fSAndroid Build Coastguard Worker                 VkDeviceMemory mem_handle,
806*38e8c45fSAndroid Build Coastguard Worker                 const VkAllocationCallbacks* allocator) {
807*38e8c45fSAndroid Build Coastguard Worker     if (!allocator)
808*38e8c45fSAndroid Build Coastguard Worker         allocator = &device->allocator;
809*38e8c45fSAndroid Build Coastguard Worker     DeviceMemory* mem = GetDeviceMemoryFromHandle(mem_handle);
810*38e8c45fSAndroid Build Coastguard Worker     allocator->pfnFree(allocator->pUserData, mem);
811*38e8c45fSAndroid Build Coastguard Worker }
812*38e8c45fSAndroid Build Coastguard Worker 
MapMemory(VkDevice,VkDeviceMemory mem_handle,VkDeviceSize offset,VkDeviceSize,VkMemoryMapFlags,void ** out_ptr)813*38e8c45fSAndroid Build Coastguard Worker VkResult MapMemory(VkDevice,
814*38e8c45fSAndroid Build Coastguard Worker                    VkDeviceMemory mem_handle,
815*38e8c45fSAndroid Build Coastguard Worker                    VkDeviceSize offset,
816*38e8c45fSAndroid Build Coastguard Worker                    VkDeviceSize,
817*38e8c45fSAndroid Build Coastguard Worker                    VkMemoryMapFlags,
818*38e8c45fSAndroid Build Coastguard Worker                    void** out_ptr) {
819*38e8c45fSAndroid Build Coastguard Worker     DeviceMemory* mem = GetDeviceMemoryFromHandle(mem_handle);
820*38e8c45fSAndroid Build Coastguard Worker     *out_ptr = &mem->data[0] + offset;
821*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
822*38e8c45fSAndroid Build Coastguard Worker }
823*38e8c45fSAndroid Build Coastguard Worker 
824*38e8c45fSAndroid Build Coastguard Worker // -----------------------------------------------------------------------------
825*38e8c45fSAndroid Build Coastguard Worker // Buffer
826*38e8c45fSAndroid Build Coastguard Worker 
827*38e8c45fSAndroid Build Coastguard Worker struct Buffer {
828*38e8c45fSAndroid Build Coastguard Worker     typedef VkBuffer HandleType;
829*38e8c45fSAndroid Build Coastguard Worker     VkDeviceSize size;
830*38e8c45fSAndroid Build Coastguard Worker };
DEFINE_OBJECT_HANDLE_CONVERSION(Buffer)831*38e8c45fSAndroid Build Coastguard Worker DEFINE_OBJECT_HANDLE_CONVERSION(Buffer)
832*38e8c45fSAndroid Build Coastguard Worker 
833*38e8c45fSAndroid Build Coastguard Worker VkResult CreateBuffer(VkDevice device,
834*38e8c45fSAndroid Build Coastguard Worker                       const VkBufferCreateInfo* create_info,
835*38e8c45fSAndroid Build Coastguard Worker                       const VkAllocationCallbacks* allocator,
836*38e8c45fSAndroid Build Coastguard Worker                       VkBuffer* buffer_handle) {
837*38e8c45fSAndroid Build Coastguard Worker     ALOGW_IF(create_info->size > kMaxDeviceMemory,
838*38e8c45fSAndroid Build Coastguard Worker              "CreateBuffer: requested size 0x%" PRIx64
839*38e8c45fSAndroid Build Coastguard Worker              " exceeds max device memory size 0x%" PRIx64,
840*38e8c45fSAndroid Build Coastguard Worker              create_info->size, kMaxDeviceMemory);
841*38e8c45fSAndroid Build Coastguard Worker     if (!allocator)
842*38e8c45fSAndroid Build Coastguard Worker         allocator = &device->allocator;
843*38e8c45fSAndroid Build Coastguard Worker     Buffer* buffer = static_cast<Buffer*>(allocator->pfnAllocation(
844*38e8c45fSAndroid Build Coastguard Worker         allocator->pUserData, sizeof(Buffer), alignof(Buffer),
845*38e8c45fSAndroid Build Coastguard Worker         VK_SYSTEM_ALLOCATION_SCOPE_OBJECT));
846*38e8c45fSAndroid Build Coastguard Worker     if (!buffer)
847*38e8c45fSAndroid Build Coastguard Worker         return VK_ERROR_OUT_OF_HOST_MEMORY;
848*38e8c45fSAndroid Build Coastguard Worker     buffer->size = create_info->size;
849*38e8c45fSAndroid Build Coastguard Worker     *buffer_handle = GetHandleToBuffer(buffer);
850*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
851*38e8c45fSAndroid Build Coastguard Worker }
852*38e8c45fSAndroid Build Coastguard Worker 
GetBufferMemoryRequirements(VkDevice,VkBuffer buffer_handle,VkMemoryRequirements * requirements)853*38e8c45fSAndroid Build Coastguard Worker void GetBufferMemoryRequirements(VkDevice,
854*38e8c45fSAndroid Build Coastguard Worker                                  VkBuffer buffer_handle,
855*38e8c45fSAndroid Build Coastguard Worker                                  VkMemoryRequirements* requirements) {
856*38e8c45fSAndroid Build Coastguard Worker     Buffer* buffer = GetBufferFromHandle(buffer_handle);
857*38e8c45fSAndroid Build Coastguard Worker     requirements->size = buffer->size;
858*38e8c45fSAndroid Build Coastguard Worker     requirements->alignment = 16;  // allow fast Neon/SSE memcpy
859*38e8c45fSAndroid Build Coastguard Worker     requirements->memoryTypeBits = 0x1;
860*38e8c45fSAndroid Build Coastguard Worker }
861*38e8c45fSAndroid Build Coastguard Worker 
DestroyBuffer(VkDevice device,VkBuffer buffer_handle,const VkAllocationCallbacks * allocator)862*38e8c45fSAndroid Build Coastguard Worker void DestroyBuffer(VkDevice device,
863*38e8c45fSAndroid Build Coastguard Worker                    VkBuffer buffer_handle,
864*38e8c45fSAndroid Build Coastguard Worker                    const VkAllocationCallbacks* allocator) {
865*38e8c45fSAndroid Build Coastguard Worker     if (!allocator)
866*38e8c45fSAndroid Build Coastguard Worker         allocator = &device->allocator;
867*38e8c45fSAndroid Build Coastguard Worker     Buffer* buffer = GetBufferFromHandle(buffer_handle);
868*38e8c45fSAndroid Build Coastguard Worker     allocator->pfnFree(allocator->pUserData, buffer);
869*38e8c45fSAndroid Build Coastguard Worker }
870*38e8c45fSAndroid Build Coastguard Worker 
871*38e8c45fSAndroid Build Coastguard Worker // -----------------------------------------------------------------------------
872*38e8c45fSAndroid Build Coastguard Worker // Image
873*38e8c45fSAndroid Build Coastguard Worker 
874*38e8c45fSAndroid Build Coastguard Worker struct Image {
875*38e8c45fSAndroid Build Coastguard Worker     typedef VkImage HandleType;
876*38e8c45fSAndroid Build Coastguard Worker     VkDeviceSize size;
877*38e8c45fSAndroid Build Coastguard Worker };
DEFINE_OBJECT_HANDLE_CONVERSION(Image)878*38e8c45fSAndroid Build Coastguard Worker DEFINE_OBJECT_HANDLE_CONVERSION(Image)
879*38e8c45fSAndroid Build Coastguard Worker 
880*38e8c45fSAndroid Build Coastguard Worker VkResult CreateImage(VkDevice device,
881*38e8c45fSAndroid Build Coastguard Worker                      const VkImageCreateInfo* create_info,
882*38e8c45fSAndroid Build Coastguard Worker                      const VkAllocationCallbacks* allocator,
883*38e8c45fSAndroid Build Coastguard Worker                      VkImage* image_handle) {
884*38e8c45fSAndroid Build Coastguard Worker     if (create_info->imageType != VK_IMAGE_TYPE_2D ||
885*38e8c45fSAndroid Build Coastguard Worker         create_info->format != VK_FORMAT_R8G8B8A8_UNORM ||
886*38e8c45fSAndroid Build Coastguard Worker         create_info->mipLevels != 1) {
887*38e8c45fSAndroid Build Coastguard Worker         ALOGE("CreateImage: not yet implemented: type=%d format=%d mips=%u",
888*38e8c45fSAndroid Build Coastguard Worker               create_info->imageType, create_info->format,
889*38e8c45fSAndroid Build Coastguard Worker               create_info->mipLevels);
890*38e8c45fSAndroid Build Coastguard Worker         return VK_ERROR_OUT_OF_HOST_MEMORY;
891*38e8c45fSAndroid Build Coastguard Worker     }
892*38e8c45fSAndroid Build Coastguard Worker 
893*38e8c45fSAndroid Build Coastguard Worker     VkDeviceSize size =
894*38e8c45fSAndroid Build Coastguard Worker         VkDeviceSize(create_info->extent.width * create_info->extent.height) *
895*38e8c45fSAndroid Build Coastguard Worker         create_info->arrayLayers * create_info->samples * 4u;
896*38e8c45fSAndroid Build Coastguard Worker     ALOGW_IF(size > kMaxDeviceMemory,
897*38e8c45fSAndroid Build Coastguard Worker              "CreateImage: image size 0x%" PRIx64
898*38e8c45fSAndroid Build Coastguard Worker              " exceeds max device memory size 0x%" PRIx64,
899*38e8c45fSAndroid Build Coastguard Worker              size, kMaxDeviceMemory);
900*38e8c45fSAndroid Build Coastguard Worker 
901*38e8c45fSAndroid Build Coastguard Worker     if (!allocator)
902*38e8c45fSAndroid Build Coastguard Worker         allocator = &device->allocator;
903*38e8c45fSAndroid Build Coastguard Worker     Image* image = static_cast<Image*>(allocator->pfnAllocation(
904*38e8c45fSAndroid Build Coastguard Worker         allocator->pUserData, sizeof(Image), alignof(Image),
905*38e8c45fSAndroid Build Coastguard Worker         VK_SYSTEM_ALLOCATION_SCOPE_OBJECT));
906*38e8c45fSAndroid Build Coastguard Worker     if (!image)
907*38e8c45fSAndroid Build Coastguard Worker         return VK_ERROR_OUT_OF_HOST_MEMORY;
908*38e8c45fSAndroid Build Coastguard Worker     image->size = size;
909*38e8c45fSAndroid Build Coastguard Worker     *image_handle = GetHandleToImage(image);
910*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
911*38e8c45fSAndroid Build Coastguard Worker }
912*38e8c45fSAndroid Build Coastguard Worker 
GetImageMemoryRequirements(VkDevice,VkImage image_handle,VkMemoryRequirements * requirements)913*38e8c45fSAndroid Build Coastguard Worker void GetImageMemoryRequirements(VkDevice,
914*38e8c45fSAndroid Build Coastguard Worker                                 VkImage image_handle,
915*38e8c45fSAndroid Build Coastguard Worker                                 VkMemoryRequirements* requirements) {
916*38e8c45fSAndroid Build Coastguard Worker     Image* image = GetImageFromHandle(image_handle);
917*38e8c45fSAndroid Build Coastguard Worker     requirements->size = image->size;
918*38e8c45fSAndroid Build Coastguard Worker     requirements->alignment = 16;  // allow fast Neon/SSE memcpy
919*38e8c45fSAndroid Build Coastguard Worker     requirements->memoryTypeBits = 0x1;
920*38e8c45fSAndroid Build Coastguard Worker }
921*38e8c45fSAndroid Build Coastguard Worker 
DestroyImage(VkDevice device,VkImage image_handle,const VkAllocationCallbacks * allocator)922*38e8c45fSAndroid Build Coastguard Worker void DestroyImage(VkDevice device,
923*38e8c45fSAndroid Build Coastguard Worker                   VkImage image_handle,
924*38e8c45fSAndroid Build Coastguard Worker                   const VkAllocationCallbacks* allocator) {
925*38e8c45fSAndroid Build Coastguard Worker     if (!allocator)
926*38e8c45fSAndroid Build Coastguard Worker         allocator = &device->allocator;
927*38e8c45fSAndroid Build Coastguard Worker     Image* image = GetImageFromHandle(image_handle);
928*38e8c45fSAndroid Build Coastguard Worker     allocator->pfnFree(allocator->pUserData, image);
929*38e8c45fSAndroid Build Coastguard Worker }
930*38e8c45fSAndroid Build Coastguard Worker 
GetSwapchainGrallocUsageANDROID(VkDevice,VkFormat,VkImageUsageFlags,int * grallocUsage)931*38e8c45fSAndroid Build Coastguard Worker VkResult GetSwapchainGrallocUsageANDROID(VkDevice,
932*38e8c45fSAndroid Build Coastguard Worker                                          VkFormat,
933*38e8c45fSAndroid Build Coastguard Worker                                          VkImageUsageFlags,
934*38e8c45fSAndroid Build Coastguard Worker                                          int* grallocUsage) {
935*38e8c45fSAndroid Build Coastguard Worker     // The null driver never reads or writes the gralloc buffer
936*38e8c45fSAndroid Build Coastguard Worker     *grallocUsage = 0;
937*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
938*38e8c45fSAndroid Build Coastguard Worker }
939*38e8c45fSAndroid Build Coastguard Worker 
GetSwapchainGrallocUsage2ANDROID(VkDevice,VkFormat,VkImageUsageFlags,VkSwapchainImageUsageFlagsANDROID,uint64_t * grallocConsumerUsage,uint64_t * grallocProducerUsage)940*38e8c45fSAndroid Build Coastguard Worker VkResult GetSwapchainGrallocUsage2ANDROID(VkDevice,
941*38e8c45fSAndroid Build Coastguard Worker                                           VkFormat,
942*38e8c45fSAndroid Build Coastguard Worker                                           VkImageUsageFlags,
943*38e8c45fSAndroid Build Coastguard Worker                                           VkSwapchainImageUsageFlagsANDROID,
944*38e8c45fSAndroid Build Coastguard Worker                                           uint64_t* grallocConsumerUsage,
945*38e8c45fSAndroid Build Coastguard Worker                                           uint64_t* grallocProducerUsage) {
946*38e8c45fSAndroid Build Coastguard Worker     // The null driver never reads or writes the gralloc buffer
947*38e8c45fSAndroid Build Coastguard Worker     *grallocConsumerUsage = 0;
948*38e8c45fSAndroid Build Coastguard Worker     *grallocProducerUsage = 0;
949*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
950*38e8c45fSAndroid Build Coastguard Worker }
951*38e8c45fSAndroid Build Coastguard Worker 
GetSwapchainGrallocUsage3ANDROID(VkDevice,const VkGrallocUsageInfoANDROID * grallocUsageInfo,uint64_t * grallocUsage)952*38e8c45fSAndroid Build Coastguard Worker VkResult GetSwapchainGrallocUsage3ANDROID(
953*38e8c45fSAndroid Build Coastguard Worker     VkDevice,
954*38e8c45fSAndroid Build Coastguard Worker     const VkGrallocUsageInfoANDROID* grallocUsageInfo,
955*38e8c45fSAndroid Build Coastguard Worker     uint64_t* grallocUsage) {
956*38e8c45fSAndroid Build Coastguard Worker     // The null driver never reads or writes the gralloc buffer
957*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s - grallocUsageInfo->format:%i", __FUNCTION__,
958*38e8c45fSAndroid Build Coastguard Worker           grallocUsageInfo->format);
959*38e8c45fSAndroid Build Coastguard Worker     *grallocUsage = 0;
960*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
961*38e8c45fSAndroid Build Coastguard Worker }
962*38e8c45fSAndroid Build Coastguard Worker 
GetSwapchainGrallocUsage4ANDROID(VkDevice,const VkGrallocUsageInfo2ANDROID * grallocUsageInfo,uint64_t * grallocUsage)963*38e8c45fSAndroid Build Coastguard Worker VkResult GetSwapchainGrallocUsage4ANDROID(
964*38e8c45fSAndroid Build Coastguard Worker     VkDevice,
965*38e8c45fSAndroid Build Coastguard Worker     const VkGrallocUsageInfo2ANDROID* grallocUsageInfo,
966*38e8c45fSAndroid Build Coastguard Worker     uint64_t* grallocUsage) {
967*38e8c45fSAndroid Build Coastguard Worker     // The null driver never reads or writes the gralloc buffer
968*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s - grallocUsageInfo->format:%i", __FUNCTION__,
969*38e8c45fSAndroid Build Coastguard Worker           grallocUsageInfo->format);
970*38e8c45fSAndroid Build Coastguard Worker     *grallocUsage = 0;
971*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
972*38e8c45fSAndroid Build Coastguard Worker }
973*38e8c45fSAndroid Build Coastguard Worker 
AcquireImageANDROID(VkDevice,VkImage,int fence,VkSemaphore,VkFence)974*38e8c45fSAndroid Build Coastguard Worker VkResult AcquireImageANDROID(VkDevice,
975*38e8c45fSAndroid Build Coastguard Worker                              VkImage,
976*38e8c45fSAndroid Build Coastguard Worker                              int fence,
977*38e8c45fSAndroid Build Coastguard Worker                              VkSemaphore,
978*38e8c45fSAndroid Build Coastguard Worker                              VkFence) {
979*38e8c45fSAndroid Build Coastguard Worker     close(fence);
980*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
981*38e8c45fSAndroid Build Coastguard Worker }
982*38e8c45fSAndroid Build Coastguard Worker 
QueueSignalReleaseImageANDROID(VkQueue,uint32_t,const VkSemaphore *,VkImage,int * fence)983*38e8c45fSAndroid Build Coastguard Worker VkResult QueueSignalReleaseImageANDROID(VkQueue,
984*38e8c45fSAndroid Build Coastguard Worker                                         uint32_t,
985*38e8c45fSAndroid Build Coastguard Worker                                         const VkSemaphore*,
986*38e8c45fSAndroid Build Coastguard Worker                                         VkImage,
987*38e8c45fSAndroid Build Coastguard Worker                                         int* fence) {
988*38e8c45fSAndroid Build Coastguard Worker     *fence = -1;
989*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
990*38e8c45fSAndroid Build Coastguard Worker }
991*38e8c45fSAndroid Build Coastguard Worker 
992*38e8c45fSAndroid Build Coastguard Worker // -----------------------------------------------------------------------------
993*38e8c45fSAndroid Build Coastguard Worker // No-op types
994*38e8c45fSAndroid Build Coastguard Worker 
CreateBufferView(VkDevice device,const VkBufferViewCreateInfo *,const VkAllocationCallbacks *,VkBufferView * view)995*38e8c45fSAndroid Build Coastguard Worker VkResult CreateBufferView(VkDevice device,
996*38e8c45fSAndroid Build Coastguard Worker                           const VkBufferViewCreateInfo*,
997*38e8c45fSAndroid Build Coastguard Worker                           const VkAllocationCallbacks* /*allocator*/,
998*38e8c45fSAndroid Build Coastguard Worker                           VkBufferView* view) {
999*38e8c45fSAndroid Build Coastguard Worker     *view = AllocHandle<VkBufferView>(device, HandleType::kBufferView);
1000*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1001*38e8c45fSAndroid Build Coastguard Worker }
1002*38e8c45fSAndroid Build Coastguard Worker 
CreateDescriptorPool(VkDevice device,const VkDescriptorPoolCreateInfo *,const VkAllocationCallbacks *,VkDescriptorPool * pool)1003*38e8c45fSAndroid Build Coastguard Worker VkResult CreateDescriptorPool(VkDevice device,
1004*38e8c45fSAndroid Build Coastguard Worker                               const VkDescriptorPoolCreateInfo*,
1005*38e8c45fSAndroid Build Coastguard Worker                               const VkAllocationCallbacks* /*allocator*/,
1006*38e8c45fSAndroid Build Coastguard Worker                               VkDescriptorPool* pool) {
1007*38e8c45fSAndroid Build Coastguard Worker     *pool = AllocHandle<VkDescriptorPool>(device, HandleType::kDescriptorPool);
1008*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1009*38e8c45fSAndroid Build Coastguard Worker }
1010*38e8c45fSAndroid Build Coastguard Worker 
AllocateDescriptorSets(VkDevice device,const VkDescriptorSetAllocateInfo * alloc_info,VkDescriptorSet * descriptor_sets)1011*38e8c45fSAndroid Build Coastguard Worker VkResult AllocateDescriptorSets(VkDevice device,
1012*38e8c45fSAndroid Build Coastguard Worker                                 const VkDescriptorSetAllocateInfo* alloc_info,
1013*38e8c45fSAndroid Build Coastguard Worker                                 VkDescriptorSet* descriptor_sets) {
1014*38e8c45fSAndroid Build Coastguard Worker     for (uint32_t i = 0; i < alloc_info->descriptorSetCount; i++)
1015*38e8c45fSAndroid Build Coastguard Worker         descriptor_sets[i] =
1016*38e8c45fSAndroid Build Coastguard Worker             AllocHandle<VkDescriptorSet>(device, HandleType::kDescriptorSet);
1017*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1018*38e8c45fSAndroid Build Coastguard Worker }
1019*38e8c45fSAndroid Build Coastguard Worker 
CreateDescriptorSetLayout(VkDevice device,const VkDescriptorSetLayoutCreateInfo *,const VkAllocationCallbacks *,VkDescriptorSetLayout * layout)1020*38e8c45fSAndroid Build Coastguard Worker VkResult CreateDescriptorSetLayout(VkDevice device,
1021*38e8c45fSAndroid Build Coastguard Worker                                    const VkDescriptorSetLayoutCreateInfo*,
1022*38e8c45fSAndroid Build Coastguard Worker                                    const VkAllocationCallbacks* /*allocator*/,
1023*38e8c45fSAndroid Build Coastguard Worker                                    VkDescriptorSetLayout* layout) {
1024*38e8c45fSAndroid Build Coastguard Worker     *layout = AllocHandle<VkDescriptorSetLayout>(
1025*38e8c45fSAndroid Build Coastguard Worker         device, HandleType::kDescriptorSetLayout);
1026*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1027*38e8c45fSAndroid Build Coastguard Worker }
1028*38e8c45fSAndroid Build Coastguard Worker 
CreateEvent(VkDevice device,const VkEventCreateInfo *,const VkAllocationCallbacks *,VkEvent * event)1029*38e8c45fSAndroid Build Coastguard Worker VkResult CreateEvent(VkDevice device,
1030*38e8c45fSAndroid Build Coastguard Worker                      const VkEventCreateInfo*,
1031*38e8c45fSAndroid Build Coastguard Worker                      const VkAllocationCallbacks* /*allocator*/,
1032*38e8c45fSAndroid Build Coastguard Worker                      VkEvent* event) {
1033*38e8c45fSAndroid Build Coastguard Worker     *event = AllocHandle<VkEvent>(device, HandleType::kEvent);
1034*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1035*38e8c45fSAndroid Build Coastguard Worker }
1036*38e8c45fSAndroid Build Coastguard Worker 
CreateFence(VkDevice device,const VkFenceCreateInfo *,const VkAllocationCallbacks *,VkFence * fence)1037*38e8c45fSAndroid Build Coastguard Worker VkResult CreateFence(VkDevice device,
1038*38e8c45fSAndroid Build Coastguard Worker                      const VkFenceCreateInfo*,
1039*38e8c45fSAndroid Build Coastguard Worker                      const VkAllocationCallbacks* /*allocator*/,
1040*38e8c45fSAndroid Build Coastguard Worker                      VkFence* fence) {
1041*38e8c45fSAndroid Build Coastguard Worker     *fence = AllocHandle<VkFence>(device, HandleType::kFence);
1042*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1043*38e8c45fSAndroid Build Coastguard Worker }
1044*38e8c45fSAndroid Build Coastguard Worker 
CreateFramebuffer(VkDevice device,const VkFramebufferCreateInfo *,const VkAllocationCallbacks *,VkFramebuffer * framebuffer)1045*38e8c45fSAndroid Build Coastguard Worker VkResult CreateFramebuffer(VkDevice device,
1046*38e8c45fSAndroid Build Coastguard Worker                            const VkFramebufferCreateInfo*,
1047*38e8c45fSAndroid Build Coastguard Worker                            const VkAllocationCallbacks* /*allocator*/,
1048*38e8c45fSAndroid Build Coastguard Worker                            VkFramebuffer* framebuffer) {
1049*38e8c45fSAndroid Build Coastguard Worker     *framebuffer = AllocHandle<VkFramebuffer>(device, HandleType::kFramebuffer);
1050*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1051*38e8c45fSAndroid Build Coastguard Worker }
1052*38e8c45fSAndroid Build Coastguard Worker 
CreateImageView(VkDevice device,const VkImageViewCreateInfo *,const VkAllocationCallbacks *,VkImageView * view)1053*38e8c45fSAndroid Build Coastguard Worker VkResult CreateImageView(VkDevice device,
1054*38e8c45fSAndroid Build Coastguard Worker                          const VkImageViewCreateInfo*,
1055*38e8c45fSAndroid Build Coastguard Worker                          const VkAllocationCallbacks* /*allocator*/,
1056*38e8c45fSAndroid Build Coastguard Worker                          VkImageView* view) {
1057*38e8c45fSAndroid Build Coastguard Worker     *view = AllocHandle<VkImageView>(device, HandleType::kImageView);
1058*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1059*38e8c45fSAndroid Build Coastguard Worker }
1060*38e8c45fSAndroid Build Coastguard Worker 
CreateGraphicsPipelines(VkDevice device,VkPipelineCache,uint32_t count,const VkGraphicsPipelineCreateInfo *,const VkAllocationCallbacks *,VkPipeline * pipelines)1061*38e8c45fSAndroid Build Coastguard Worker VkResult CreateGraphicsPipelines(VkDevice device,
1062*38e8c45fSAndroid Build Coastguard Worker                                  VkPipelineCache,
1063*38e8c45fSAndroid Build Coastguard Worker                                  uint32_t count,
1064*38e8c45fSAndroid Build Coastguard Worker                                  const VkGraphicsPipelineCreateInfo*,
1065*38e8c45fSAndroid Build Coastguard Worker                                  const VkAllocationCallbacks* /*allocator*/,
1066*38e8c45fSAndroid Build Coastguard Worker                                  VkPipeline* pipelines) {
1067*38e8c45fSAndroid Build Coastguard Worker     for (uint32_t i = 0; i < count; i++)
1068*38e8c45fSAndroid Build Coastguard Worker         pipelines[i] = AllocHandle<VkPipeline>(device, HandleType::kPipeline);
1069*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1070*38e8c45fSAndroid Build Coastguard Worker }
1071*38e8c45fSAndroid Build Coastguard Worker 
CreateComputePipelines(VkDevice device,VkPipelineCache,uint32_t count,const VkComputePipelineCreateInfo *,const VkAllocationCallbacks *,VkPipeline * pipelines)1072*38e8c45fSAndroid Build Coastguard Worker VkResult CreateComputePipelines(VkDevice device,
1073*38e8c45fSAndroid Build Coastguard Worker                                 VkPipelineCache,
1074*38e8c45fSAndroid Build Coastguard Worker                                 uint32_t count,
1075*38e8c45fSAndroid Build Coastguard Worker                                 const VkComputePipelineCreateInfo*,
1076*38e8c45fSAndroid Build Coastguard Worker                                 const VkAllocationCallbacks* /*allocator*/,
1077*38e8c45fSAndroid Build Coastguard Worker                                 VkPipeline* pipelines) {
1078*38e8c45fSAndroid Build Coastguard Worker     for (uint32_t i = 0; i < count; i++)
1079*38e8c45fSAndroid Build Coastguard Worker         pipelines[i] = AllocHandle<VkPipeline>(device, HandleType::kPipeline);
1080*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1081*38e8c45fSAndroid Build Coastguard Worker }
1082*38e8c45fSAndroid Build Coastguard Worker 
CreatePipelineCache(VkDevice device,const VkPipelineCacheCreateInfo *,const VkAllocationCallbacks *,VkPipelineCache * cache)1083*38e8c45fSAndroid Build Coastguard Worker VkResult CreatePipelineCache(VkDevice device,
1084*38e8c45fSAndroid Build Coastguard Worker                              const VkPipelineCacheCreateInfo*,
1085*38e8c45fSAndroid Build Coastguard Worker                              const VkAllocationCallbacks* /*allocator*/,
1086*38e8c45fSAndroid Build Coastguard Worker                              VkPipelineCache* cache) {
1087*38e8c45fSAndroid Build Coastguard Worker     *cache = AllocHandle<VkPipelineCache>(device, HandleType::kPipelineCache);
1088*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1089*38e8c45fSAndroid Build Coastguard Worker }
1090*38e8c45fSAndroid Build Coastguard Worker 
CreatePipelineLayout(VkDevice device,const VkPipelineLayoutCreateInfo *,const VkAllocationCallbacks *,VkPipelineLayout * layout)1091*38e8c45fSAndroid Build Coastguard Worker VkResult CreatePipelineLayout(VkDevice device,
1092*38e8c45fSAndroid Build Coastguard Worker                               const VkPipelineLayoutCreateInfo*,
1093*38e8c45fSAndroid Build Coastguard Worker                               const VkAllocationCallbacks* /*allocator*/,
1094*38e8c45fSAndroid Build Coastguard Worker                               VkPipelineLayout* layout) {
1095*38e8c45fSAndroid Build Coastguard Worker     *layout =
1096*38e8c45fSAndroid Build Coastguard Worker         AllocHandle<VkPipelineLayout>(device, HandleType::kPipelineLayout);
1097*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1098*38e8c45fSAndroid Build Coastguard Worker }
1099*38e8c45fSAndroid Build Coastguard Worker 
CreateQueryPool(VkDevice device,const VkQueryPoolCreateInfo *,const VkAllocationCallbacks *,VkQueryPool * pool)1100*38e8c45fSAndroid Build Coastguard Worker VkResult CreateQueryPool(VkDevice device,
1101*38e8c45fSAndroid Build Coastguard Worker                          const VkQueryPoolCreateInfo*,
1102*38e8c45fSAndroid Build Coastguard Worker                          const VkAllocationCallbacks* /*allocator*/,
1103*38e8c45fSAndroid Build Coastguard Worker                          VkQueryPool* pool) {
1104*38e8c45fSAndroid Build Coastguard Worker     *pool = AllocHandle<VkQueryPool>(device, HandleType::kQueryPool);
1105*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1106*38e8c45fSAndroid Build Coastguard Worker }
1107*38e8c45fSAndroid Build Coastguard Worker 
CreateRenderPass(VkDevice device,const VkRenderPassCreateInfo *,const VkAllocationCallbacks *,VkRenderPass * renderpass)1108*38e8c45fSAndroid Build Coastguard Worker VkResult CreateRenderPass(VkDevice device,
1109*38e8c45fSAndroid Build Coastguard Worker                           const VkRenderPassCreateInfo*,
1110*38e8c45fSAndroid Build Coastguard Worker                           const VkAllocationCallbacks* /*allocator*/,
1111*38e8c45fSAndroid Build Coastguard Worker                           VkRenderPass* renderpass) {
1112*38e8c45fSAndroid Build Coastguard Worker     *renderpass = AllocHandle<VkRenderPass>(device, HandleType::kRenderPass);
1113*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1114*38e8c45fSAndroid Build Coastguard Worker }
1115*38e8c45fSAndroid Build Coastguard Worker 
CreateSampler(VkDevice device,const VkSamplerCreateInfo *,const VkAllocationCallbacks *,VkSampler * sampler)1116*38e8c45fSAndroid Build Coastguard Worker VkResult CreateSampler(VkDevice device,
1117*38e8c45fSAndroid Build Coastguard Worker                        const VkSamplerCreateInfo*,
1118*38e8c45fSAndroid Build Coastguard Worker                        const VkAllocationCallbacks* /*allocator*/,
1119*38e8c45fSAndroid Build Coastguard Worker                        VkSampler* sampler) {
1120*38e8c45fSAndroid Build Coastguard Worker     *sampler = AllocHandle<VkSampler>(device, HandleType::kSampler);
1121*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1122*38e8c45fSAndroid Build Coastguard Worker }
1123*38e8c45fSAndroid Build Coastguard Worker 
CreateSemaphore(VkDevice device,const VkSemaphoreCreateInfo *,const VkAllocationCallbacks *,VkSemaphore * semaphore)1124*38e8c45fSAndroid Build Coastguard Worker VkResult CreateSemaphore(VkDevice device,
1125*38e8c45fSAndroid Build Coastguard Worker                          const VkSemaphoreCreateInfo*,
1126*38e8c45fSAndroid Build Coastguard Worker                          const VkAllocationCallbacks* /*allocator*/,
1127*38e8c45fSAndroid Build Coastguard Worker                          VkSemaphore* semaphore) {
1128*38e8c45fSAndroid Build Coastguard Worker     *semaphore = AllocHandle<VkSemaphore>(device, HandleType::kSemaphore);
1129*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1130*38e8c45fSAndroid Build Coastguard Worker }
1131*38e8c45fSAndroid Build Coastguard Worker 
CreateShaderModule(VkDevice device,const VkShaderModuleCreateInfo *,const VkAllocationCallbacks *,VkShaderModule * module)1132*38e8c45fSAndroid Build Coastguard Worker VkResult CreateShaderModule(VkDevice device,
1133*38e8c45fSAndroid Build Coastguard Worker                             const VkShaderModuleCreateInfo*,
1134*38e8c45fSAndroid Build Coastguard Worker                             const VkAllocationCallbacks* /*allocator*/,
1135*38e8c45fSAndroid Build Coastguard Worker                             VkShaderModule* module) {
1136*38e8c45fSAndroid Build Coastguard Worker     *module = AllocHandle<VkShaderModule>(device, HandleType::kShaderModule);
1137*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1138*38e8c45fSAndroid Build Coastguard Worker }
1139*38e8c45fSAndroid Build Coastguard Worker 
CreateDebugReportCallbackEXT(VkInstance instance,const VkDebugReportCallbackCreateInfoEXT *,const VkAllocationCallbacks *,VkDebugReportCallbackEXT * callback)1140*38e8c45fSAndroid Build Coastguard Worker VkResult CreateDebugReportCallbackEXT(VkInstance instance,
1141*38e8c45fSAndroid Build Coastguard Worker                                       const VkDebugReportCallbackCreateInfoEXT*,
1142*38e8c45fSAndroid Build Coastguard Worker                                       const VkAllocationCallbacks*,
1143*38e8c45fSAndroid Build Coastguard Worker                                       VkDebugReportCallbackEXT* callback) {
1144*38e8c45fSAndroid Build Coastguard Worker     *callback = AllocHandle<VkDebugReportCallbackEXT>(
1145*38e8c45fSAndroid Build Coastguard Worker         instance, HandleType::kDebugReportCallbackEXT);
1146*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1147*38e8c45fSAndroid Build Coastguard Worker }
1148*38e8c45fSAndroid Build Coastguard Worker 
CreateRenderPass2(VkDevice device,const VkRenderPassCreateInfo2 *,const VkAllocationCallbacks *,VkRenderPass * pRenderPass)1149*38e8c45fSAndroid Build Coastguard Worker VkResult CreateRenderPass2(VkDevice device,
1150*38e8c45fSAndroid Build Coastguard Worker                            const VkRenderPassCreateInfo2*,
1151*38e8c45fSAndroid Build Coastguard Worker                            const VkAllocationCallbacks* /*allocator*/,
1152*38e8c45fSAndroid Build Coastguard Worker                            VkRenderPass* pRenderPass) {
1153*38e8c45fSAndroid Build Coastguard Worker     *pRenderPass = AllocHandle<VkRenderPass>(device, HandleType::kRenderPass);
1154*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1155*38e8c45fSAndroid Build Coastguard Worker }
1156*38e8c45fSAndroid Build Coastguard Worker 
1157*38e8c45fSAndroid Build Coastguard Worker // -----------------------------------------------------------------------------
1158*38e8c45fSAndroid Build Coastguard Worker // No-op entrypoints
1159*38e8c45fSAndroid Build Coastguard Worker 
1160*38e8c45fSAndroid Build Coastguard Worker // clang-format off
1161*38e8c45fSAndroid Build Coastguard Worker #pragma clang diagnostic push
1162*38e8c45fSAndroid Build Coastguard Worker #pragma clang diagnostic ignored "-Wunused-parameter"
1163*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties * pFormatProperties)1164*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) {
1165*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1166*38e8c45fSAndroid Build Coastguard Worker }
1167*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2KHR * pFormatProperties)1168*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2KHR* pFormatProperties) {
1169*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1170*38e8c45fSAndroid Build Coastguard Worker }
1171*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkImageFormatProperties * pImageFormatProperties)1172*38e8c45fSAndroid Build Coastguard Worker VkResult GetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) {
1173*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1174*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1175*38e8c45fSAndroid Build Coastguard Worker }
1176*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2KHR * pImageFormatInfo,VkImageFormatProperties2KHR * pImageFormatProperties)1177*38e8c45fSAndroid Build Coastguard Worker VkResult GetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,
1178*38e8c45fSAndroid Build Coastguard Worker                                                     const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
1179*38e8c45fSAndroid Build Coastguard Worker                                                     VkImageFormatProperties2KHR* pImageFormatProperties) {
1180*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1181*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1182*38e8c45fSAndroid Build Coastguard Worker }
1183*38e8c45fSAndroid Build Coastguard Worker 
EnumerateInstanceLayerProperties(uint32_t * pCount,VkLayerProperties * pProperties)1184*38e8c45fSAndroid Build Coastguard Worker VkResult EnumerateInstanceLayerProperties(uint32_t* pCount, VkLayerProperties* pProperties) {
1185*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1186*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1187*38e8c45fSAndroid Build Coastguard Worker }
1188*38e8c45fSAndroid Build Coastguard Worker 
QueueSubmit(VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmitInfo,VkFence fence)1189*38e8c45fSAndroid Build Coastguard Worker VkResult QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmitInfo, VkFence fence) {
1190*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1191*38e8c45fSAndroid Build Coastguard Worker }
1192*38e8c45fSAndroid Build Coastguard Worker 
QueueWaitIdle(VkQueue queue)1193*38e8c45fSAndroid Build Coastguard Worker VkResult QueueWaitIdle(VkQueue queue) {
1194*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1195*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1196*38e8c45fSAndroid Build Coastguard Worker }
1197*38e8c45fSAndroid Build Coastguard Worker 
DeviceWaitIdle(VkDevice device)1198*38e8c45fSAndroid Build Coastguard Worker VkResult DeviceWaitIdle(VkDevice device) {
1199*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1200*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1201*38e8c45fSAndroid Build Coastguard Worker }
1202*38e8c45fSAndroid Build Coastguard Worker 
UnmapMemory(VkDevice device,VkDeviceMemory mem)1203*38e8c45fSAndroid Build Coastguard Worker void UnmapMemory(VkDevice device, VkDeviceMemory mem) {
1204*38e8c45fSAndroid Build Coastguard Worker }
1205*38e8c45fSAndroid Build Coastguard Worker 
FlushMappedMemoryRanges(VkDevice device,uint32_t memRangeCount,const VkMappedMemoryRange * pMemRanges)1206*38e8c45fSAndroid Build Coastguard Worker VkResult FlushMappedMemoryRanges(VkDevice device, uint32_t memRangeCount, const VkMappedMemoryRange* pMemRanges) {
1207*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1208*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1209*38e8c45fSAndroid Build Coastguard Worker }
1210*38e8c45fSAndroid Build Coastguard Worker 
InvalidateMappedMemoryRanges(VkDevice device,uint32_t memRangeCount,const VkMappedMemoryRange * pMemRanges)1211*38e8c45fSAndroid Build Coastguard Worker VkResult InvalidateMappedMemoryRanges(VkDevice device, uint32_t memRangeCount, const VkMappedMemoryRange* pMemRanges) {
1212*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1213*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1214*38e8c45fSAndroid Build Coastguard Worker }
1215*38e8c45fSAndroid Build Coastguard Worker 
GetDeviceMemoryCommitment(VkDevice device,VkDeviceMemory memory,VkDeviceSize * pCommittedMemoryInBytes)1216*38e8c45fSAndroid Build Coastguard Worker void GetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) {
1217*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1218*38e8c45fSAndroid Build Coastguard Worker }
1219*38e8c45fSAndroid Build Coastguard Worker 
BindBufferMemory(VkDevice device,VkBuffer buffer,VkDeviceMemory mem,VkDeviceSize memOffset)1220*38e8c45fSAndroid Build Coastguard Worker VkResult BindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory mem, VkDeviceSize memOffset) {
1221*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1222*38e8c45fSAndroid Build Coastguard Worker }
1223*38e8c45fSAndroid Build Coastguard Worker 
BindImageMemory(VkDevice device,VkImage image,VkDeviceMemory mem,VkDeviceSize memOffset)1224*38e8c45fSAndroid Build Coastguard Worker VkResult BindImageMemory(VkDevice device, VkImage image, VkDeviceMemory mem, VkDeviceSize memOffset) {
1225*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1226*38e8c45fSAndroid Build Coastguard Worker }
1227*38e8c45fSAndroid Build Coastguard Worker 
GetImageSparseMemoryRequirements(VkDevice device,VkImage image,uint32_t * pNumRequirements,VkSparseImageMemoryRequirements * pSparseMemoryRequirements)1228*38e8c45fSAndroid Build Coastguard Worker void GetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t* pNumRequirements, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
1229*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1230*38e8c45fSAndroid Build Coastguard Worker }
1231*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkSampleCountFlagBits samples,VkImageUsageFlags usage,VkImageTiling tiling,uint32_t * pNumProperties,VkSparseImageFormatProperties * pProperties)1232*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pNumProperties, VkSparseImageFormatProperties* pProperties) {
1233*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1234*38e8c45fSAndroid Build Coastguard Worker }
1235*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceSparseImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceSparseImageFormatInfo2KHR const * pInfo,unsigned int * pNumProperties,VkSparseImageFormatProperties2KHR * pProperties)1236*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceSparseImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,
1237*38e8c45fSAndroid Build Coastguard Worker                                                       VkPhysicalDeviceSparseImageFormatInfo2KHR const* pInfo,
1238*38e8c45fSAndroid Build Coastguard Worker                                                       unsigned int* pNumProperties,
1239*38e8c45fSAndroid Build Coastguard Worker                                                       VkSparseImageFormatProperties2KHR* pProperties) {
1240*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1241*38e8c45fSAndroid Build Coastguard Worker }
1242*38e8c45fSAndroid Build Coastguard Worker 
1243*38e8c45fSAndroid Build Coastguard Worker 
QueueBindSparse(VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence)1244*38e8c45fSAndroid Build Coastguard Worker VkResult QueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) {
1245*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1246*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1247*38e8c45fSAndroid Build Coastguard Worker }
1248*38e8c45fSAndroid Build Coastguard Worker 
DestroyFence(VkDevice device,VkFence fence,const VkAllocationCallbacks * allocator)1249*38e8c45fSAndroid Build Coastguard Worker void DestroyFence(VkDevice device, VkFence fence, const VkAllocationCallbacks* allocator) {
1250*38e8c45fSAndroid Build Coastguard Worker }
1251*38e8c45fSAndroid Build Coastguard Worker 
ResetFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences)1252*38e8c45fSAndroid Build Coastguard Worker VkResult ResetFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences) {
1253*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1254*38e8c45fSAndroid Build Coastguard Worker }
1255*38e8c45fSAndroid Build Coastguard Worker 
GetFenceStatus(VkDevice device,VkFence fence)1256*38e8c45fSAndroid Build Coastguard Worker VkResult GetFenceStatus(VkDevice device, VkFence fence) {
1257*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1258*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1259*38e8c45fSAndroid Build Coastguard Worker }
1260*38e8c45fSAndroid Build Coastguard Worker 
WaitForFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkBool32 waitAll,uint64_t timeout)1261*38e8c45fSAndroid Build Coastguard Worker VkResult WaitForFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout) {
1262*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1263*38e8c45fSAndroid Build Coastguard Worker }
1264*38e8c45fSAndroid Build Coastguard Worker 
DestroySemaphore(VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * allocator)1265*38e8c45fSAndroid Build Coastguard Worker void DestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* allocator) {
1266*38e8c45fSAndroid Build Coastguard Worker }
1267*38e8c45fSAndroid Build Coastguard Worker 
DestroyEvent(VkDevice device,VkEvent event,const VkAllocationCallbacks * allocator)1268*38e8c45fSAndroid Build Coastguard Worker void DestroyEvent(VkDevice device, VkEvent event, const VkAllocationCallbacks* allocator) {
1269*38e8c45fSAndroid Build Coastguard Worker }
1270*38e8c45fSAndroid Build Coastguard Worker 
GetEventStatus(VkDevice device,VkEvent event)1271*38e8c45fSAndroid Build Coastguard Worker VkResult GetEventStatus(VkDevice device, VkEvent event) {
1272*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1273*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1274*38e8c45fSAndroid Build Coastguard Worker }
1275*38e8c45fSAndroid Build Coastguard Worker 
SetEvent(VkDevice device,VkEvent event)1276*38e8c45fSAndroid Build Coastguard Worker VkResult SetEvent(VkDevice device, VkEvent event) {
1277*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1278*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1279*38e8c45fSAndroid Build Coastguard Worker }
1280*38e8c45fSAndroid Build Coastguard Worker 
ResetEvent(VkDevice device,VkEvent event)1281*38e8c45fSAndroid Build Coastguard Worker VkResult ResetEvent(VkDevice device, VkEvent event) {
1282*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1283*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1284*38e8c45fSAndroid Build Coastguard Worker }
1285*38e8c45fSAndroid Build Coastguard Worker 
DestroyQueryPool(VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * allocator)1286*38e8c45fSAndroid Build Coastguard Worker void DestroyQueryPool(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* allocator) {
1287*38e8c45fSAndroid Build Coastguard Worker }
1288*38e8c45fSAndroid Build Coastguard Worker 
GetQueryPoolResults(VkDevice device,VkQueryPool queryPool,uint32_t startQuery,uint32_t queryCount,size_t dataSize,void * pData,VkDeviceSize stride,VkQueryResultFlags flags)1289*38e8c45fSAndroid Build Coastguard Worker VkResult GetQueryPoolResults(VkDevice device, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) {
1290*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1291*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1292*38e8c45fSAndroid Build Coastguard Worker }
1293*38e8c45fSAndroid Build Coastguard Worker 
DestroyBufferView(VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * allocator)1294*38e8c45fSAndroid Build Coastguard Worker void DestroyBufferView(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* allocator) {
1295*38e8c45fSAndroid Build Coastguard Worker }
1296*38e8c45fSAndroid Build Coastguard Worker 
GetImageSubresourceLayout(VkDevice device,VkImage image,const VkImageSubresource * pSubresource,VkSubresourceLayout * pLayout)1297*38e8c45fSAndroid Build Coastguard Worker void GetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) {
1298*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1299*38e8c45fSAndroid Build Coastguard Worker }
1300*38e8c45fSAndroid Build Coastguard Worker 
DestroyImageView(VkDevice device,VkImageView imageView,const VkAllocationCallbacks * allocator)1301*38e8c45fSAndroid Build Coastguard Worker void DestroyImageView(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* allocator) {
1302*38e8c45fSAndroid Build Coastguard Worker }
1303*38e8c45fSAndroid Build Coastguard Worker 
DestroyShaderModule(VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * allocator)1304*38e8c45fSAndroid Build Coastguard Worker void DestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* allocator) {
1305*38e8c45fSAndroid Build Coastguard Worker }
1306*38e8c45fSAndroid Build Coastguard Worker 
DestroyPipelineCache(VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * allocator)1307*38e8c45fSAndroid Build Coastguard Worker void DestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* allocator) {
1308*38e8c45fSAndroid Build Coastguard Worker }
1309*38e8c45fSAndroid Build Coastguard Worker 
GetPipelineCacheData(VkDevice device,VkPipelineCache pipelineCache,size_t * pDataSize,void * pData)1310*38e8c45fSAndroid Build Coastguard Worker VkResult GetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData) {
1311*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1312*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1313*38e8c45fSAndroid Build Coastguard Worker }
1314*38e8c45fSAndroid Build Coastguard Worker 
MergePipelineCaches(VkDevice device,VkPipelineCache destCache,uint32_t srcCacheCount,const VkPipelineCache * pSrcCaches)1315*38e8c45fSAndroid Build Coastguard Worker VkResult MergePipelineCaches(VkDevice device, VkPipelineCache destCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches) {
1316*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1317*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1318*38e8c45fSAndroid Build Coastguard Worker }
1319*38e8c45fSAndroid Build Coastguard Worker 
DestroyPipeline(VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * allocator)1320*38e8c45fSAndroid Build Coastguard Worker void DestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* allocator) {
1321*38e8c45fSAndroid Build Coastguard Worker }
1322*38e8c45fSAndroid Build Coastguard Worker 
DestroyPipelineLayout(VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * allocator)1323*38e8c45fSAndroid Build Coastguard Worker void DestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* allocator) {
1324*38e8c45fSAndroid Build Coastguard Worker }
1325*38e8c45fSAndroid Build Coastguard Worker 
DestroySampler(VkDevice device,VkSampler sampler,const VkAllocationCallbacks * allocator)1326*38e8c45fSAndroid Build Coastguard Worker void DestroySampler(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* allocator) {
1327*38e8c45fSAndroid Build Coastguard Worker }
1328*38e8c45fSAndroid Build Coastguard Worker 
DestroyDescriptorSetLayout(VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * allocator)1329*38e8c45fSAndroid Build Coastguard Worker void DestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* allocator) {
1330*38e8c45fSAndroid Build Coastguard Worker }
1331*38e8c45fSAndroid Build Coastguard Worker 
DestroyDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * allocator)1332*38e8c45fSAndroid Build Coastguard Worker void DestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* allocator) {
1333*38e8c45fSAndroid Build Coastguard Worker }
1334*38e8c45fSAndroid Build Coastguard Worker 
ResetDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags)1335*38e8c45fSAndroid Build Coastguard Worker VkResult ResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) {
1336*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1337*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1338*38e8c45fSAndroid Build Coastguard Worker }
1339*38e8c45fSAndroid Build Coastguard Worker 
UpdateDescriptorSets(VkDevice device,uint32_t writeCount,const VkWriteDescriptorSet * pDescriptorWrites,uint32_t copyCount,const VkCopyDescriptorSet * pDescriptorCopies)1340*38e8c45fSAndroid Build Coastguard Worker void UpdateDescriptorSets(VkDevice device, uint32_t writeCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t copyCount, const VkCopyDescriptorSet* pDescriptorCopies) {
1341*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1342*38e8c45fSAndroid Build Coastguard Worker }
1343*38e8c45fSAndroid Build Coastguard Worker 
FreeDescriptorSets(VkDevice device,VkDescriptorPool descriptorPool,uint32_t count,const VkDescriptorSet * pDescriptorSets)1344*38e8c45fSAndroid Build Coastguard Worker VkResult FreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t count, const VkDescriptorSet* pDescriptorSets) {
1345*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1346*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1347*38e8c45fSAndroid Build Coastguard Worker }
1348*38e8c45fSAndroid Build Coastguard Worker 
DestroyFramebuffer(VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * allocator)1349*38e8c45fSAndroid Build Coastguard Worker void DestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* allocator) {
1350*38e8c45fSAndroid Build Coastguard Worker }
1351*38e8c45fSAndroid Build Coastguard Worker 
DestroyRenderPass(VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * allocator)1352*38e8c45fSAndroid Build Coastguard Worker void DestroyRenderPass(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* allocator) {
1353*38e8c45fSAndroid Build Coastguard Worker }
1354*38e8c45fSAndroid Build Coastguard Worker 
GetRenderAreaGranularity(VkDevice device,VkRenderPass renderPass,VkExtent2D * pGranularity)1355*38e8c45fSAndroid Build Coastguard Worker void GetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) {
1356*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1357*38e8c45fSAndroid Build Coastguard Worker }
1358*38e8c45fSAndroid Build Coastguard Worker 
ResetCommandPool(VkDevice device,VkCommandPool cmdPool,VkCommandPoolResetFlags flags)1359*38e8c45fSAndroid Build Coastguard Worker VkResult ResetCommandPool(VkDevice device, VkCommandPool cmdPool, VkCommandPoolResetFlags flags) {
1360*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1361*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1362*38e8c45fSAndroid Build Coastguard Worker }
1363*38e8c45fSAndroid Build Coastguard Worker 
BeginCommandBuffer(VkCommandBuffer cmdBuffer,const VkCommandBufferBeginInfo * pBeginInfo)1364*38e8c45fSAndroid Build Coastguard Worker VkResult BeginCommandBuffer(VkCommandBuffer cmdBuffer, const VkCommandBufferBeginInfo* pBeginInfo) {
1365*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1366*38e8c45fSAndroid Build Coastguard Worker }
1367*38e8c45fSAndroid Build Coastguard Worker 
EndCommandBuffer(VkCommandBuffer cmdBuffer)1368*38e8c45fSAndroid Build Coastguard Worker VkResult EndCommandBuffer(VkCommandBuffer cmdBuffer) {
1369*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1370*38e8c45fSAndroid Build Coastguard Worker }
1371*38e8c45fSAndroid Build Coastguard Worker 
ResetCommandBuffer(VkCommandBuffer cmdBuffer,VkCommandBufferResetFlags flags)1372*38e8c45fSAndroid Build Coastguard Worker VkResult ResetCommandBuffer(VkCommandBuffer cmdBuffer, VkCommandBufferResetFlags flags) {
1373*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1374*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1375*38e8c45fSAndroid Build Coastguard Worker }
1376*38e8c45fSAndroid Build Coastguard Worker 
CmdBindPipeline(VkCommandBuffer cmdBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline)1377*38e8c45fSAndroid Build Coastguard Worker void CmdBindPipeline(VkCommandBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) {
1378*38e8c45fSAndroid Build Coastguard Worker }
1379*38e8c45fSAndroid Build Coastguard Worker 
CmdSetViewport(VkCommandBuffer cmdBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewport * pViewports)1380*38e8c45fSAndroid Build Coastguard Worker void CmdSetViewport(VkCommandBuffer cmdBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports) {
1381*38e8c45fSAndroid Build Coastguard Worker }
1382*38e8c45fSAndroid Build Coastguard Worker 
CmdSetScissor(VkCommandBuffer cmdBuffer,uint32_t firstScissor,uint32_t scissorCount,const VkRect2D * pScissors)1383*38e8c45fSAndroid Build Coastguard Worker void CmdSetScissor(VkCommandBuffer cmdBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) {
1384*38e8c45fSAndroid Build Coastguard Worker }
1385*38e8c45fSAndroid Build Coastguard Worker 
CmdSetLineWidth(VkCommandBuffer cmdBuffer,float lineWidth)1386*38e8c45fSAndroid Build Coastguard Worker void CmdSetLineWidth(VkCommandBuffer cmdBuffer, float lineWidth) {
1387*38e8c45fSAndroid Build Coastguard Worker }
1388*38e8c45fSAndroid Build Coastguard Worker 
CmdSetDepthBias(VkCommandBuffer cmdBuffer,float depthBias,float depthBiasClamp,float slopeScaledDepthBias)1389*38e8c45fSAndroid Build Coastguard Worker void CmdSetDepthBias(VkCommandBuffer cmdBuffer, float depthBias, float depthBiasClamp, float slopeScaledDepthBias) {
1390*38e8c45fSAndroid Build Coastguard Worker }
1391*38e8c45fSAndroid Build Coastguard Worker 
CmdSetBlendConstants(VkCommandBuffer cmdBuffer,const float blendConst[4])1392*38e8c45fSAndroid Build Coastguard Worker void CmdSetBlendConstants(VkCommandBuffer cmdBuffer, const float blendConst[4]) {
1393*38e8c45fSAndroid Build Coastguard Worker }
1394*38e8c45fSAndroid Build Coastguard Worker 
CmdSetDepthBounds(VkCommandBuffer cmdBuffer,float minDepthBounds,float maxDepthBounds)1395*38e8c45fSAndroid Build Coastguard Worker void CmdSetDepthBounds(VkCommandBuffer cmdBuffer, float minDepthBounds, float maxDepthBounds) {
1396*38e8c45fSAndroid Build Coastguard Worker }
1397*38e8c45fSAndroid Build Coastguard Worker 
CmdSetStencilCompareMask(VkCommandBuffer cmdBuffer,VkStencilFaceFlags faceMask,uint32_t stencilCompareMask)1398*38e8c45fSAndroid Build Coastguard Worker void CmdSetStencilCompareMask(VkCommandBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilCompareMask) {
1399*38e8c45fSAndroid Build Coastguard Worker }
1400*38e8c45fSAndroid Build Coastguard Worker 
CmdSetStencilWriteMask(VkCommandBuffer cmdBuffer,VkStencilFaceFlags faceMask,uint32_t stencilWriteMask)1401*38e8c45fSAndroid Build Coastguard Worker void CmdSetStencilWriteMask(VkCommandBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilWriteMask) {
1402*38e8c45fSAndroid Build Coastguard Worker }
1403*38e8c45fSAndroid Build Coastguard Worker 
CmdSetStencilReference(VkCommandBuffer cmdBuffer,VkStencilFaceFlags faceMask,uint32_t stencilReference)1404*38e8c45fSAndroid Build Coastguard Worker void CmdSetStencilReference(VkCommandBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilReference) {
1405*38e8c45fSAndroid Build Coastguard Worker }
1406*38e8c45fSAndroid Build Coastguard Worker 
CmdBindDescriptorSets(VkCommandBuffer cmdBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t setCount,const VkDescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets)1407*38e8c45fSAndroid Build Coastguard Worker void CmdBindDescriptorSets(VkCommandBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) {
1408*38e8c45fSAndroid Build Coastguard Worker }
1409*38e8c45fSAndroid Build Coastguard Worker 
CmdBindIndexBuffer(VkCommandBuffer cmdBuffer,VkBuffer buffer,VkDeviceSize offset,VkIndexType indexType)1410*38e8c45fSAndroid Build Coastguard Worker void CmdBindIndexBuffer(VkCommandBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) {
1411*38e8c45fSAndroid Build Coastguard Worker }
1412*38e8c45fSAndroid Build Coastguard Worker 
CmdBindVertexBuffers(VkCommandBuffer cmdBuffer,uint32_t startBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets)1413*38e8c45fSAndroid Build Coastguard Worker void CmdBindVertexBuffers(VkCommandBuffer cmdBuffer, uint32_t startBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) {
1414*38e8c45fSAndroid Build Coastguard Worker }
1415*38e8c45fSAndroid Build Coastguard Worker 
CmdDraw(VkCommandBuffer cmdBuffer,uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance)1416*38e8c45fSAndroid Build Coastguard Worker void CmdDraw(VkCommandBuffer cmdBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) {
1417*38e8c45fSAndroid Build Coastguard Worker }
1418*38e8c45fSAndroid Build Coastguard Worker 
CmdDrawIndexed(VkCommandBuffer cmdBuffer,uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance)1419*38e8c45fSAndroid Build Coastguard Worker void CmdDrawIndexed(VkCommandBuffer cmdBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) {
1420*38e8c45fSAndroid Build Coastguard Worker }
1421*38e8c45fSAndroid Build Coastguard Worker 
CmdDrawIndirect(VkCommandBuffer cmdBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t count,uint32_t stride)1422*38e8c45fSAndroid Build Coastguard Worker void CmdDrawIndirect(VkCommandBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, uint32_t stride) {
1423*38e8c45fSAndroid Build Coastguard Worker }
1424*38e8c45fSAndroid Build Coastguard Worker 
CmdDrawIndexedIndirect(VkCommandBuffer cmdBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t count,uint32_t stride)1425*38e8c45fSAndroid Build Coastguard Worker void CmdDrawIndexedIndirect(VkCommandBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, uint32_t stride) {
1426*38e8c45fSAndroid Build Coastguard Worker }
1427*38e8c45fSAndroid Build Coastguard Worker 
CmdDispatch(VkCommandBuffer cmdBuffer,uint32_t x,uint32_t y,uint32_t z)1428*38e8c45fSAndroid Build Coastguard Worker void CmdDispatch(VkCommandBuffer cmdBuffer, uint32_t x, uint32_t y, uint32_t z) {
1429*38e8c45fSAndroid Build Coastguard Worker }
1430*38e8c45fSAndroid Build Coastguard Worker 
CmdDispatchIndirect(VkCommandBuffer cmdBuffer,VkBuffer buffer,VkDeviceSize offset)1431*38e8c45fSAndroid Build Coastguard Worker void CmdDispatchIndirect(VkCommandBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset) {
1432*38e8c45fSAndroid Build Coastguard Worker }
1433*38e8c45fSAndroid Build Coastguard Worker 
CmdCopyBuffer(VkCommandBuffer cmdBuffer,VkBuffer srcBuffer,VkBuffer destBuffer,uint32_t regionCount,const VkBufferCopy * pRegions)1434*38e8c45fSAndroid Build Coastguard Worker void CmdCopyBuffer(VkCommandBuffer cmdBuffer, VkBuffer srcBuffer, VkBuffer destBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) {
1435*38e8c45fSAndroid Build Coastguard Worker }
1436*38e8c45fSAndroid Build Coastguard Worker 
CmdCopyImage(VkCommandBuffer cmdBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage destImage,VkImageLayout destImageLayout,uint32_t regionCount,const VkImageCopy * pRegions)1437*38e8c45fSAndroid Build Coastguard Worker void CmdCopyImage(VkCommandBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageCopy* pRegions) {
1438*38e8c45fSAndroid Build Coastguard Worker }
1439*38e8c45fSAndroid Build Coastguard Worker 
CmdBlitImage(VkCommandBuffer cmdBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage destImage,VkImageLayout destImageLayout,uint32_t regionCount,const VkImageBlit * pRegions,VkFilter filter)1440*38e8c45fSAndroid Build Coastguard Worker void CmdBlitImage(VkCommandBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter) {
1441*38e8c45fSAndroid Build Coastguard Worker }
1442*38e8c45fSAndroid Build Coastguard Worker 
CmdCopyBufferToImage(VkCommandBuffer cmdBuffer,VkBuffer srcBuffer,VkImage destImage,VkImageLayout destImageLayout,uint32_t regionCount,const VkBufferImageCopy * pRegions)1443*38e8c45fSAndroid Build Coastguard Worker void CmdCopyBufferToImage(VkCommandBuffer cmdBuffer, VkBuffer srcBuffer, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions) {
1444*38e8c45fSAndroid Build Coastguard Worker }
1445*38e8c45fSAndroid Build Coastguard Worker 
CmdCopyImageToBuffer(VkCommandBuffer cmdBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkBuffer destBuffer,uint32_t regionCount,const VkBufferImageCopy * pRegions)1446*38e8c45fSAndroid Build Coastguard Worker void CmdCopyImageToBuffer(VkCommandBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer destBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions) {
1447*38e8c45fSAndroid Build Coastguard Worker }
1448*38e8c45fSAndroid Build Coastguard Worker 
CmdUpdateBuffer(VkCommandBuffer cmdBuffer,VkBuffer destBuffer,VkDeviceSize destOffset,VkDeviceSize dataSize,const void * pData)1449*38e8c45fSAndroid Build Coastguard Worker void CmdUpdateBuffer(VkCommandBuffer cmdBuffer, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize dataSize, const void* pData) {
1450*38e8c45fSAndroid Build Coastguard Worker }
1451*38e8c45fSAndroid Build Coastguard Worker 
CmdFillBuffer(VkCommandBuffer cmdBuffer,VkBuffer destBuffer,VkDeviceSize destOffset,VkDeviceSize fillSize,uint32_t data)1452*38e8c45fSAndroid Build Coastguard Worker void CmdFillBuffer(VkCommandBuffer cmdBuffer, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize fillSize, uint32_t data) {
1453*38e8c45fSAndroid Build Coastguard Worker }
1454*38e8c45fSAndroid Build Coastguard Worker 
CmdClearColorImage(VkCommandBuffer cmdBuffer,VkImage image,VkImageLayout imageLayout,const VkClearColorValue * pColor,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)1455*38e8c45fSAndroid Build Coastguard Worker void CmdClearColorImage(VkCommandBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) {
1456*38e8c45fSAndroid Build Coastguard Worker }
1457*38e8c45fSAndroid Build Coastguard Worker 
CmdClearDepthStencilImage(VkCommandBuffer cmdBuffer,VkImage image,VkImageLayout imageLayout,const VkClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)1458*38e8c45fSAndroid Build Coastguard Worker void CmdClearDepthStencilImage(VkCommandBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) {
1459*38e8c45fSAndroid Build Coastguard Worker }
1460*38e8c45fSAndroid Build Coastguard Worker 
CmdClearAttachments(VkCommandBuffer cmdBuffer,uint32_t attachmentCount,const VkClearAttachment * pAttachments,uint32_t rectCount,const VkClearRect * pRects)1461*38e8c45fSAndroid Build Coastguard Worker void CmdClearAttachments(VkCommandBuffer cmdBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects) {
1462*38e8c45fSAndroid Build Coastguard Worker }
1463*38e8c45fSAndroid Build Coastguard Worker 
CmdResolveImage(VkCommandBuffer cmdBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage destImage,VkImageLayout destImageLayout,uint32_t regionCount,const VkImageResolve * pRegions)1464*38e8c45fSAndroid Build Coastguard Worker void CmdResolveImage(VkCommandBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageResolve* pRegions) {
1465*38e8c45fSAndroid Build Coastguard Worker }
1466*38e8c45fSAndroid Build Coastguard Worker 
CmdSetEvent(VkCommandBuffer cmdBuffer,VkEvent event,VkPipelineStageFlags stageMask)1467*38e8c45fSAndroid Build Coastguard Worker void CmdSetEvent(VkCommandBuffer cmdBuffer, VkEvent event, VkPipelineStageFlags stageMask) {
1468*38e8c45fSAndroid Build Coastguard Worker }
1469*38e8c45fSAndroid Build Coastguard Worker 
CmdResetEvent(VkCommandBuffer cmdBuffer,VkEvent event,VkPipelineStageFlags stageMask)1470*38e8c45fSAndroid Build Coastguard Worker void CmdResetEvent(VkCommandBuffer cmdBuffer, VkEvent event, VkPipelineStageFlags stageMask) {
1471*38e8c45fSAndroid Build Coastguard Worker }
1472*38e8c45fSAndroid Build Coastguard Worker 
CmdWaitEvents(VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,VkPipelineStageFlags srcStageMask,VkPipelineStageFlags dstStageMask,uint32_t memoryBarrierCount,const VkMemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VkBufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VkImageMemoryBarrier * pImageMemoryBarriers)1473*38e8c45fSAndroid Build Coastguard Worker void CmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) {
1474*38e8c45fSAndroid Build Coastguard Worker }
1475*38e8c45fSAndroid Build Coastguard Worker 
CmdPipelineBarrier(VkCommandBuffer commandBuffer,VkPipelineStageFlags srcStageMask,VkPipelineStageFlags dstStageMask,VkDependencyFlags dependencyFlags,uint32_t memoryBarrierCount,const VkMemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VkBufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VkImageMemoryBarrier * pImageMemoryBarriers)1476*38e8c45fSAndroid Build Coastguard Worker void CmdPipelineBarrier(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) {
1477*38e8c45fSAndroid Build Coastguard Worker }
1478*38e8c45fSAndroid Build Coastguard Worker 
CmdBeginQuery(VkCommandBuffer cmdBuffer,VkQueryPool queryPool,uint32_t slot,VkQueryControlFlags flags)1479*38e8c45fSAndroid Build Coastguard Worker void CmdBeginQuery(VkCommandBuffer cmdBuffer, VkQueryPool queryPool, uint32_t slot, VkQueryControlFlags flags) {
1480*38e8c45fSAndroid Build Coastguard Worker }
1481*38e8c45fSAndroid Build Coastguard Worker 
CmdEndQuery(VkCommandBuffer cmdBuffer,VkQueryPool queryPool,uint32_t slot)1482*38e8c45fSAndroid Build Coastguard Worker void CmdEndQuery(VkCommandBuffer cmdBuffer, VkQueryPool queryPool, uint32_t slot) {
1483*38e8c45fSAndroid Build Coastguard Worker }
1484*38e8c45fSAndroid Build Coastguard Worker 
CmdResetQueryPool(VkCommandBuffer cmdBuffer,VkQueryPool queryPool,uint32_t startQuery,uint32_t queryCount)1485*38e8c45fSAndroid Build Coastguard Worker void CmdResetQueryPool(VkCommandBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount) {
1486*38e8c45fSAndroid Build Coastguard Worker }
1487*38e8c45fSAndroid Build Coastguard Worker 
CmdWriteTimestamp(VkCommandBuffer cmdBuffer,VkPipelineStageFlagBits pipelineStage,VkQueryPool queryPool,uint32_t slot)1488*38e8c45fSAndroid Build Coastguard Worker void CmdWriteTimestamp(VkCommandBuffer cmdBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t slot) {
1489*38e8c45fSAndroid Build Coastguard Worker }
1490*38e8c45fSAndroid Build Coastguard Worker 
CmdCopyQueryPoolResults(VkCommandBuffer cmdBuffer,VkQueryPool queryPool,uint32_t startQuery,uint32_t queryCount,VkBuffer destBuffer,VkDeviceSize destOffset,VkDeviceSize destStride,VkQueryResultFlags flags)1491*38e8c45fSAndroid Build Coastguard Worker void CmdCopyQueryPoolResults(VkCommandBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize destStride, VkQueryResultFlags flags) {
1492*38e8c45fSAndroid Build Coastguard Worker }
1493*38e8c45fSAndroid Build Coastguard Worker 
CmdPushConstants(VkCommandBuffer cmdBuffer,VkPipelineLayout layout,VkShaderStageFlags stageFlags,uint32_t start,uint32_t length,const void * values)1494*38e8c45fSAndroid Build Coastguard Worker void CmdPushConstants(VkCommandBuffer cmdBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t start, uint32_t length, const void* values) {
1495*38e8c45fSAndroid Build Coastguard Worker }
1496*38e8c45fSAndroid Build Coastguard Worker 
CmdBeginRenderPass(VkCommandBuffer cmdBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,VkSubpassContents contents)1497*38e8c45fSAndroid Build Coastguard Worker void CmdBeginRenderPass(VkCommandBuffer cmdBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) {
1498*38e8c45fSAndroid Build Coastguard Worker }
1499*38e8c45fSAndroid Build Coastguard Worker 
CmdNextSubpass(VkCommandBuffer cmdBuffer,VkSubpassContents contents)1500*38e8c45fSAndroid Build Coastguard Worker void CmdNextSubpass(VkCommandBuffer cmdBuffer, VkSubpassContents contents) {
1501*38e8c45fSAndroid Build Coastguard Worker }
1502*38e8c45fSAndroid Build Coastguard Worker 
CmdEndRenderPass(VkCommandBuffer cmdBuffer)1503*38e8c45fSAndroid Build Coastguard Worker void CmdEndRenderPass(VkCommandBuffer cmdBuffer) {
1504*38e8c45fSAndroid Build Coastguard Worker }
1505*38e8c45fSAndroid Build Coastguard Worker 
CmdExecuteCommands(VkCommandBuffer cmdBuffer,uint32_t cmdBuffersCount,const VkCommandBuffer * pCmdBuffers)1506*38e8c45fSAndroid Build Coastguard Worker void CmdExecuteCommands(VkCommandBuffer cmdBuffer, uint32_t cmdBuffersCount, const VkCommandBuffer* pCmdBuffers) {
1507*38e8c45fSAndroid Build Coastguard Worker }
1508*38e8c45fSAndroid Build Coastguard Worker 
DestroyDebugReportCallbackEXT(VkInstance instance,VkDebugReportCallbackEXT callback,const VkAllocationCallbacks * pAllocator)1509*38e8c45fSAndroid Build Coastguard Worker void DestroyDebugReportCallbackEXT(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator) {
1510*38e8c45fSAndroid Build Coastguard Worker }
1511*38e8c45fSAndroid Build Coastguard Worker 
DebugReportMessageEXT(VkInstance instance,VkDebugReportFlagsEXT flags,VkDebugReportObjectTypeEXT objectType,uint64_t object,size_t location,int32_t messageCode,const char * pLayerPrefix,const char * pMessage)1512*38e8c45fSAndroid Build Coastguard Worker void DebugReportMessageEXT(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage) {
1513*38e8c45fSAndroid Build Coastguard Worker }
1514*38e8c45fSAndroid Build Coastguard Worker 
BindBufferMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)1515*38e8c45fSAndroid Build Coastguard Worker VkResult BindBufferMemory2(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) {
1516*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1517*38e8c45fSAndroid Build Coastguard Worker }
1518*38e8c45fSAndroid Build Coastguard Worker 
BindImageMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)1519*38e8c45fSAndroid Build Coastguard Worker VkResult BindImageMemory2(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) {
1520*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1521*38e8c45fSAndroid Build Coastguard Worker }
1522*38e8c45fSAndroid Build Coastguard Worker 
GetDeviceGroupPeerMemoryFeatures(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)1523*38e8c45fSAndroid Build Coastguard Worker void GetDeviceGroupPeerMemoryFeatures(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
1524*38e8c45fSAndroid Build Coastguard Worker }
1525*38e8c45fSAndroid Build Coastguard Worker 
CmdSetDeviceMask(VkCommandBuffer commandBuffer,uint32_t deviceMask)1526*38e8c45fSAndroid Build Coastguard Worker void CmdSetDeviceMask(VkCommandBuffer commandBuffer, uint32_t deviceMask) {
1527*38e8c45fSAndroid Build Coastguard Worker }
1528*38e8c45fSAndroid Build Coastguard Worker 
CmdDispatchBase(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)1529*38e8c45fSAndroid Build Coastguard Worker void CmdDispatchBase(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) {
1530*38e8c45fSAndroid Build Coastguard Worker }
1531*38e8c45fSAndroid Build Coastguard Worker 
EnumeratePhysicalDeviceGroups(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties)1532*38e8c45fSAndroid Build Coastguard Worker VkResult EnumeratePhysicalDeviceGroups(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
1533*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1534*38e8c45fSAndroid Build Coastguard Worker }
1535*38e8c45fSAndroid Build Coastguard Worker 
GetImageMemoryRequirements2(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1536*38e8c45fSAndroid Build Coastguard Worker void GetImageMemoryRequirements2(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) {
1537*38e8c45fSAndroid Build Coastguard Worker }
1538*38e8c45fSAndroid Build Coastguard Worker 
GetBufferMemoryRequirements2(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1539*38e8c45fSAndroid Build Coastguard Worker void GetBufferMemoryRequirements2(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) {
1540*38e8c45fSAndroid Build Coastguard Worker }
1541*38e8c45fSAndroid Build Coastguard Worker 
GetImageSparseMemoryRequirements2(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)1542*38e8c45fSAndroid Build Coastguard Worker void GetImageSparseMemoryRequirements2(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
1543*38e8c45fSAndroid Build Coastguard Worker }
1544*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures)1545*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures) {
1546*38e8c45fSAndroid Build Coastguard Worker }
1547*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties)1548*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties) {
1549*38e8c45fSAndroid Build Coastguard Worker }
1550*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties)1551*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties) {
1552*38e8c45fSAndroid Build Coastguard Worker }
1553*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties)1554*38e8c45fSAndroid Build Coastguard Worker VkResult GetPhysicalDeviceImageFormatProperties2(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties) {
1555*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1556*38e8c45fSAndroid Build Coastguard Worker }
1557*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceQueueFamilyProperties2(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties)1558*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceQueueFamilyProperties2(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties) {
1559*38e8c45fSAndroid Build Coastguard Worker }
1560*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceMemoryProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties)1561*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceMemoryProperties2(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
1562*38e8c45fSAndroid Build Coastguard Worker }
1563*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceSparseImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties)1564*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceSparseImageFormatProperties2(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties) {
1565*38e8c45fSAndroid Build Coastguard Worker }
1566*38e8c45fSAndroid Build Coastguard Worker 
TrimCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)1567*38e8c45fSAndroid Build Coastguard Worker void TrimCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags) {
1568*38e8c45fSAndroid Build Coastguard Worker }
1569*38e8c45fSAndroid Build Coastguard Worker 
GetDeviceQueue2(VkDevice device,const VkDeviceQueueInfo2 * pQueueInfo,VkQueue * pQueue)1570*38e8c45fSAndroid Build Coastguard Worker void GetDeviceQueue2(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue) {
1571*38e8c45fSAndroid Build Coastguard Worker }
1572*38e8c45fSAndroid Build Coastguard Worker 
CreateSamplerYcbcrConversion(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)1573*38e8c45fSAndroid Build Coastguard Worker VkResult CreateSamplerYcbcrConversion(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) {
1574*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1575*38e8c45fSAndroid Build Coastguard Worker }
1576*38e8c45fSAndroid Build Coastguard Worker 
DestroySamplerYcbcrConversion(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)1577*38e8c45fSAndroid Build Coastguard Worker void DestroySamplerYcbcrConversion(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator) {
1578*38e8c45fSAndroid Build Coastguard Worker }
1579*38e8c45fSAndroid Build Coastguard Worker 
CreateDescriptorUpdateTemplate(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)1580*38e8c45fSAndroid Build Coastguard Worker VkResult CreateDescriptorUpdateTemplate(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
1581*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1582*38e8c45fSAndroid Build Coastguard Worker }
1583*38e8c45fSAndroid Build Coastguard Worker 
DestroyDescriptorUpdateTemplate(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)1584*38e8c45fSAndroid Build Coastguard Worker void DestroyDescriptorUpdateTemplate(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator) {
1585*38e8c45fSAndroid Build Coastguard Worker }
1586*38e8c45fSAndroid Build Coastguard Worker 
UpdateDescriptorSetWithTemplate(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)1587*38e8c45fSAndroid Build Coastguard Worker void UpdateDescriptorSetWithTemplate(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) {
1588*38e8c45fSAndroid Build Coastguard Worker }
1589*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceExternalBufferProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties)1590*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceExternalBufferProperties(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties) {
1591*38e8c45fSAndroid Build Coastguard Worker }
1592*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceExternalFenceProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties)1593*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceExternalFenceProperties(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties) {
1594*38e8c45fSAndroid Build Coastguard Worker }
1595*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceExternalSemaphoreProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties)1596*38e8c45fSAndroid Build Coastguard Worker void GetPhysicalDeviceExternalSemaphoreProperties(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
1597*38e8c45fSAndroid Build Coastguard Worker }
1598*38e8c45fSAndroid Build Coastguard Worker 
GetDescriptorSetLayoutSupport(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)1599*38e8c45fSAndroid Build Coastguard Worker void GetDescriptorSetLayoutSupport(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport) {
1600*38e8c45fSAndroid Build Coastguard Worker }
1601*38e8c45fSAndroid Build Coastguard Worker 
ResetQueryPool(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)1602*38e8c45fSAndroid Build Coastguard Worker void ResetQueryPool(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) {
1603*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1604*38e8c45fSAndroid Build Coastguard Worker }
1605*38e8c45fSAndroid Build Coastguard Worker 
CmdBeginRenderPass2(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo)1606*38e8c45fSAndroid Build Coastguard Worker void CmdBeginRenderPass2(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) {
1607*38e8c45fSAndroid Build Coastguard Worker }
1608*38e8c45fSAndroid Build Coastguard Worker 
CmdNextSubpass2(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo)1609*38e8c45fSAndroid Build Coastguard Worker void CmdNextSubpass2(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) {
1610*38e8c45fSAndroid Build Coastguard Worker }
1611*38e8c45fSAndroid Build Coastguard Worker 
CmdEndRenderPass2(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo)1612*38e8c45fSAndroid Build Coastguard Worker void CmdEndRenderPass2(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo) {
1613*38e8c45fSAndroid Build Coastguard Worker }
1614*38e8c45fSAndroid Build Coastguard Worker 
GetSemaphoreCounterValue(VkDevice device,VkSemaphore semaphore,uint64_t * pValue)1615*38e8c45fSAndroid Build Coastguard Worker VkResult GetSemaphoreCounterValue(VkDevice device, VkSemaphore semaphore, uint64_t* pValue) {
1616*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1617*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1618*38e8c45fSAndroid Build Coastguard Worker }
1619*38e8c45fSAndroid Build Coastguard Worker 
WaitSemaphores(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout)1620*38e8c45fSAndroid Build Coastguard Worker VkResult WaitSemaphores(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout) {
1621*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1622*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1623*38e8c45fSAndroid Build Coastguard Worker }
1624*38e8c45fSAndroid Build Coastguard Worker 
SignalSemaphore(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo)1625*38e8c45fSAndroid Build Coastguard Worker VkResult SignalSemaphore(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo) {
1626*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1627*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1628*38e8c45fSAndroid Build Coastguard Worker }
1629*38e8c45fSAndroid Build Coastguard Worker 
CmdDrawIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)1630*38e8c45fSAndroid Build Coastguard Worker void CmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) {
1631*38e8c45fSAndroid Build Coastguard Worker }
1632*38e8c45fSAndroid Build Coastguard Worker 
CmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)1633*38e8c45fSAndroid Build Coastguard Worker void CmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) {
1634*38e8c45fSAndroid Build Coastguard Worker }
1635*38e8c45fSAndroid Build Coastguard Worker 
GetBufferOpaqueCaptureAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1636*38e8c45fSAndroid Build Coastguard Worker uint64_t GetBufferOpaqueCaptureAddress(VkDevice device, const VkBufferDeviceAddressInfo* pInfo) {
1637*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1638*38e8c45fSAndroid Build Coastguard Worker     return 0;
1639*38e8c45fSAndroid Build Coastguard Worker }
1640*38e8c45fSAndroid Build Coastguard Worker 
GetBufferDeviceAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1641*38e8c45fSAndroid Build Coastguard Worker VkDeviceAddress GetBufferDeviceAddress(VkDevice device, const VkBufferDeviceAddressInfo* pInfo) {
1642*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1643*38e8c45fSAndroid Build Coastguard Worker     return (VkDeviceAddress)0;
1644*38e8c45fSAndroid Build Coastguard Worker }
1645*38e8c45fSAndroid Build Coastguard Worker 
GetDeviceMemoryOpaqueCaptureAddress(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo)1646*38e8c45fSAndroid Build Coastguard Worker uint64_t GetDeviceMemoryOpaqueCaptureAddress(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) {
1647*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1648*38e8c45fSAndroid Build Coastguard Worker     return 0;
1649*38e8c45fSAndroid Build Coastguard Worker }
1650*38e8c45fSAndroid Build Coastguard Worker 
CmdBeginRendering(VkCommandBuffer commandBuffer,const VkRenderingInfo * pRenderingInfo)1651*38e8c45fSAndroid Build Coastguard Worker void CmdBeginRendering(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo) {
1652*38e8c45fSAndroid Build Coastguard Worker }
1653*38e8c45fSAndroid Build Coastguard Worker 
CmdEndRendering(VkCommandBuffer commandBuffer)1654*38e8c45fSAndroid Build Coastguard Worker void CmdEndRendering(VkCommandBuffer commandBuffer) {
1655*38e8c45fSAndroid Build Coastguard Worker }
1656*38e8c45fSAndroid Build Coastguard Worker 
CmdBindVertexBuffers2(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes,const VkDeviceSize * pStrides)1657*38e8c45fSAndroid Build Coastguard Worker void CmdBindVertexBuffers2(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) {
1658*38e8c45fSAndroid Build Coastguard Worker }
1659*38e8c45fSAndroid Build Coastguard Worker 
CmdBlitImage2(VkCommandBuffer commandBuffer,const VkBlitImageInfo2 * pBlitImageInfo)1660*38e8c45fSAndroid Build Coastguard Worker void CmdBlitImage2(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo) {
1661*38e8c45fSAndroid Build Coastguard Worker }
1662*38e8c45fSAndroid Build Coastguard Worker 
CmdCopyBuffer2(VkCommandBuffer commandBuffer,const VkCopyBufferInfo2 * pCopyBufferInfo)1663*38e8c45fSAndroid Build Coastguard Worker void CmdCopyBuffer2(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo) {
1664*38e8c45fSAndroid Build Coastguard Worker }
1665*38e8c45fSAndroid Build Coastguard Worker 
CmdCopyImage2(VkCommandBuffer commandBuffer,const VkCopyImageInfo2 * pCopyImageInfo)1666*38e8c45fSAndroid Build Coastguard Worker void CmdCopyImage2(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo) {
1667*38e8c45fSAndroid Build Coastguard Worker }
1668*38e8c45fSAndroid Build Coastguard Worker 
CmdCopyBufferToImage2(VkCommandBuffer commandBuffer,const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo)1669*38e8c45fSAndroid Build Coastguard Worker void CmdCopyBufferToImage2(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) {
1670*38e8c45fSAndroid Build Coastguard Worker }
1671*38e8c45fSAndroid Build Coastguard Worker 
CmdCopyImageToBuffer2(VkCommandBuffer commandBuffer,const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo)1672*38e8c45fSAndroid Build Coastguard Worker void CmdCopyImageToBuffer2(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) {
1673*38e8c45fSAndroid Build Coastguard Worker }
1674*38e8c45fSAndroid Build Coastguard Worker 
CmdPipelineBarrier2(VkCommandBuffer commandBuffer,const VkDependencyInfo * pDependencyInfo)1675*38e8c45fSAndroid Build Coastguard Worker void CmdPipelineBarrier2(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo) {
1676*38e8c45fSAndroid Build Coastguard Worker }
1677*38e8c45fSAndroid Build Coastguard Worker 
CmdResetEvent2(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags2 stageMask)1678*38e8c45fSAndroid Build Coastguard Worker void CmdResetEvent2(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask) {
1679*38e8c45fSAndroid Build Coastguard Worker }
1680*38e8c45fSAndroid Build Coastguard Worker 
CmdResolveImage2(VkCommandBuffer commandBuffer,const VkResolveImageInfo2 * pResolveImageInfo)1681*38e8c45fSAndroid Build Coastguard Worker void CmdResolveImage2(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo) {
1682*38e8c45fSAndroid Build Coastguard Worker }
1683*38e8c45fSAndroid Build Coastguard Worker 
CmdSetCullMode(VkCommandBuffer commandBuffer,VkCullModeFlags cullMode)1684*38e8c45fSAndroid Build Coastguard Worker void CmdSetCullMode(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode) {
1685*38e8c45fSAndroid Build Coastguard Worker }
1686*38e8c45fSAndroid Build Coastguard Worker 
CmdSetDepthBiasEnable(VkCommandBuffer commandBuffer,VkBool32 depthBiasEnable)1687*38e8c45fSAndroid Build Coastguard Worker void CmdSetDepthBiasEnable(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable) {
1688*38e8c45fSAndroid Build Coastguard Worker }
1689*38e8c45fSAndroid Build Coastguard Worker 
CmdSetDepthBoundsTestEnable(VkCommandBuffer commandBuffer,VkBool32 depthBoundsTestEnable)1690*38e8c45fSAndroid Build Coastguard Worker void CmdSetDepthBoundsTestEnable(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable) {
1691*38e8c45fSAndroid Build Coastguard Worker }
1692*38e8c45fSAndroid Build Coastguard Worker 
CmdSetDepthCompareOp(VkCommandBuffer commandBuffer,VkCompareOp depthCompareOp)1693*38e8c45fSAndroid Build Coastguard Worker void CmdSetDepthCompareOp(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp) {
1694*38e8c45fSAndroid Build Coastguard Worker }
1695*38e8c45fSAndroid Build Coastguard Worker 
CmdSetDepthTestEnable(VkCommandBuffer commandBuffer,VkBool32 depthTestEnable)1696*38e8c45fSAndroid Build Coastguard Worker void CmdSetDepthTestEnable(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable) {
1697*38e8c45fSAndroid Build Coastguard Worker }
1698*38e8c45fSAndroid Build Coastguard Worker 
CmdSetDepthWriteEnable(VkCommandBuffer commandBuffer,VkBool32 depthWriteEnable)1699*38e8c45fSAndroid Build Coastguard Worker void CmdSetDepthWriteEnable(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable) {
1700*38e8c45fSAndroid Build Coastguard Worker }
1701*38e8c45fSAndroid Build Coastguard Worker 
CmdSetEvent2(VkCommandBuffer commandBuffer,VkEvent event,const VkDependencyInfo * pDependencyInfo)1702*38e8c45fSAndroid Build Coastguard Worker void CmdSetEvent2(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo) {
1703*38e8c45fSAndroid Build Coastguard Worker }
1704*38e8c45fSAndroid Build Coastguard Worker 
CmdSetFrontFace(VkCommandBuffer commandBuffer,VkFrontFace frontFace)1705*38e8c45fSAndroid Build Coastguard Worker void CmdSetFrontFace(VkCommandBuffer commandBuffer, VkFrontFace frontFace) {
1706*38e8c45fSAndroid Build Coastguard Worker }
1707*38e8c45fSAndroid Build Coastguard Worker 
CmdSetPrimitiveRestartEnable(VkCommandBuffer commandBuffer,VkBool32 primitiveRestartEnable)1708*38e8c45fSAndroid Build Coastguard Worker void CmdSetPrimitiveRestartEnable(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable) {
1709*38e8c45fSAndroid Build Coastguard Worker }
1710*38e8c45fSAndroid Build Coastguard Worker 
CmdSetPrimitiveTopology(VkCommandBuffer commandBuffer,VkPrimitiveTopology primitiveTopology)1711*38e8c45fSAndroid Build Coastguard Worker void CmdSetPrimitiveTopology(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology) {
1712*38e8c45fSAndroid Build Coastguard Worker }
1713*38e8c45fSAndroid Build Coastguard Worker 
CmdSetRasterizerDiscardEnable(VkCommandBuffer commandBuffer,VkBool32 rasterizerDiscardEnable)1714*38e8c45fSAndroid Build Coastguard Worker void CmdSetRasterizerDiscardEnable(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable) {
1715*38e8c45fSAndroid Build Coastguard Worker }
1716*38e8c45fSAndroid Build Coastguard Worker 
CmdSetScissorWithCount(VkCommandBuffer commandBuffer,uint32_t scissorCount,const VkRect2D * pScissors)1717*38e8c45fSAndroid Build Coastguard Worker void CmdSetScissorWithCount(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors) {
1718*38e8c45fSAndroid Build Coastguard Worker }
1719*38e8c45fSAndroid Build Coastguard Worker 
CmdSetStencilOp(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,VkStencilOp failOp,VkStencilOp passOp,VkStencilOp depthFailOp,VkCompareOp compareOp)1720*38e8c45fSAndroid Build Coastguard Worker void CmdSetStencilOp(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp) {
1721*38e8c45fSAndroid Build Coastguard Worker }
1722*38e8c45fSAndroid Build Coastguard Worker 
CmdSetStencilTestEnable(VkCommandBuffer commandBuffer,VkBool32 stencilTestEnable)1723*38e8c45fSAndroid Build Coastguard Worker void CmdSetStencilTestEnable(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable) {
1724*38e8c45fSAndroid Build Coastguard Worker }
1725*38e8c45fSAndroid Build Coastguard Worker 
CmdSetViewportWithCount(VkCommandBuffer commandBuffer,uint32_t viewportCount,const VkViewport * pViewports)1726*38e8c45fSAndroid Build Coastguard Worker void CmdSetViewportWithCount(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports) {
1727*38e8c45fSAndroid Build Coastguard Worker }
1728*38e8c45fSAndroid Build Coastguard Worker 
CmdWaitEvents2(VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,const VkDependencyInfo * pDependencyInfos)1729*38e8c45fSAndroid Build Coastguard Worker void CmdWaitEvents2(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos) {
1730*38e8c45fSAndroid Build Coastguard Worker }
1731*38e8c45fSAndroid Build Coastguard Worker 
CmdWriteTimestamp2(VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkQueryPool queryPool,uint32_t query)1732*38e8c45fSAndroid Build Coastguard Worker void CmdWriteTimestamp2(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query) {
1733*38e8c45fSAndroid Build Coastguard Worker }
1734*38e8c45fSAndroid Build Coastguard Worker 
CreatePrivateDataSlot(VkDevice device,const VkPrivateDataSlotCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlot * pPrivateDataSlot)1735*38e8c45fSAndroid Build Coastguard Worker VkResult CreatePrivateDataSlot(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot) {
1736*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1737*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1738*38e8c45fSAndroid Build Coastguard Worker }
1739*38e8c45fSAndroid Build Coastguard Worker 
DestroyPrivateDataSlot(VkDevice device,VkPrivateDataSlot privateDataSlot,const VkAllocationCallbacks * pAllocator)1740*38e8c45fSAndroid Build Coastguard Worker void DestroyPrivateDataSlot(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator) {
1741*38e8c45fSAndroid Build Coastguard Worker }
1742*38e8c45fSAndroid Build Coastguard Worker 
GetDeviceBufferMemoryRequirements(VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1743*38e8c45fSAndroid Build Coastguard Worker void GetDeviceBufferMemoryRequirements(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) {
1744*38e8c45fSAndroid Build Coastguard Worker }
1745*38e8c45fSAndroid Build Coastguard Worker 
GetDeviceImageMemoryRequirements(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1746*38e8c45fSAndroid Build Coastguard Worker void GetDeviceImageMemoryRequirements(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) {
1747*38e8c45fSAndroid Build Coastguard Worker }
1748*38e8c45fSAndroid Build Coastguard Worker 
GetDeviceImageSparseMemoryRequirements(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)1749*38e8c45fSAndroid Build Coastguard Worker void GetDeviceImageSparseMemoryRequirements(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
1750*38e8c45fSAndroid Build Coastguard Worker }
1751*38e8c45fSAndroid Build Coastguard Worker 
GetPhysicalDeviceToolProperties(VkPhysicalDevice physicalDevice,uint32_t * pToolCount,VkPhysicalDeviceToolProperties * pToolProperties)1752*38e8c45fSAndroid Build Coastguard Worker VkResult GetPhysicalDeviceToolProperties(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties) {
1753*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1754*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1755*38e8c45fSAndroid Build Coastguard Worker }
1756*38e8c45fSAndroid Build Coastguard Worker 
GetPrivateData(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t * pData)1757*38e8c45fSAndroid Build Coastguard Worker void GetPrivateData(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData) {
1758*38e8c45fSAndroid Build Coastguard Worker }
1759*38e8c45fSAndroid Build Coastguard Worker 
QueueSubmit2(VkQueue queue,uint32_t submitCount,const VkSubmitInfo2 * pSubmits,VkFence fence)1760*38e8c45fSAndroid Build Coastguard Worker VkResult QueueSubmit2(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence) {
1761*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1762*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1763*38e8c45fSAndroid Build Coastguard Worker }
1764*38e8c45fSAndroid Build Coastguard Worker 
SetPrivateData(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t data)1765*38e8c45fSAndroid Build Coastguard Worker VkResult SetPrivateData(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data) {
1766*38e8c45fSAndroid Build Coastguard Worker     ALOGV("TODO: vk%s", __FUNCTION__);
1767*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1768*38e8c45fSAndroid Build Coastguard Worker }
1769*38e8c45fSAndroid Build Coastguard Worker 
GetRenderingAreaGranularity(VkDevice device,const VkRenderingAreaInfo * pRenderingAreaInfo,VkExtent2D * pGranularity)1770*38e8c45fSAndroid Build Coastguard Worker void GetRenderingAreaGranularity(VkDevice device, const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity) {
1771*38e8c45fSAndroid Build Coastguard Worker }
1772*38e8c45fSAndroid Build Coastguard Worker 
CmdPushDescriptorSet(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t set,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites)1773*38e8c45fSAndroid Build Coastguard Worker void CmdPushDescriptorSet(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites) {
1774*38e8c45fSAndroid Build Coastguard Worker }
1775*38e8c45fSAndroid Build Coastguard Worker 
CmdPushDescriptorSetWithTemplate(VkCommandBuffer commandBuffer,VkDescriptorUpdateTemplate descriptorUpdateTemplate,VkPipelineLayout layout,uint32_t set,const void * pData)1776*38e8c45fSAndroid Build Coastguard Worker void CmdPushDescriptorSetWithTemplate(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData) {
1777*38e8c45fSAndroid Build Coastguard Worker }
1778*38e8c45fSAndroid Build Coastguard Worker 
CmdSetLineStipple(VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern)1779*38e8c45fSAndroid Build Coastguard Worker void CmdSetLineStipple(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern) {
1780*38e8c45fSAndroid Build Coastguard Worker }
1781*38e8c45fSAndroid Build Coastguard Worker 
CmdBindIndexBuffer2(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkDeviceSize size,VkIndexType indexType)1782*38e8c45fSAndroid Build Coastguard Worker void CmdBindIndexBuffer2(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType) {
1783*38e8c45fSAndroid Build Coastguard Worker }
1784*38e8c45fSAndroid Build Coastguard Worker 
CopyMemoryToImage(VkDevice device,const VkCopyMemoryToImageInfo * pCopyMemoryToImageInfo)1785*38e8c45fSAndroid Build Coastguard Worker VkResult CopyMemoryToImage(VkDevice device, const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo) {
1786*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1787*38e8c45fSAndroid Build Coastguard Worker }
1788*38e8c45fSAndroid Build Coastguard Worker 
CopyImageToMemory(VkDevice device,const VkCopyImageToMemoryInfo * pCopyImageToMemoryInfo)1789*38e8c45fSAndroid Build Coastguard Worker VkResult CopyImageToMemory(VkDevice device, const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo) {
1790*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1791*38e8c45fSAndroid Build Coastguard Worker }
1792*38e8c45fSAndroid Build Coastguard Worker 
CopyImageToImage(VkDevice device,const VkCopyImageToImageInfo * pCopyImageToImageInfo)1793*38e8c45fSAndroid Build Coastguard Worker VkResult CopyImageToImage(VkDevice device, const VkCopyImageToImageInfo* pCopyImageToImageInfo) {
1794*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1795*38e8c45fSAndroid Build Coastguard Worker }
1796*38e8c45fSAndroid Build Coastguard Worker 
TransitionImageLayout(VkDevice device,uint32_t transitionCount,const VkHostImageLayoutTransitionInfo * pTransitions)1797*38e8c45fSAndroid Build Coastguard Worker VkResult TransitionImageLayout(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfo* pTransitions) {
1798*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1799*38e8c45fSAndroid Build Coastguard Worker }
1800*38e8c45fSAndroid Build Coastguard Worker 
GetImageSubresourceLayout2(VkDevice device,VkImage image,const VkImageSubresource2 * pSubresource,VkSubresourceLayout2 * pLayout)1801*38e8c45fSAndroid Build Coastguard Worker void GetImageSubresourceLayout2(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout) {
1802*38e8c45fSAndroid Build Coastguard Worker }
1803*38e8c45fSAndroid Build Coastguard Worker 
GetDeviceImageSubresourceLayout(VkDevice device,const VkDeviceImageSubresourceInfo * pInfo,VkSubresourceLayout2 * pLayout)1804*38e8c45fSAndroid Build Coastguard Worker void GetDeviceImageSubresourceLayout(VkDevice device, const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout) {
1805*38e8c45fSAndroid Build Coastguard Worker }
1806*38e8c45fSAndroid Build Coastguard Worker 
MapMemory2(VkDevice device,const VkMemoryMapInfo * pMemoryMapInfo,void ** ppData)1807*38e8c45fSAndroid Build Coastguard Worker VkResult MapMemory2(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData) {
1808*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1809*38e8c45fSAndroid Build Coastguard Worker }
1810*38e8c45fSAndroid Build Coastguard Worker 
UnmapMemory2(VkDevice device,const VkMemoryUnmapInfo * pMemoryUnmapInfo)1811*38e8c45fSAndroid Build Coastguard Worker VkResult UnmapMemory2(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo) {
1812*38e8c45fSAndroid Build Coastguard Worker     return VK_SUCCESS;
1813*38e8c45fSAndroid Build Coastguard Worker }
1814*38e8c45fSAndroid Build Coastguard Worker 
CmdBindDescriptorSets2(VkCommandBuffer commandBuffer,const VkBindDescriptorSetsInfo * pBindDescriptorSetsInfo)1815*38e8c45fSAndroid Build Coastguard Worker void CmdBindDescriptorSets2(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo) {
1816*38e8c45fSAndroid Build Coastguard Worker }
1817*38e8c45fSAndroid Build Coastguard Worker 
CmdPushConstants2(VkCommandBuffer commandBuffer,const VkPushConstantsInfo * pPushConstantsInfo)1818*38e8c45fSAndroid Build Coastguard Worker void CmdPushConstants2(VkCommandBuffer commandBuffer, const VkPushConstantsInfo* pPushConstantsInfo) {
1819*38e8c45fSAndroid Build Coastguard Worker }
1820*38e8c45fSAndroid Build Coastguard Worker 
CmdPushDescriptorSet2(VkCommandBuffer commandBuffer,const VkPushDescriptorSetInfo * pPushDescriptorSetInfo)1821*38e8c45fSAndroid Build Coastguard Worker void CmdPushDescriptorSet2(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfo* pPushDescriptorSetInfo) {
1822*38e8c45fSAndroid Build Coastguard Worker }
1823*38e8c45fSAndroid Build Coastguard Worker 
CmdPushDescriptorSetWithTemplate2(VkCommandBuffer commandBuffer,const VkPushDescriptorSetWithTemplateInfo * pPushDescriptorSetWithTemplateInfo)1824*38e8c45fSAndroid Build Coastguard Worker void CmdPushDescriptorSetWithTemplate2(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo) {
1825*38e8c45fSAndroid Build Coastguard Worker }
1826*38e8c45fSAndroid Build Coastguard Worker 
CmdSetRenderingAttachmentLocations(VkCommandBuffer commandBuffer,const VkRenderingAttachmentLocationInfo * pLocationInfo)1827*38e8c45fSAndroid Build Coastguard Worker void CmdSetRenderingAttachmentLocations(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo) {
1828*38e8c45fSAndroid Build Coastguard Worker }
1829*38e8c45fSAndroid Build Coastguard Worker 
CmdSetRenderingInputAttachmentIndices(VkCommandBuffer commandBuffer,const VkRenderingInputAttachmentIndexInfo * pInputAttachmentIndexInfo)1830*38e8c45fSAndroid Build Coastguard Worker void CmdSetRenderingInputAttachmentIndices(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo) {
1831*38e8c45fSAndroid Build Coastguard Worker }
1832*38e8c45fSAndroid Build Coastguard Worker 
1833*38e8c45fSAndroid Build Coastguard Worker #pragma clang diagnostic pop
1834*38e8c45fSAndroid Build Coastguard Worker // clang-format on
1835*38e8c45fSAndroid Build Coastguard Worker 
1836*38e8c45fSAndroid Build Coastguard Worker }  // namespace null_driver
1837