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