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(vkCmdBeginRenderPass2);
35 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdBindDescriptorSets);
36 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdBindIndexBuffer);
37 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdBindPipeline);
38 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdBindVertexBuffers);
39 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdBlitImage);
40 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdClearAttachments);
41 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdClearColorImage);
42 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdClearDepthStencilImage);
43 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdCopyBuffer);
44 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdCopyBufferToImage);
45 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdCopyImage);
46 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdCopyImageToBuffer);
47 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdCopyQueryPoolResults);
48 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdDispatch);
49 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdDispatchBase);
50 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdDispatchIndirect);
51 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdDraw);
52 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdDrawIndexed);
53 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdDrawIndexedIndirect);
54 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdDrawIndexedIndirectCount);
55 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdDrawIndirect);
56 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdDrawIndirectCount);
57 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdEndQuery);
58 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdEndRenderPass);
59 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdEndRenderPass2);
60 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdExecuteCommands);
61 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdFillBuffer);
62 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdNextSubpass);
63 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdNextSubpass2);
64 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdPipelineBarrier);
65 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdPushConstants);
66 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdResetEvent);
67 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdResetQueryPool);
68 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdResolveImage);
69 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetBlendConstants);
70 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetDepthBias);
71 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetDepthBounds);
72 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetDeviceMask);
73 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetEvent);
74 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetLineWidth);
75 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetScissor);
76 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetStencilCompareMask);
77 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetStencilReference);
78 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetStencilWriteMask);
79 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdSetViewport);
80 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdUpdateBuffer);
81 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdWaitEvents);
82 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCmdWriteTimestamp);
83 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateAndroidSurfaceKHR);
84 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateBuffer);
85 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateBufferView);
86 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateCommandPool);
87 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateComputePipelines);
88 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateDescriptorPool);
89 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateDescriptorSetLayout);
90 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateDescriptorUpdateTemplate);
91 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateDevice);
92 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateEvent);
93 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateFence);
94 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateFramebuffer);
95 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateGraphicsPipelines);
96 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateImage);
97 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateImageView);
98 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateInstance);
99 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreatePipelineCache);
100 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreatePipelineLayout);
101 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateQueryPool);
102 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateRenderPass);
103 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateRenderPass2);
104 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateSampler);
105 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateSamplerYcbcrConversion);
106 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateSemaphore);
107 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateShaderModule);
108 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkCreateSwapchainKHR);
109 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyBuffer);
110 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyBufferView);
111 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyCommandPool);
112 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyDescriptorPool);
113 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyDescriptorSetLayout);
114 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyDescriptorUpdateTemplate);
115 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyDevice);
116 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyEvent);
117 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyFence);
118 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyFramebuffer);
119 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyImage);
120 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyImageView);
121 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyInstance);
122 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyPipeline);
123 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyPipelineCache);
124 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyPipelineLayout);
125 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyQueryPool);
126 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyRenderPass);
127 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroySampler);
128 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroySamplerYcbcrConversion);
129 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroySemaphore);
130 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroyShaderModule);
131 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroySurfaceKHR);
132 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDestroySwapchainKHR);
133 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkDeviceWaitIdle);
134 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkEndCommandBuffer);
135 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkEnumerateDeviceExtensionProperties);
136 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkEnumerateDeviceLayerProperties);
137 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkEnumerateInstanceExtensionProperties);
138 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkEnumerateInstanceLayerProperties);
139 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkEnumerateInstanceVersion);
140 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkEnumeratePhysicalDeviceGroups);
141 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkEnumeratePhysicalDevices);
142 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkFlushMappedMemoryRanges);
143 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkFreeCommandBuffers);
144 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkFreeDescriptorSets);
145 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkFreeMemory);
146 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetAndroidHardwareBufferPropertiesANDROID);
147 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetBufferDeviceAddress);
148 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetBufferMemoryRequirements);
149 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetBufferMemoryRequirements2);
150 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetBufferOpaqueCaptureAddress);
151 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetDescriptorSetLayoutSupport);
152 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetDeviceGroupPeerMemoryFeatures);
153 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetDeviceGroupPresentCapabilitiesKHR);
154 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetDeviceGroupSurfacePresentModesKHR);
155 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetDeviceMemoryCommitment);
156 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetDeviceMemoryOpaqueCaptureAddress);
157 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetDeviceProcAddr);
158 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetDeviceQueue);
159 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetDeviceQueue2);
160 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetEventStatus);
161 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetFenceStatus);
162 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetImageMemoryRequirements);
163 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetImageMemoryRequirements2);
164 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetImageSparseMemoryRequirements);
165 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetImageSparseMemoryRequirements2);
166 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetImageSubresourceLayout);
167 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetInstanceProcAddr);
168 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetMemoryAndroidHardwareBufferANDROID);
169 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceExternalBufferProperties);
170 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceExternalFenceProperties);
171 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceExternalSemaphoreProperties);
172 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceFeatures);
173 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceFeatures2);
174 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceFormatProperties);
175 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceFormatProperties2);
176 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceImageFormatProperties);
177 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceImageFormatProperties2);
178 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceMemoryProperties);
179 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceMemoryProperties2);
180 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDevicePresentRectanglesKHR);
181 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceProperties);
182 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceProperties2);
183 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceQueueFamilyProperties);
184 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceQueueFamilyProperties2);
185 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceSparseImageFormatProperties);
186 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceSparseImageFormatProperties2);
187 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceSurfaceCapabilitiesKHR);
188 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceSurfaceFormatsKHR);
189 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceSurfacePresentModesKHR);
190 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPhysicalDeviceSurfaceSupportKHR);
191 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetPipelineCacheData);
192 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetQueryPoolResults);
193 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetRenderAreaGranularity);
194 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetSemaphoreCounterValue);
195 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkGetSwapchainImagesKHR);
196 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkInvalidateMappedMemoryRanges);
197 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkMapMemory);
198 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkMergePipelineCaches);
199 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkQueueBindSparse);
200 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkQueuePresentKHR);
201 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkQueueSubmit);
202 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkQueueWaitIdle);
203 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkResetCommandBuffer);
204 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkResetCommandPool);
205 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkResetDescriptorPool);
206 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkResetEvent);
207 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkResetFences);
208 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkResetQueryPool);
209 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkSetEvent);
210 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkSignalSemaphore);
211 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkTrimCommandPool);
212 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkUnmapMemory);
213 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkUpdateDescriptorSetWithTemplate);
214 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkUpdateDescriptorSets);
215 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkWaitForFences);
216 DEFINE_INTERCEPTABLE_STUB_FUNCTION(vkWaitSemaphores);
217 
init_stub_library()218 static void __attribute__((constructor(0))) init_stub_library() {
219   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", android_convertGralloc0To1Usage);
220   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", android_convertGralloc1To0Usage);
221   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkAcquireNextImage2KHR);
222   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkAcquireNextImageKHR);
223   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkAllocateCommandBuffers);
224   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkAllocateDescriptorSets);
225   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkAllocateMemory);
226   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkBeginCommandBuffer);
227   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkBindBufferMemory);
228   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkBindBufferMemory2);
229   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkBindImageMemory);
230   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkBindImageMemory2);
231   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdBeginQuery);
232   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdBeginRenderPass);
233   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdBeginRenderPass2);
234   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdBindDescriptorSets);
235   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdBindIndexBuffer);
236   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdBindPipeline);
237   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdBindVertexBuffers);
238   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdBlitImage);
239   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdClearAttachments);
240   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdClearColorImage);
241   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdClearDepthStencilImage);
242   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdCopyBuffer);
243   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdCopyBufferToImage);
244   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdCopyImage);
245   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdCopyImageToBuffer);
246   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdCopyQueryPoolResults);
247   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdDispatch);
248   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdDispatchBase);
249   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdDispatchIndirect);
250   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdDraw);
251   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdDrawIndexed);
252   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdDrawIndexedIndirect);
253   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdDrawIndexedIndirectCount);
254   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdDrawIndirect);
255   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdDrawIndirectCount);
256   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdEndQuery);
257   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdEndRenderPass);
258   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdEndRenderPass2);
259   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdExecuteCommands);
260   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdFillBuffer);
261   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdNextSubpass);
262   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdNextSubpass2);
263   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdPipelineBarrier);
264   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdPushConstants);
265   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdResetEvent);
266   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdResetQueryPool);
267   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdResolveImage);
268   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetBlendConstants);
269   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetDepthBias);
270   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetDepthBounds);
271   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetDeviceMask);
272   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetEvent);
273   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetLineWidth);
274   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetScissor);
275   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetStencilCompareMask);
276   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetStencilReference);
277   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetStencilWriteMask);
278   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdSetViewport);
279   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdUpdateBuffer);
280   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdWaitEvents);
281   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCmdWriteTimestamp);
282   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateAndroidSurfaceKHR);
283   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateBuffer);
284   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateBufferView);
285   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateCommandPool);
286   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateComputePipelines);
287   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateDescriptorPool);
288   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateDescriptorSetLayout);
289   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateDescriptorUpdateTemplate);
290   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateDevice);
291   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateEvent);
292   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateFence);
293   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateFramebuffer);
294   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateGraphicsPipelines);
295   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateImage);
296   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateImageView);
297   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateInstance);
298   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreatePipelineCache);
299   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreatePipelineLayout);
300   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateQueryPool);
301   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateRenderPass);
302   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateRenderPass2);
303   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateSampler);
304   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateSamplerYcbcrConversion);
305   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateSemaphore);
306   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateShaderModule);
307   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkCreateSwapchainKHR);
308   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyBuffer);
309   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyBufferView);
310   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyCommandPool);
311   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyDescriptorPool);
312   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyDescriptorSetLayout);
313   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyDescriptorUpdateTemplate);
314   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyDevice);
315   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyEvent);
316   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyFence);
317   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyFramebuffer);
318   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyImage);
319   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyImageView);
320   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyInstance);
321   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyPipeline);
322   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyPipelineCache);
323   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyPipelineLayout);
324   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyQueryPool);
325   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyRenderPass);
326   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroySampler);
327   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroySamplerYcbcrConversion);
328   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroySemaphore);
329   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroyShaderModule);
330   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroySurfaceKHR);
331   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDestroySwapchainKHR);
332   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkDeviceWaitIdle);
333   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkEndCommandBuffer);
334   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkEnumerateDeviceExtensionProperties);
335   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkEnumerateDeviceLayerProperties);
336   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkEnumerateInstanceExtensionProperties);
337   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkEnumerateInstanceLayerProperties);
338   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkEnumerateInstanceVersion);
339   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkEnumeratePhysicalDeviceGroups);
340   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkEnumeratePhysicalDevices);
341   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkFlushMappedMemoryRanges);
342   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkFreeCommandBuffers);
343   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkFreeDescriptorSets);
344   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkFreeMemory);
345   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetAndroidHardwareBufferPropertiesANDROID);
346   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetBufferDeviceAddress);
347   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetBufferMemoryRequirements);
348   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetBufferMemoryRequirements2);
349   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetBufferOpaqueCaptureAddress);
350   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetDescriptorSetLayoutSupport);
351   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetDeviceGroupPeerMemoryFeatures);
352   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetDeviceGroupPresentCapabilitiesKHR);
353   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetDeviceGroupSurfacePresentModesKHR);
354   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetDeviceMemoryCommitment);
355   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetDeviceMemoryOpaqueCaptureAddress);
356   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetDeviceProcAddr);
357   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetDeviceQueue);
358   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetDeviceQueue2);
359   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetEventStatus);
360   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetFenceStatus);
361   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetImageMemoryRequirements);
362   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetImageMemoryRequirements2);
363   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetImageSparseMemoryRequirements);
364   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetImageSparseMemoryRequirements2);
365   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetImageSubresourceLayout);
366   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetInstanceProcAddr);
367   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetMemoryAndroidHardwareBufferANDROID);
368   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceExternalBufferProperties);
369   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceExternalFenceProperties);
370   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceExternalSemaphoreProperties);
371   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceFeatures);
372   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceFeatures2);
373   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceFormatProperties);
374   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceFormatProperties2);
375   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceImageFormatProperties);
376   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceImageFormatProperties2);
377   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceMemoryProperties);
378   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceMemoryProperties2);
379   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDevicePresentRectanglesKHR);
380   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceProperties);
381   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceProperties2);
382   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceQueueFamilyProperties);
383   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceQueueFamilyProperties2);
384   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceSparseImageFormatProperties);
385   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceSparseImageFormatProperties2);
386   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceSurfaceCapabilitiesKHR);
387   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceSurfaceFormatsKHR);
388   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceSurfacePresentModesKHR);
389   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPhysicalDeviceSurfaceSupportKHR);
390   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetPipelineCacheData);
391   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetQueryPoolResults);
392   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetRenderAreaGranularity);
393   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetSemaphoreCounterValue);
394   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkGetSwapchainImagesKHR);
395   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkInvalidateMappedMemoryRanges);
396   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkMapMemory);
397   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkMergePipelineCaches);
398   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkQueueBindSparse);
399   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkQueuePresentKHR);
400   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkQueueSubmit);
401   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkQueueWaitIdle);
402   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkResetCommandBuffer);
403   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkResetCommandPool);
404   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkResetDescriptorPool);
405   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkResetEvent);
406   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkResetFences);
407   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkResetQueryPool);
408   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkSetEvent);
409   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkSignalSemaphore);
410   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkTrimCommandPool);
411   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkUnmapMemory);
412   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkUpdateDescriptorSetWithTemplate);
413   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkUpdateDescriptorSets);
414   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkWaitForFences);
415   INIT_INTERCEPTABLE_STUB_FUNCTION("libvulkan.so", vkWaitSemaphores);
416 }
417 // clang-format on
418