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 /* 29 * This file is autogenerated by api_generator.py. Do not edit directly. 30 */ 31 namespace vulkan { 32 namespace api { 33 34 struct InstanceDispatchTable { 35 // clang-format off 36 PFN_vkDestroyInstance DestroyInstance; 37 PFN_vkEnumeratePhysicalDevices EnumeratePhysicalDevices; 38 PFN_vkGetInstanceProcAddr GetInstanceProcAddr; 39 PFN_vkGetPhysicalDeviceProperties GetPhysicalDeviceProperties; 40 PFN_vkGetPhysicalDeviceQueueFamilyProperties GetPhysicalDeviceQueueFamilyProperties; 41 PFN_vkGetPhysicalDeviceMemoryProperties GetPhysicalDeviceMemoryProperties; 42 PFN_vkGetPhysicalDeviceFeatures GetPhysicalDeviceFeatures; 43 PFN_vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties; 44 PFN_vkGetPhysicalDeviceImageFormatProperties GetPhysicalDeviceImageFormatProperties; 45 PFN_vkCreateDevice CreateDevice; 46 PFN_vkEnumerateDeviceExtensionProperties EnumerateDeviceExtensionProperties; 47 PFN_vkGetPhysicalDeviceSparseImageFormatProperties GetPhysicalDeviceSparseImageFormatProperties; 48 PFN_vkCreateAndroidSurfaceKHR CreateAndroidSurfaceKHR; 49 PFN_vkDestroySurfaceKHR DestroySurfaceKHR; 50 PFN_vkGetPhysicalDeviceSurfaceSupportKHR GetPhysicalDeviceSurfaceSupportKHR; 51 PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR GetPhysicalDeviceSurfaceCapabilitiesKHR; 52 PFN_vkGetPhysicalDeviceSurfaceFormatsKHR GetPhysicalDeviceSurfaceFormatsKHR; 53 PFN_vkGetPhysicalDeviceSurfacePresentModesKHR GetPhysicalDeviceSurfacePresentModesKHR; 54 PFN_vkGetPhysicalDeviceFeatures2 GetPhysicalDeviceFeatures2; 55 PFN_vkGetPhysicalDeviceProperties2 GetPhysicalDeviceProperties2; 56 PFN_vkGetPhysicalDeviceFormatProperties2 GetPhysicalDeviceFormatProperties2; 57 PFN_vkGetPhysicalDeviceImageFormatProperties2 GetPhysicalDeviceImageFormatProperties2; 58 PFN_vkGetPhysicalDeviceQueueFamilyProperties2 GetPhysicalDeviceQueueFamilyProperties2; 59 PFN_vkGetPhysicalDeviceMemoryProperties2 GetPhysicalDeviceMemoryProperties2; 60 PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 GetPhysicalDeviceSparseImageFormatProperties2; 61 PFN_vkGetPhysicalDeviceExternalBufferProperties GetPhysicalDeviceExternalBufferProperties; 62 PFN_vkGetPhysicalDeviceExternalSemaphoreProperties GetPhysicalDeviceExternalSemaphoreProperties; 63 PFN_vkGetPhysicalDeviceExternalFenceProperties GetPhysicalDeviceExternalFenceProperties; 64 PFN_vkEnumeratePhysicalDeviceGroups EnumeratePhysicalDeviceGroups; 65 PFN_vkGetPhysicalDevicePresentRectanglesKHR GetPhysicalDevicePresentRectanglesKHR; 66 PFN_vkGetPhysicalDeviceToolProperties GetPhysicalDeviceToolProperties; 67 // clang-format on 68 }; 69 70 struct DeviceDispatchTable { 71 // clang-format off 72 PFN_vkGetDeviceProcAddr GetDeviceProcAddr; 73 PFN_vkDestroyDevice DestroyDevice; 74 PFN_vkGetDeviceQueue GetDeviceQueue; 75 PFN_vkQueueSubmit QueueSubmit; 76 PFN_vkQueueWaitIdle QueueWaitIdle; 77 PFN_vkDeviceWaitIdle DeviceWaitIdle; 78 PFN_vkAllocateMemory AllocateMemory; 79 PFN_vkFreeMemory FreeMemory; 80 PFN_vkMapMemory MapMemory; 81 PFN_vkUnmapMemory UnmapMemory; 82 PFN_vkFlushMappedMemoryRanges FlushMappedMemoryRanges; 83 PFN_vkInvalidateMappedMemoryRanges InvalidateMappedMemoryRanges; 84 PFN_vkGetDeviceMemoryCommitment GetDeviceMemoryCommitment; 85 PFN_vkGetBufferMemoryRequirements GetBufferMemoryRequirements; 86 PFN_vkBindBufferMemory BindBufferMemory; 87 PFN_vkGetImageMemoryRequirements GetImageMemoryRequirements; 88 PFN_vkBindImageMemory BindImageMemory; 89 PFN_vkGetImageSparseMemoryRequirements GetImageSparseMemoryRequirements; 90 PFN_vkQueueBindSparse QueueBindSparse; 91 PFN_vkCreateFence CreateFence; 92 PFN_vkDestroyFence DestroyFence; 93 PFN_vkResetFences ResetFences; 94 PFN_vkGetFenceStatus GetFenceStatus; 95 PFN_vkWaitForFences WaitForFences; 96 PFN_vkCreateSemaphore CreateSemaphore; 97 PFN_vkDestroySemaphore DestroySemaphore; 98 PFN_vkCreateEvent CreateEvent; 99 PFN_vkDestroyEvent DestroyEvent; 100 PFN_vkGetEventStatus GetEventStatus; 101 PFN_vkSetEvent SetEvent; 102 PFN_vkResetEvent ResetEvent; 103 PFN_vkCreateQueryPool CreateQueryPool; 104 PFN_vkDestroyQueryPool DestroyQueryPool; 105 PFN_vkGetQueryPoolResults GetQueryPoolResults; 106 PFN_vkResetQueryPool ResetQueryPool; 107 PFN_vkCreateBuffer CreateBuffer; 108 PFN_vkDestroyBuffer DestroyBuffer; 109 PFN_vkCreateBufferView CreateBufferView; 110 PFN_vkDestroyBufferView DestroyBufferView; 111 PFN_vkCreateImage CreateImage; 112 PFN_vkDestroyImage DestroyImage; 113 PFN_vkGetImageSubresourceLayout GetImageSubresourceLayout; 114 PFN_vkCreateImageView CreateImageView; 115 PFN_vkDestroyImageView DestroyImageView; 116 PFN_vkCreateShaderModule CreateShaderModule; 117 PFN_vkDestroyShaderModule DestroyShaderModule; 118 PFN_vkCreatePipelineCache CreatePipelineCache; 119 PFN_vkDestroyPipelineCache DestroyPipelineCache; 120 PFN_vkGetPipelineCacheData GetPipelineCacheData; 121 PFN_vkMergePipelineCaches MergePipelineCaches; 122 PFN_vkCreateGraphicsPipelines CreateGraphicsPipelines; 123 PFN_vkCreateComputePipelines CreateComputePipelines; 124 PFN_vkDestroyPipeline DestroyPipeline; 125 PFN_vkCreatePipelineLayout CreatePipelineLayout; 126 PFN_vkDestroyPipelineLayout DestroyPipelineLayout; 127 PFN_vkCreateSampler CreateSampler; 128 PFN_vkDestroySampler DestroySampler; 129 PFN_vkCreateDescriptorSetLayout CreateDescriptorSetLayout; 130 PFN_vkDestroyDescriptorSetLayout DestroyDescriptorSetLayout; 131 PFN_vkCreateDescriptorPool CreateDescriptorPool; 132 PFN_vkDestroyDescriptorPool DestroyDescriptorPool; 133 PFN_vkResetDescriptorPool ResetDescriptorPool; 134 PFN_vkAllocateDescriptorSets AllocateDescriptorSets; 135 PFN_vkFreeDescriptorSets FreeDescriptorSets; 136 PFN_vkUpdateDescriptorSets UpdateDescriptorSets; 137 PFN_vkCreateFramebuffer CreateFramebuffer; 138 PFN_vkDestroyFramebuffer DestroyFramebuffer; 139 PFN_vkCreateRenderPass CreateRenderPass; 140 PFN_vkDestroyRenderPass DestroyRenderPass; 141 PFN_vkGetRenderAreaGranularity GetRenderAreaGranularity; 142 PFN_vkGetRenderingAreaGranularity GetRenderingAreaGranularity; 143 PFN_vkCreateCommandPool CreateCommandPool; 144 PFN_vkDestroyCommandPool DestroyCommandPool; 145 PFN_vkResetCommandPool ResetCommandPool; 146 PFN_vkAllocateCommandBuffers AllocateCommandBuffers; 147 PFN_vkFreeCommandBuffers FreeCommandBuffers; 148 PFN_vkBeginCommandBuffer BeginCommandBuffer; 149 PFN_vkEndCommandBuffer EndCommandBuffer; 150 PFN_vkResetCommandBuffer ResetCommandBuffer; 151 PFN_vkCmdBindPipeline CmdBindPipeline; 152 PFN_vkCmdSetViewport CmdSetViewport; 153 PFN_vkCmdSetScissor CmdSetScissor; 154 PFN_vkCmdSetLineWidth CmdSetLineWidth; 155 PFN_vkCmdSetDepthBias CmdSetDepthBias; 156 PFN_vkCmdSetBlendConstants CmdSetBlendConstants; 157 PFN_vkCmdSetDepthBounds CmdSetDepthBounds; 158 PFN_vkCmdSetStencilCompareMask CmdSetStencilCompareMask; 159 PFN_vkCmdSetStencilWriteMask CmdSetStencilWriteMask; 160 PFN_vkCmdSetStencilReference CmdSetStencilReference; 161 PFN_vkCmdBindDescriptorSets CmdBindDescriptorSets; 162 PFN_vkCmdBindIndexBuffer CmdBindIndexBuffer; 163 PFN_vkCmdBindVertexBuffers CmdBindVertexBuffers; 164 PFN_vkCmdDraw CmdDraw; 165 PFN_vkCmdDrawIndexed CmdDrawIndexed; 166 PFN_vkCmdDrawIndirect CmdDrawIndirect; 167 PFN_vkCmdDrawIndexedIndirect CmdDrawIndexedIndirect; 168 PFN_vkCmdDispatch CmdDispatch; 169 PFN_vkCmdDispatchIndirect CmdDispatchIndirect; 170 PFN_vkCmdCopyBuffer CmdCopyBuffer; 171 PFN_vkCmdCopyImage CmdCopyImage; 172 PFN_vkCmdBlitImage CmdBlitImage; 173 PFN_vkCmdCopyBufferToImage CmdCopyBufferToImage; 174 PFN_vkCmdCopyImageToBuffer CmdCopyImageToBuffer; 175 PFN_vkCmdUpdateBuffer CmdUpdateBuffer; 176 PFN_vkCmdFillBuffer CmdFillBuffer; 177 PFN_vkCmdClearColorImage CmdClearColorImage; 178 PFN_vkCmdClearDepthStencilImage CmdClearDepthStencilImage; 179 PFN_vkCmdClearAttachments CmdClearAttachments; 180 PFN_vkCmdResolveImage CmdResolveImage; 181 PFN_vkCmdSetEvent CmdSetEvent; 182 PFN_vkCmdResetEvent CmdResetEvent; 183 PFN_vkCmdWaitEvents CmdWaitEvents; 184 PFN_vkCmdPipelineBarrier CmdPipelineBarrier; 185 PFN_vkCmdBeginQuery CmdBeginQuery; 186 PFN_vkCmdEndQuery CmdEndQuery; 187 PFN_vkCmdResetQueryPool CmdResetQueryPool; 188 PFN_vkCmdWriteTimestamp CmdWriteTimestamp; 189 PFN_vkCmdCopyQueryPoolResults CmdCopyQueryPoolResults; 190 PFN_vkCmdPushConstants CmdPushConstants; 191 PFN_vkCmdBeginRenderPass CmdBeginRenderPass; 192 PFN_vkCmdNextSubpass CmdNextSubpass; 193 PFN_vkCmdEndRenderPass CmdEndRenderPass; 194 PFN_vkCmdExecuteCommands CmdExecuteCommands; 195 PFN_vkCreateSwapchainKHR CreateSwapchainKHR; 196 PFN_vkDestroySwapchainKHR DestroySwapchainKHR; 197 PFN_vkGetSwapchainImagesKHR GetSwapchainImagesKHR; 198 PFN_vkAcquireNextImageKHR AcquireNextImageKHR; 199 PFN_vkQueuePresentKHR QueuePresentKHR; 200 PFN_vkCmdPushDescriptorSet CmdPushDescriptorSet; 201 PFN_vkTrimCommandPool TrimCommandPool; 202 PFN_vkGetDeviceGroupPeerMemoryFeatures GetDeviceGroupPeerMemoryFeatures; 203 PFN_vkBindBufferMemory2 BindBufferMemory2; 204 PFN_vkBindImageMemory2 BindImageMemory2; 205 PFN_vkCmdSetDeviceMask CmdSetDeviceMask; 206 PFN_vkGetDeviceGroupPresentCapabilitiesKHR GetDeviceGroupPresentCapabilitiesKHR; 207 PFN_vkGetDeviceGroupSurfacePresentModesKHR GetDeviceGroupSurfacePresentModesKHR; 208 PFN_vkAcquireNextImage2KHR AcquireNextImage2KHR; 209 PFN_vkCmdDispatchBase CmdDispatchBase; 210 PFN_vkCreateDescriptorUpdateTemplate CreateDescriptorUpdateTemplate; 211 PFN_vkDestroyDescriptorUpdateTemplate DestroyDescriptorUpdateTemplate; 212 PFN_vkUpdateDescriptorSetWithTemplate UpdateDescriptorSetWithTemplate; 213 PFN_vkCmdPushDescriptorSetWithTemplate CmdPushDescriptorSetWithTemplate; 214 PFN_vkGetBufferMemoryRequirements2 GetBufferMemoryRequirements2; 215 PFN_vkGetImageMemoryRequirements2 GetImageMemoryRequirements2; 216 PFN_vkGetImageSparseMemoryRequirements2 GetImageSparseMemoryRequirements2; 217 PFN_vkGetDeviceBufferMemoryRequirements GetDeviceBufferMemoryRequirements; 218 PFN_vkGetDeviceImageMemoryRequirements GetDeviceImageMemoryRequirements; 219 PFN_vkGetDeviceImageSparseMemoryRequirements GetDeviceImageSparseMemoryRequirements; 220 PFN_vkCreateSamplerYcbcrConversion CreateSamplerYcbcrConversion; 221 PFN_vkDestroySamplerYcbcrConversion DestroySamplerYcbcrConversion; 222 PFN_vkGetDeviceQueue2 GetDeviceQueue2; 223 PFN_vkGetDescriptorSetLayoutSupport GetDescriptorSetLayoutSupport; 224 PFN_vkCreateRenderPass2 CreateRenderPass2; 225 PFN_vkCmdBeginRenderPass2 CmdBeginRenderPass2; 226 PFN_vkCmdNextSubpass2 CmdNextSubpass2; 227 PFN_vkCmdEndRenderPass2 CmdEndRenderPass2; 228 PFN_vkGetSemaphoreCounterValue GetSemaphoreCounterValue; 229 PFN_vkWaitSemaphores WaitSemaphores; 230 PFN_vkSignalSemaphore SignalSemaphore; 231 PFN_vkGetAndroidHardwareBufferPropertiesANDROID GetAndroidHardwareBufferPropertiesANDROID; 232 PFN_vkGetMemoryAndroidHardwareBufferANDROID GetMemoryAndroidHardwareBufferANDROID; 233 PFN_vkCmdDrawIndirectCount CmdDrawIndirectCount; 234 PFN_vkCmdDrawIndexedIndirectCount CmdDrawIndexedIndirectCount; 235 PFN_vkGetBufferOpaqueCaptureAddress GetBufferOpaqueCaptureAddress; 236 PFN_vkGetBufferDeviceAddress GetBufferDeviceAddress; 237 PFN_vkGetDeviceMemoryOpaqueCaptureAddress GetDeviceMemoryOpaqueCaptureAddress; 238 PFN_vkCmdSetLineStipple CmdSetLineStipple; 239 PFN_vkCmdSetCullMode CmdSetCullMode; 240 PFN_vkCmdSetFrontFace CmdSetFrontFace; 241 PFN_vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology; 242 PFN_vkCmdSetViewportWithCount CmdSetViewportWithCount; 243 PFN_vkCmdSetScissorWithCount CmdSetScissorWithCount; 244 PFN_vkCmdBindIndexBuffer2 CmdBindIndexBuffer2; 245 PFN_vkCmdBindVertexBuffers2 CmdBindVertexBuffers2; 246 PFN_vkCmdSetDepthTestEnable CmdSetDepthTestEnable; 247 PFN_vkCmdSetDepthWriteEnable CmdSetDepthWriteEnable; 248 PFN_vkCmdSetDepthCompareOp CmdSetDepthCompareOp; 249 PFN_vkCmdSetDepthBoundsTestEnable CmdSetDepthBoundsTestEnable; 250 PFN_vkCmdSetStencilTestEnable CmdSetStencilTestEnable; 251 PFN_vkCmdSetStencilOp CmdSetStencilOp; 252 PFN_vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable; 253 PFN_vkCmdSetDepthBiasEnable CmdSetDepthBiasEnable; 254 PFN_vkCmdSetPrimitiveRestartEnable CmdSetPrimitiveRestartEnable; 255 PFN_vkCreatePrivateDataSlot CreatePrivateDataSlot; 256 PFN_vkDestroyPrivateDataSlot DestroyPrivateDataSlot; 257 PFN_vkSetPrivateData SetPrivateData; 258 PFN_vkGetPrivateData GetPrivateData; 259 PFN_vkCmdCopyBuffer2 CmdCopyBuffer2; 260 PFN_vkCmdCopyImage2 CmdCopyImage2; 261 PFN_vkCmdBlitImage2 CmdBlitImage2; 262 PFN_vkCmdCopyBufferToImage2 CmdCopyBufferToImage2; 263 PFN_vkCmdCopyImageToBuffer2 CmdCopyImageToBuffer2; 264 PFN_vkCmdResolveImage2 CmdResolveImage2; 265 PFN_vkCmdSetEvent2 CmdSetEvent2; 266 PFN_vkCmdResetEvent2 CmdResetEvent2; 267 PFN_vkCmdWaitEvents2 CmdWaitEvents2; 268 PFN_vkCmdPipelineBarrier2 CmdPipelineBarrier2; 269 PFN_vkQueueSubmit2 QueueSubmit2; 270 PFN_vkCmdWriteTimestamp2 CmdWriteTimestamp2; 271 PFN_vkCopyMemoryToImage CopyMemoryToImage; 272 PFN_vkCopyImageToMemory CopyImageToMemory; 273 PFN_vkCopyImageToImage CopyImageToImage; 274 PFN_vkTransitionImageLayout TransitionImageLayout; 275 PFN_vkCmdBeginRendering CmdBeginRendering; 276 PFN_vkCmdEndRendering CmdEndRendering; 277 PFN_vkGetImageSubresourceLayout2 GetImageSubresourceLayout2; 278 PFN_vkGetDeviceImageSubresourceLayout GetDeviceImageSubresourceLayout; 279 PFN_vkMapMemory2 MapMemory2; 280 PFN_vkUnmapMemory2 UnmapMemory2; 281 PFN_vkCmdBindDescriptorSets2 CmdBindDescriptorSets2; 282 PFN_vkCmdPushConstants2 CmdPushConstants2; 283 PFN_vkCmdPushDescriptorSet2 CmdPushDescriptorSet2; 284 PFN_vkCmdPushDescriptorSetWithTemplate2 CmdPushDescriptorSetWithTemplate2; 285 PFN_vkCmdSetRenderingAttachmentLocations CmdSetRenderingAttachmentLocations; 286 PFN_vkCmdSetRenderingInputAttachmentIndices CmdSetRenderingInputAttachmentIndices; 287 // clang-format on 288 }; 289 290 bool InitDispatchTable( 291 VkInstance instance, 292 PFN_vkGetInstanceProcAddr get_proc, 293 const std::bitset<driver::ProcHook::EXTENSION_COUNT>& extensions); 294 bool InitDispatchTable( 295 VkDevice dev, 296 PFN_vkGetDeviceProcAddr get_proc, 297 const std::bitset<driver::ProcHook::EXTENSION_COUNT>& extensions); 298 299 } // namespace api 300 } // namespace vulkan 301 302 #endif // LIBVULKAN_API_GEN_H 303