1 //
2 // Copyright (C) 2020 The Android Open Source Project
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //      http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16 
17 // clang-format off
18 #include "native_bridge_support/vdso/interceptable_functions.h"
19 
20 DEFINE_INTERCEPTABLE_STUB_FUNCTION(android_convertGralloc0To1Usage);
21 DEFINE_INTERCEPTABLE_STUB_FUNCTION(android_convertGralloc1To0Usage);
22 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkAcquireNextImage2KHR);
23 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkAcquireNextImageKHR);
24 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkAllocateCommandBuffers);
25 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkAllocateDescriptorSets);
26 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkAllocateMemory);
27 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkBeginCommandBuffer);
28 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkBindBufferMemory);
29 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkBindBufferMemory2);
30 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkBindImageMemory);
31 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkBindImageMemory2);
32 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdBeginQuery);
33 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdBeginRenderPass);
34 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdBindDescriptorSets);
35 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdBindIndexBuffer);
36 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdBindPipeline);
37 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdBindVertexBuffers);
38 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdBlitImage);
39 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdClearAttachments);
40 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdClearColorImage);
41 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdClearDepthStencilImage);
42 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdCopyBuffer);
43 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdCopyBufferToImage);
44 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdCopyImage);
45 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdCopyImageToBuffer);
46 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdCopyQueryPoolResults);
47 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdDispatch);
48 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdDispatchBase);
49 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdDispatchIndirect);
50 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdDraw);
51 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdDrawIndexed);
52 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdDrawIndexedIndirect);
53 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdDrawIndirect);
54 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdEndQuery);
55 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdEndRenderPass);
56 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdExecuteCommands);
57 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdFillBuffer);
58 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdNextSubpass);
59 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdPipelineBarrier);
60 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdPushConstants);
61 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdResetEvent);
62 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdResetQueryPool);
63 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdResolveImage);
64 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetBlendConstants);
65 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetDepthBias);
66 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetDepthBounds);
67 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetDeviceMask);
68 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetEvent);
69 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetLineWidth);
70 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetScissor);
71 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetStencilCompareMask);
72 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetStencilReference);
73 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetStencilWriteMask);
74 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetViewport);
75 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdUpdateBuffer);
76 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdWaitEvents);
77 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdWriteTimestamp);
78 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateAndroidSurfaceKHR);
79 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateBuffer);
80 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateBufferView);
81 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateCommandPool);
82 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateComputePipelines);
83 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateDescriptorPool);
84 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateDescriptorSetLayout);
85 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateDescriptorUpdateTemplate);
86 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateDevice);
87 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateEvent);
88 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateFence);
89 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateFramebuffer);
90 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateGraphicsPipelines);
91 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateImage);
92 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateImageView);
93 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateInstance);
94 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreatePipelineCache);
95 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreatePipelineLayout);
96 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateQueryPool);
97 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateRenderPass);
98 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateSampler);
99 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateSamplerYcbcrConversion);
100 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateSemaphore);
101 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateShaderModule);
102 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateSwapchainKHR);
103 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyBuffer);
104 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyBufferView);
105 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyCommandPool);
106 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyDescriptorPool);
107 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyDescriptorSetLayout);
108 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyDescriptorUpdateTemplate);
109 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyDevice);
110 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyEvent);
111 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyFence);
112 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyFramebuffer);
113 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyImage);
114 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyImageView);
115 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyInstance);
116 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyPipeline);
117 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyPipelineCache);
118 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyPipelineLayout);
119 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyQueryPool);
120 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyRenderPass);
121 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroySampler);
122 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroySamplerYcbcrConversion);
123 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroySemaphore);
124 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyShaderModule);
125 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroySurfaceKHR);
126 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroySwapchainKHR);
127 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDeviceWaitIdle);
128 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkEndCommandBuffer);
129 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkEnumerateDeviceExtensionProperties);
130 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkEnumerateDeviceLayerProperties);
131 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkEnumerateInstanceExtensionProperties);
132 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkEnumerateInstanceLayerProperties);
133 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkEnumerateInstanceVersion);
134 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkEnumeratePhysicalDeviceGroups);
135 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkEnumeratePhysicalDevices);
136 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkFlushMappedMemoryRanges);
137 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkFreeCommandBuffers);
138 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkFreeDescriptorSets);
139 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkFreeMemory);
140 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetAndroidHardwareBufferPropertiesANDROID);
141 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetBufferMemoryRequirements);
142 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetBufferMemoryRequirements2);
143 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetDescriptorSetLayoutSupport);
144 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetDeviceGroupPeerMemoryFeatures);
145 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetDeviceGroupPresentCapabilitiesKHR);
146 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetDeviceGroupSurfacePresentModesKHR);
147 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetDeviceMemoryCommitment);
148 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetDeviceProcAddr);
149 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetDeviceQueue);
150 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetDeviceQueue2);
151 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetEventStatus);
152 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetFenceStatus);
153 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetImageMemoryRequirements);
154 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetImageMemoryRequirements2);
155 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetImageSparseMemoryRequirements);
156 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetImageSparseMemoryRequirements2);
157 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetImageSubresourceLayout);
158 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetInstanceProcAddr);
159 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetMemoryAndroidHardwareBufferANDROID);
160 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceExternalBufferProperties);
161 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceExternalFenceProperties);
162 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceExternalSemaphoreProperties);
163 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceFeatures);
164 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceFeatures2);
165 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceFormatProperties);
166 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceFormatProperties2);
167 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceImageFormatProperties);
168 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceImageFormatProperties2);
169 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceMemoryProperties);
170 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceMemoryProperties2);
171 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDevicePresentRectanglesKHR);
172 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceProperties);
173 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceProperties2);
174 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceQueueFamilyProperties);
175 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceQueueFamilyProperties2);
176 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceSparseImageFormatProperties);
177 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceSparseImageFormatProperties2);
178 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceSurfaceCapabilitiesKHR);
179 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceSurfaceFormatsKHR);
180 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceSurfacePresentModesKHR);
181 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceSurfaceSupportKHR);
182 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPipelineCacheData);
183 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetQueryPoolResults);
184 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetRenderAreaGranularity);
185 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetSwapchainImagesKHR);
186 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkInvalidateMappedMemoryRanges);
187 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkMapMemory);
188 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkMergePipelineCaches);
189 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkQueueBindSparse);
190 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkQueuePresentKHR);
191 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkQueueSubmit);
192 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkQueueWaitIdle);
193 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkResetCommandBuffer);
194 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkResetCommandPool);
195 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkResetDescriptorPool);
196 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkResetEvent);
197 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkResetFences);
198 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkSetEvent);
199 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkTrimCommandPool);
200 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkUnmapMemory);
201 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkUpdateDescriptorSetWithTemplate);
202 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkUpdateDescriptorSets);
203 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkWaitForFences);
204 
init_stub_library()205 static void __attribute__((constructor(0))) init_stub_library() {
206   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", android_convertGralloc0To1Usage);
207   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", android_convertGralloc1To0Usage);
208   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkAcquireNextImage2KHR);
209   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkAcquireNextImageKHR);
210   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkAllocateCommandBuffers);
211   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkAllocateDescriptorSets);
212   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkAllocateMemory);
213   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkBeginCommandBuffer);
214   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkBindBufferMemory);
215   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkBindBufferMemory2);
216   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkBindImageMemory);
217   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkBindImageMemory2);
218   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdBeginQuery);
219   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdBeginRenderPass);
220   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdBindDescriptorSets);
221   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdBindIndexBuffer);
222   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdBindPipeline);
223   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdBindVertexBuffers);
224   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdBlitImage);
225   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdClearAttachments);
226   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdClearColorImage);
227   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdClearDepthStencilImage);
228   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdCopyBuffer);
229   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdCopyBufferToImage);
230   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdCopyImage);
231   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdCopyImageToBuffer);
232   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdCopyQueryPoolResults);
233   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdDispatch);
234   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdDispatchBase);
235   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdDispatchIndirect);
236   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdDraw);
237   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdDrawIndexed);
238   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdDrawIndexedIndirect);
239   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdDrawIndirect);
240   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdEndQuery);
241   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdEndRenderPass);
242   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdExecuteCommands);
243   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdFillBuffer);
244   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdNextSubpass);
245   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdPipelineBarrier);
246   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdPushConstants);
247   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdResetEvent);
248   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdResetQueryPool);
249   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdResolveImage);
250   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetBlendConstants);
251   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetDepthBias);
252   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetDepthBounds);
253   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetDeviceMask);
254   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetEvent);
255   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetLineWidth);
256   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetScissor);
257   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetStencilCompareMask);
258   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetStencilReference);
259   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetStencilWriteMask);
260   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetViewport);
261   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdUpdateBuffer);
262   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdWaitEvents);
263   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdWriteTimestamp);
264   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateAndroidSurfaceKHR);
265   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateBuffer);
266   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateBufferView);
267   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateCommandPool);
268   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateComputePipelines);
269   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateDescriptorPool);
270   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateDescriptorSetLayout);
271   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateDescriptorUpdateTemplate);
272   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateDevice);
273   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateEvent);
274   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateFence);
275   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateFramebuffer);
276   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateGraphicsPipelines);
277   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateImage);
278   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateImageView);
279   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateInstance);
280   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreatePipelineCache);
281   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreatePipelineLayout);
282   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateQueryPool);
283   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateRenderPass);
284   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateSampler);
285   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateSamplerYcbcrConversion);
286   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateSemaphore);
287   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateShaderModule);
288   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateSwapchainKHR);
289   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyBuffer);
290   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyBufferView);
291   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyCommandPool);
292   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyDescriptorPool);
293   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyDescriptorSetLayout);
294   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyDescriptorUpdateTemplate);
295   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyDevice);
296   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyEvent);
297   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyFence);
298   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyFramebuffer);
299   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyImage);
300   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyImageView);
301   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyInstance);
302   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyPipeline);
303   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyPipelineCache);
304   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyPipelineLayout);
305   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyQueryPool);
306   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyRenderPass);
307   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroySampler);
308   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroySamplerYcbcrConversion);
309   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroySemaphore);
310   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyShaderModule);
311   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroySurfaceKHR);
312   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroySwapchainKHR);
313   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDeviceWaitIdle);
314   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkEndCommandBuffer);
315   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkEnumerateDeviceExtensionProperties);
316   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkEnumerateDeviceLayerProperties);
317   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkEnumerateInstanceExtensionProperties);
318   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkEnumerateInstanceLayerProperties);
319   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkEnumerateInstanceVersion);
320   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkEnumeratePhysicalDeviceGroups);
321   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkEnumeratePhysicalDevices);
322   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkFlushMappedMemoryRanges);
323   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkFreeCommandBuffers);
324   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkFreeDescriptorSets);
325   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkFreeMemory);
326   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetAndroidHardwareBufferPropertiesANDROID);
327   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetBufferMemoryRequirements);
328   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetBufferMemoryRequirements2);
329   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetDescriptorSetLayoutSupport);
330   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetDeviceGroupPeerMemoryFeatures);
331   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetDeviceGroupPresentCapabilitiesKHR);
332   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetDeviceGroupSurfacePresentModesKHR);
333   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetDeviceMemoryCommitment);
334   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetDeviceProcAddr);
335   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetDeviceQueue);
336   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetDeviceQueue2);
337   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetEventStatus);
338   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetFenceStatus);
339   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetImageMemoryRequirements);
340   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetImageMemoryRequirements2);
341   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetImageSparseMemoryRequirements);
342   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetImageSparseMemoryRequirements2);
343   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetImageSubresourceLayout);
344   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetInstanceProcAddr);
345   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetMemoryAndroidHardwareBufferANDROID);
346   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceExternalBufferProperties);
347   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceExternalFenceProperties);
348   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceExternalSemaphoreProperties);
349   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceFeatures);
350   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceFeatures2);
351   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceFormatProperties);
352   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceFormatProperties2);
353   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceImageFormatProperties);
354   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceImageFormatProperties2);
355   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceMemoryProperties);
356   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceMemoryProperties2);
357   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDevicePresentRectanglesKHR);
358   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceProperties);
359   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceProperties2);
360   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceQueueFamilyProperties);
361   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceQueueFamilyProperties2);
362   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceSparseImageFormatProperties);
363   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceSparseImageFormatProperties2);
364   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceSurfaceCapabilitiesKHR);
365   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceSurfaceFormatsKHR);
366   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceSurfacePresentModesKHR);
367   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceSurfaceSupportKHR);
368   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPipelineCacheData);
369   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetQueryPoolResults);
370   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetRenderAreaGranularity);
371   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetSwapchainImagesKHR);
372   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkInvalidateMappedMemoryRanges);
373   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkMapMemory);
374   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkMergePipelineCaches);
375   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkQueueBindSparse);
376   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkQueuePresentKHR);
377   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkQueueSubmit);
378   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkQueueWaitIdle);
379   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkResetCommandBuffer);
380   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkResetCommandPool);
381   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkResetDescriptorPool);
382   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkResetEvent);
383   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkResetFences);
384   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkSetEvent);
385   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkTrimCommandPool);
386   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkUnmapMemory);
387   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkUpdateDescriptorSetWithTemplate);
388   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkUpdateDescriptorSets);
389   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkWaitForFences);
390 }
391 // clang-format on
392