• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2016 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 // WARNING: This file is generated. See ../README.md for instructions.
18 
19 #ifndef LIBVULKAN_API_GEN_H
20 #define LIBVULKAN_API_GEN_H
21 
22 #include <vulkan/vulkan.h>
23 
24 #include <bitset>
25 
26 #include "driver_gen.h"
27 
28 namespace vulkan {
29 namespace api {
30 
31 struct InstanceDispatchTable {
32     // clang-format off
33     PFN_vkDestroyInstance DestroyInstance;
34     PFN_vkEnumeratePhysicalDevices EnumeratePhysicalDevices;
35     PFN_vkGetInstanceProcAddr GetInstanceProcAddr;
36     PFN_vkGetPhysicalDeviceProperties GetPhysicalDeviceProperties;
37     PFN_vkGetPhysicalDeviceQueueFamilyProperties GetPhysicalDeviceQueueFamilyProperties;
38     PFN_vkGetPhysicalDeviceMemoryProperties GetPhysicalDeviceMemoryProperties;
39     PFN_vkGetPhysicalDeviceFeatures GetPhysicalDeviceFeatures;
40     PFN_vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties;
41     PFN_vkGetPhysicalDeviceImageFormatProperties GetPhysicalDeviceImageFormatProperties;
42     PFN_vkCreateDevice CreateDevice;
43     PFN_vkEnumerateDeviceExtensionProperties EnumerateDeviceExtensionProperties;
44     PFN_vkGetPhysicalDeviceSparseImageFormatProperties GetPhysicalDeviceSparseImageFormatProperties;
45     PFN_vkCreateAndroidSurfaceKHR CreateAndroidSurfaceKHR;
46     PFN_vkDestroySurfaceKHR DestroySurfaceKHR;
47     PFN_vkGetPhysicalDeviceSurfaceSupportKHR GetPhysicalDeviceSurfaceSupportKHR;
48     PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR GetPhysicalDeviceSurfaceCapabilitiesKHR;
49     PFN_vkGetPhysicalDeviceSurfaceFormatsKHR GetPhysicalDeviceSurfaceFormatsKHR;
50     PFN_vkGetPhysicalDeviceSurfacePresentModesKHR GetPhysicalDeviceSurfacePresentModesKHR;
51     PFN_vkGetPhysicalDeviceFeatures2 GetPhysicalDeviceFeatures2;
52     PFN_vkGetPhysicalDeviceProperties2 GetPhysicalDeviceProperties2;
53     PFN_vkGetPhysicalDeviceFormatProperties2 GetPhysicalDeviceFormatProperties2;
54     PFN_vkGetPhysicalDeviceImageFormatProperties2 GetPhysicalDeviceImageFormatProperties2;
55     PFN_vkGetPhysicalDeviceQueueFamilyProperties2 GetPhysicalDeviceQueueFamilyProperties2;
56     PFN_vkGetPhysicalDeviceMemoryProperties2 GetPhysicalDeviceMemoryProperties2;
57     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 GetPhysicalDeviceSparseImageFormatProperties2;
58     PFN_vkGetPhysicalDeviceExternalBufferProperties GetPhysicalDeviceExternalBufferProperties;
59     PFN_vkGetPhysicalDeviceExternalSemaphoreProperties GetPhysicalDeviceExternalSemaphoreProperties;
60     PFN_vkGetPhysicalDeviceExternalFenceProperties GetPhysicalDeviceExternalFenceProperties;
61     PFN_vkEnumeratePhysicalDeviceGroups EnumeratePhysicalDeviceGroups;
62     PFN_vkGetPhysicalDevicePresentRectanglesKHR GetPhysicalDevicePresentRectanglesKHR;
63     // clang-format on
64 };
65 
66 struct DeviceDispatchTable {
67     // clang-format off
68     PFN_vkGetDeviceProcAddr GetDeviceProcAddr;
69     PFN_vkDestroyDevice DestroyDevice;
70     PFN_vkGetDeviceQueue GetDeviceQueue;
71     PFN_vkQueueSubmit QueueSubmit;
72     PFN_vkQueueWaitIdle QueueWaitIdle;
73     PFN_vkDeviceWaitIdle DeviceWaitIdle;
74     PFN_vkAllocateMemory AllocateMemory;
75     PFN_vkFreeMemory FreeMemory;
76     PFN_vkMapMemory MapMemory;
77     PFN_vkUnmapMemory UnmapMemory;
78     PFN_vkFlushMappedMemoryRanges FlushMappedMemoryRanges;
79     PFN_vkInvalidateMappedMemoryRanges InvalidateMappedMemoryRanges;
80     PFN_vkGetDeviceMemoryCommitment GetDeviceMemoryCommitment;
81     PFN_vkGetBufferMemoryRequirements GetBufferMemoryRequirements;
82     PFN_vkBindBufferMemory BindBufferMemory;
83     PFN_vkGetImageMemoryRequirements GetImageMemoryRequirements;
84     PFN_vkBindImageMemory BindImageMemory;
85     PFN_vkGetImageSparseMemoryRequirements GetImageSparseMemoryRequirements;
86     PFN_vkQueueBindSparse QueueBindSparse;
87     PFN_vkCreateFence CreateFence;
88     PFN_vkDestroyFence DestroyFence;
89     PFN_vkResetFences ResetFences;
90     PFN_vkGetFenceStatus GetFenceStatus;
91     PFN_vkWaitForFences WaitForFences;
92     PFN_vkCreateSemaphore CreateSemaphore;
93     PFN_vkDestroySemaphore DestroySemaphore;
94     PFN_vkCreateEvent CreateEvent;
95     PFN_vkDestroyEvent DestroyEvent;
96     PFN_vkGetEventStatus GetEventStatus;
97     PFN_vkSetEvent SetEvent;
98     PFN_vkResetEvent ResetEvent;
99     PFN_vkCreateQueryPool CreateQueryPool;
100     PFN_vkDestroyQueryPool DestroyQueryPool;
101     PFN_vkGetQueryPoolResults GetQueryPoolResults;
102     PFN_vkResetQueryPool ResetQueryPool;
103     PFN_vkCreateBuffer CreateBuffer;
104     PFN_vkDestroyBuffer DestroyBuffer;
105     PFN_vkCreateBufferView CreateBufferView;
106     PFN_vkDestroyBufferView DestroyBufferView;
107     PFN_vkCreateImage CreateImage;
108     PFN_vkDestroyImage DestroyImage;
109     PFN_vkGetImageSubresourceLayout GetImageSubresourceLayout;
110     PFN_vkCreateImageView CreateImageView;
111     PFN_vkDestroyImageView DestroyImageView;
112     PFN_vkCreateShaderModule CreateShaderModule;
113     PFN_vkDestroyShaderModule DestroyShaderModule;
114     PFN_vkCreatePipelineCache CreatePipelineCache;
115     PFN_vkDestroyPipelineCache DestroyPipelineCache;
116     PFN_vkGetPipelineCacheData GetPipelineCacheData;
117     PFN_vkMergePipelineCaches MergePipelineCaches;
118     PFN_vkCreateGraphicsPipelines CreateGraphicsPipelines;
119     PFN_vkCreateComputePipelines CreateComputePipelines;
120     PFN_vkDestroyPipeline DestroyPipeline;
121     PFN_vkCreatePipelineLayout CreatePipelineLayout;
122     PFN_vkDestroyPipelineLayout DestroyPipelineLayout;
123     PFN_vkCreateSampler CreateSampler;
124     PFN_vkDestroySampler DestroySampler;
125     PFN_vkCreateDescriptorSetLayout CreateDescriptorSetLayout;
126     PFN_vkDestroyDescriptorSetLayout DestroyDescriptorSetLayout;
127     PFN_vkCreateDescriptorPool CreateDescriptorPool;
128     PFN_vkDestroyDescriptorPool DestroyDescriptorPool;
129     PFN_vkResetDescriptorPool ResetDescriptorPool;
130     PFN_vkAllocateDescriptorSets AllocateDescriptorSets;
131     PFN_vkFreeDescriptorSets FreeDescriptorSets;
132     PFN_vkUpdateDescriptorSets UpdateDescriptorSets;
133     PFN_vkCreateFramebuffer CreateFramebuffer;
134     PFN_vkDestroyFramebuffer DestroyFramebuffer;
135     PFN_vkCreateRenderPass CreateRenderPass;
136     PFN_vkDestroyRenderPass DestroyRenderPass;
137     PFN_vkGetRenderAreaGranularity GetRenderAreaGranularity;
138     PFN_vkCreateCommandPool CreateCommandPool;
139     PFN_vkDestroyCommandPool DestroyCommandPool;
140     PFN_vkResetCommandPool ResetCommandPool;
141     PFN_vkAllocateCommandBuffers AllocateCommandBuffers;
142     PFN_vkFreeCommandBuffers FreeCommandBuffers;
143     PFN_vkBeginCommandBuffer BeginCommandBuffer;
144     PFN_vkEndCommandBuffer EndCommandBuffer;
145     PFN_vkResetCommandBuffer ResetCommandBuffer;
146     PFN_vkCmdBindPipeline CmdBindPipeline;
147     PFN_vkCmdSetViewport CmdSetViewport;
148     PFN_vkCmdSetScissor CmdSetScissor;
149     PFN_vkCmdSetLineWidth CmdSetLineWidth;
150     PFN_vkCmdSetDepthBias CmdSetDepthBias;
151     PFN_vkCmdSetBlendConstants CmdSetBlendConstants;
152     PFN_vkCmdSetDepthBounds CmdSetDepthBounds;
153     PFN_vkCmdSetStencilCompareMask CmdSetStencilCompareMask;
154     PFN_vkCmdSetStencilWriteMask CmdSetStencilWriteMask;
155     PFN_vkCmdSetStencilReference CmdSetStencilReference;
156     PFN_vkCmdBindDescriptorSets CmdBindDescriptorSets;
157     PFN_vkCmdBindIndexBuffer CmdBindIndexBuffer;
158     PFN_vkCmdBindVertexBuffers CmdBindVertexBuffers;
159     PFN_vkCmdDraw CmdDraw;
160     PFN_vkCmdDrawIndexed CmdDrawIndexed;
161     PFN_vkCmdDrawIndirect CmdDrawIndirect;
162     PFN_vkCmdDrawIndexedIndirect CmdDrawIndexedIndirect;
163     PFN_vkCmdDispatch CmdDispatch;
164     PFN_vkCmdDispatchIndirect CmdDispatchIndirect;
165     PFN_vkCmdCopyBuffer CmdCopyBuffer;
166     PFN_vkCmdCopyImage CmdCopyImage;
167     PFN_vkCmdBlitImage CmdBlitImage;
168     PFN_vkCmdCopyBufferToImage CmdCopyBufferToImage;
169     PFN_vkCmdCopyImageToBuffer CmdCopyImageToBuffer;
170     PFN_vkCmdUpdateBuffer CmdUpdateBuffer;
171     PFN_vkCmdFillBuffer CmdFillBuffer;
172     PFN_vkCmdClearColorImage CmdClearColorImage;
173     PFN_vkCmdClearDepthStencilImage CmdClearDepthStencilImage;
174     PFN_vkCmdClearAttachments CmdClearAttachments;
175     PFN_vkCmdResolveImage CmdResolveImage;
176     PFN_vkCmdSetEvent CmdSetEvent;
177     PFN_vkCmdResetEvent CmdResetEvent;
178     PFN_vkCmdWaitEvents CmdWaitEvents;
179     PFN_vkCmdPipelineBarrier CmdPipelineBarrier;
180     PFN_vkCmdBeginQuery CmdBeginQuery;
181     PFN_vkCmdEndQuery CmdEndQuery;
182     PFN_vkCmdResetQueryPool CmdResetQueryPool;
183     PFN_vkCmdWriteTimestamp CmdWriteTimestamp;
184     PFN_vkCmdCopyQueryPoolResults CmdCopyQueryPoolResults;
185     PFN_vkCmdPushConstants CmdPushConstants;
186     PFN_vkCmdBeginRenderPass CmdBeginRenderPass;
187     PFN_vkCmdNextSubpass CmdNextSubpass;
188     PFN_vkCmdEndRenderPass CmdEndRenderPass;
189     PFN_vkCmdExecuteCommands CmdExecuteCommands;
190     PFN_vkCreateSwapchainKHR CreateSwapchainKHR;
191     PFN_vkDestroySwapchainKHR DestroySwapchainKHR;
192     PFN_vkGetSwapchainImagesKHR GetSwapchainImagesKHR;
193     PFN_vkAcquireNextImageKHR AcquireNextImageKHR;
194     PFN_vkQueuePresentKHR QueuePresentKHR;
195     PFN_vkTrimCommandPool TrimCommandPool;
196     PFN_vkGetDeviceGroupPeerMemoryFeatures GetDeviceGroupPeerMemoryFeatures;
197     PFN_vkBindBufferMemory2 BindBufferMemory2;
198     PFN_vkBindImageMemory2 BindImageMemory2;
199     PFN_vkCmdSetDeviceMask CmdSetDeviceMask;
200     PFN_vkGetDeviceGroupPresentCapabilitiesKHR GetDeviceGroupPresentCapabilitiesKHR;
201     PFN_vkGetDeviceGroupSurfacePresentModesKHR GetDeviceGroupSurfacePresentModesKHR;
202     PFN_vkAcquireNextImage2KHR AcquireNextImage2KHR;
203     PFN_vkCmdDispatchBase CmdDispatchBase;
204     PFN_vkCreateDescriptorUpdateTemplate CreateDescriptorUpdateTemplate;
205     PFN_vkDestroyDescriptorUpdateTemplate DestroyDescriptorUpdateTemplate;
206     PFN_vkUpdateDescriptorSetWithTemplate UpdateDescriptorSetWithTemplate;
207     PFN_vkGetBufferMemoryRequirements2 GetBufferMemoryRequirements2;
208     PFN_vkGetImageMemoryRequirements2 GetImageMemoryRequirements2;
209     PFN_vkGetImageSparseMemoryRequirements2 GetImageSparseMemoryRequirements2;
210     PFN_vkCreateSamplerYcbcrConversion CreateSamplerYcbcrConversion;
211     PFN_vkDestroySamplerYcbcrConversion DestroySamplerYcbcrConversion;
212     PFN_vkGetDeviceQueue2 GetDeviceQueue2;
213     PFN_vkGetDescriptorSetLayoutSupport GetDescriptorSetLayoutSupport;
214     PFN_vkCreateRenderPass2 CreateRenderPass2;
215     PFN_vkCmdBeginRenderPass2 CmdBeginRenderPass2;
216     PFN_vkCmdNextSubpass2 CmdNextSubpass2;
217     PFN_vkCmdEndRenderPass2 CmdEndRenderPass2;
218     PFN_vkGetSemaphoreCounterValue GetSemaphoreCounterValue;
219     PFN_vkWaitSemaphores WaitSemaphores;
220     PFN_vkSignalSemaphore SignalSemaphore;
221     PFN_vkGetAndroidHardwareBufferPropertiesANDROID GetAndroidHardwareBufferPropertiesANDROID;
222     PFN_vkGetMemoryAndroidHardwareBufferANDROID GetMemoryAndroidHardwareBufferANDROID;
223     PFN_vkCmdDrawIndirectCount CmdDrawIndirectCount;
224     PFN_vkCmdDrawIndexedIndirectCount CmdDrawIndexedIndirectCount;
225     PFN_vkGetBufferOpaqueCaptureAddress GetBufferOpaqueCaptureAddress;
226     PFN_vkGetBufferDeviceAddress GetBufferDeviceAddress;
227     PFN_vkGetDeviceMemoryOpaqueCaptureAddress GetDeviceMemoryOpaqueCaptureAddress;
228     // clang-format on
229 };
230 
231 bool InitDispatchTable(
232     VkInstance instance,
233     PFN_vkGetInstanceProcAddr get_proc,
234     const std::bitset<driver::ProcHook::EXTENSION_COUNT>& extensions);
235 bool InitDispatchTable(
236     VkDevice dev,
237     PFN_vkGetDeviceProcAddr get_proc,
238     const std::bitset<driver::ProcHook::EXTENSION_COUNT>& extensions);
239 
240 }  // namespace api
241 }  // namespace vulkan
242 
243 #endif  // LIBVULKAN_API_GEN_H
244