null_driver_gen.cpp revision cf25c4174dca708032ea83ac7ae2baad9e575b29
104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall/*
204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall* Copyright 2015 The Android Open Source Project
304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall*
404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall* Licensed under the Apache License, Version 2.0 (the "License");
504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall* you may not use this file except in compliance with the License.
604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall* You may obtain a copy of the License at
704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall*
804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall*      http://www.apache.org/licenses/LICENSE-2.0
904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall*
1004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall* Unless required by applicable law or agreed to in writing, software
1104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall* distributed under the License is distributed on an "AS IS" BASIS,
1204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall* See the License for the specific language governing permissions and
1404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall* limitations under the License.
1504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall*/
1604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall// This file is generated. Do not edit manually!
1804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall// To regenerate: $ apic template ../api/vulkan.api null_driver_gen.cpp.tmpl
1904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall// Requires apic from https://android.googlesource.com/platform/tools/gpu/.
2004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#include <algorithm>
2204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#include "null_driver.h"
2304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallusing namespace null_driver;
2504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallnamespace {
2704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallstruct NameProcEntry {
2904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char* name;
3004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    PFN_vkVoidFunction proc;
3104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall};
3204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltemplate <size_t N>
34cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse HallPFN_vkVoidFunction LookupProcAddr(const NameProcEntry (&table)[N],
3504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall                                  const char* name) {
3604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    auto entry = std::lower_bound(table, table + N, name,
3704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall                                  [](const NameProcEntry& e, const char* n) {
3804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall                                      return strcmp(e.name, n) < 0;
3904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall                                  });
4004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    if (entry != (table + N) && strcmp(entry->name, name) == 0)
4104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall        return entry->proc;
4204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    return nullptr;
4304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
4404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
45cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall// The reinterpret_cast<..>(static_cast<..>(..)) business is there to ensure
46cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall// that the function declaration in null_driver.h matches the function pointer
47cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall// type in vulkan.h. If we just used reinterpret_cast<>, the compiler wouldn't
48cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall// tell us if there's a mistake in null_driver.h. A better solution would be to
49cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall// generate the declarations in null_driver.h.
5004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallconst NameProcEntry kInstanceProcTbl[] = {
5104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    // clang-format off
52cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateDevice", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateDevice>(CreateDevice))},
53cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyInstance", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyInstance>(DestroyInstance))},
54cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkEnumerateDeviceExtensionProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEnumerateDeviceExtensionProperties>(EnumerateDeviceExtensionProperties))},
55cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkEnumerateDeviceLayerProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEnumerateDeviceLayerProperties>(EnumerateDeviceLayerProperties))},
56cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkEnumeratePhysicalDevices", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEnumeratePhysicalDevices>(EnumeratePhysicalDevices))},
57cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetInstanceProcAddr", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetInstanceProcAddr>(GetInstanceProcAddr))},
58cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetPhysicalDeviceFeatures", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceFeatures>(GetPhysicalDeviceFeatures))},
59cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetPhysicalDeviceFormatProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceFormatProperties>(GetPhysicalDeviceFormatProperties))},
60cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetPhysicalDeviceImageFormatProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceImageFormatProperties>(GetPhysicalDeviceImageFormatProperties))},
61cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetPhysicalDeviceMemoryProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceMemoryProperties>(GetPhysicalDeviceMemoryProperties))},
62cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetPhysicalDeviceProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceProperties>(GetPhysicalDeviceProperties))},
63cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetPhysicalDeviceQueueFamilyProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceQueueFamilyProperties>(GetPhysicalDeviceQueueFamilyProperties))},
64cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetPhysicalDeviceSparseImageFormatProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceSparseImageFormatProperties>(GetPhysicalDeviceSparseImageFormatProperties))},
6504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    // clang-format on
6604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall};
6704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
6804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallconst NameProcEntry kDeviceProcTbl[] = {
6904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    // clang-format off
70cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkAllocDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkAllocDescriptorSets>(AllocDescriptorSets))},
71cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkAllocMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkAllocMemory>(AllocMemory))},
72cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkBeginCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkBeginCommandBuffer>(BeginCommandBuffer))},
73cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkBindBufferMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkBindBufferMemory>(BindBufferMemory))},
74cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkBindImageMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkBindImageMemory>(BindImageMemory))},
75cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBeginQuery", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBeginQuery>(CmdBeginQuery))},
76cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBeginRenderPass", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBeginRenderPass>(CmdBeginRenderPass))},
77cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBindDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBindDescriptorSets>(CmdBindDescriptorSets))},
78cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBindIndexBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBindIndexBuffer>(CmdBindIndexBuffer))},
79cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBindPipeline", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBindPipeline>(CmdBindPipeline))},
80cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBindVertexBuffers", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBindVertexBuffers>(CmdBindVertexBuffers))},
81cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBlitImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBlitImage>(CmdBlitImage))},
82cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdClearColorAttachment", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdClearColorAttachment>(CmdClearColorAttachment))},
83cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdClearColorImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdClearColorImage>(CmdClearColorImage))},
84cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdClearDepthStencilAttachment", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdClearDepthStencilAttachment>(CmdClearDepthStencilAttachment))},
85cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdClearDepthStencilImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdClearDepthStencilImage>(CmdClearDepthStencilImage))},
86cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdCopyBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdCopyBuffer>(CmdCopyBuffer))},
87cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdCopyBufferToImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdCopyBufferToImage>(CmdCopyBufferToImage))},
88cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdCopyImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdCopyImage>(CmdCopyImage))},
89cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdCopyImageToBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdCopyImageToBuffer>(CmdCopyImageToBuffer))},
90cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdCopyQueryPoolResults", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdCopyQueryPoolResults>(CmdCopyQueryPoolResults))},
91cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdDispatch", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdDispatch>(CmdDispatch))},
92cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdDispatchIndirect", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdDispatchIndirect>(CmdDispatchIndirect))},
93cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdDraw", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdDraw>(CmdDraw))},
94cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdDrawIndexed", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdDrawIndexed>(CmdDrawIndexed))},
95cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdDrawIndexedIndirect", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdDrawIndexedIndirect>(CmdDrawIndexedIndirect))},
96cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdDrawIndirect", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdDrawIndirect>(CmdDrawIndirect))},
97cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdEndQuery", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdEndQuery>(CmdEndQuery))},
98cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdEndRenderPass", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdEndRenderPass>(CmdEndRenderPass))},
99cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdExecuteCommands", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdExecuteCommands>(CmdExecuteCommands))},
100cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdFillBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdFillBuffer>(CmdFillBuffer))},
101cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdNextSubpass", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdNextSubpass>(CmdNextSubpass))},
102cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdPipelineBarrier", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdPipelineBarrier>(CmdPipelineBarrier))},
103cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdPushConstants", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdPushConstants>(CmdPushConstants))},
104cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdResetEvent", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdResetEvent>(CmdResetEvent))},
105cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdResetQueryPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdResetQueryPool>(CmdResetQueryPool))},
106cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdResolveImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdResolveImage>(CmdResolveImage))},
107cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetBlendConstants", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetBlendConstants>(CmdSetBlendConstants))},
108cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetDepthBias", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetDepthBias>(CmdSetDepthBias))},
109cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetDepthBounds", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetDepthBounds>(CmdSetDepthBounds))},
110cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetEvent", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetEvent>(CmdSetEvent))},
111cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetLineWidth", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetLineWidth>(CmdSetLineWidth))},
112cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetScissor", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetScissor>(CmdSetScissor))},
113cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetStencilCompareMask", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetStencilCompareMask>(CmdSetStencilCompareMask))},
114cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetStencilReference", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetStencilReference>(CmdSetStencilReference))},
115cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetStencilWriteMask", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetStencilWriteMask>(CmdSetStencilWriteMask))},
116cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetViewport", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetViewport>(CmdSetViewport))},
117cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdUpdateBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdUpdateBuffer>(CmdUpdateBuffer))},
118cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdWaitEvents", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdWaitEvents>(CmdWaitEvents))},
119cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdWriteTimestamp", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdWriteTimestamp>(CmdWriteTimestamp))},
120cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateBuffer>(CreateBuffer))},
121cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateBufferView", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateBufferView>(CreateBufferView))},
122cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateCommandBuffer>(CreateCommandBuffer))},
123cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateCommandPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateCommandPool>(CreateCommandPool))},
124cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateComputePipelines", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateComputePipelines>(CreateComputePipelines))},
125cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateDescriptorPool>(CreateDescriptorPool))},
126cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateDescriptorSetLayout", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateDescriptorSetLayout>(CreateDescriptorSetLayout))},
127cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateEvent", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateEvent>(CreateEvent))},
128cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateFence", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateFence>(CreateFence))},
129cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateFramebuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateFramebuffer>(CreateFramebuffer))},
130cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateGraphicsPipelines", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateGraphicsPipelines>(CreateGraphicsPipelines))},
131cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateImage>(CreateImage))},
132cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateImageView", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateImageView>(CreateImageView))},
133cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreatePipelineCache", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreatePipelineCache>(CreatePipelineCache))},
134cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreatePipelineLayout", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreatePipelineLayout>(CreatePipelineLayout))},
135cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateQueryPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateQueryPool>(CreateQueryPool))},
136cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateRenderPass", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateRenderPass>(CreateRenderPass))},
137cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateSampler", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateSampler>(CreateSampler))},
138cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateSemaphore", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateSemaphore>(CreateSemaphore))},
139cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateShader", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateShader>(CreateShader))},
140cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateShaderModule", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateShaderModule>(CreateShaderModule))},
141cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyBuffer>(DestroyBuffer))},
142cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyBufferView", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyBufferView>(DestroyBufferView))},
143cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyCommandBuffer>(DestroyCommandBuffer))},
144cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyCommandPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyCommandPool>(DestroyCommandPool))},
145cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyDescriptorPool>(DestroyDescriptorPool))},
146cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyDescriptorSetLayout", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyDescriptorSetLayout>(DestroyDescriptorSetLayout))},
147cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyDevice", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyDevice>(DestroyDevice))},
148cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyEvent", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyEvent>(DestroyEvent))},
149cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyFence", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyFence>(DestroyFence))},
150cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyFramebuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyFramebuffer>(DestroyFramebuffer))},
151cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyImage>(DestroyImage))},
152cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyImageView", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyImageView>(DestroyImageView))},
153cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyPipeline", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyPipeline>(DestroyPipeline))},
154cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyPipelineCache", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyPipelineCache>(DestroyPipelineCache))},
155cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyPipelineLayout", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyPipelineLayout>(DestroyPipelineLayout))},
156cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyQueryPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyQueryPool>(DestroyQueryPool))},
157cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyRenderPass", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyRenderPass>(DestroyRenderPass))},
158cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroySampler", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroySampler>(DestroySampler))},
159cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroySemaphore", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroySemaphore>(DestroySemaphore))},
160cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyShader", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyShader>(DestroyShader))},
161cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyShaderModule", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyShaderModule>(DestroyShaderModule))},
162cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDeviceWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDeviceWaitIdle>(DeviceWaitIdle))},
163cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkEndCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEndCommandBuffer>(EndCommandBuffer))},
164cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkFlushMappedMemoryRanges", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkFlushMappedMemoryRanges>(FlushMappedMemoryRanges))},
165cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkFreeDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkFreeDescriptorSets>(FreeDescriptorSets))},
166cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkFreeMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkFreeMemory>(FreeMemory))},
167cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetBufferMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetBufferMemoryRequirements>(GetBufferMemoryRequirements))},
168cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetDeviceMemoryCommitment", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetDeviceMemoryCommitment>(GetDeviceMemoryCommitment))},
169cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetDeviceProcAddr", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetDeviceProcAddr>(GetDeviceProcAddr))},
170cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetDeviceQueue", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetDeviceQueue>(GetDeviceQueue))},
171cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetEventStatus", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetEventStatus>(GetEventStatus))},
172cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetFenceStatus", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetFenceStatus>(GetFenceStatus))},
173cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetImageMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetImageMemoryRequirements>(GetImageMemoryRequirements))},
174cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetImageSparseMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetImageSparseMemoryRequirements>(GetImageSparseMemoryRequirements))},
175cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetImageSubresourceLayout", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetImageSubresourceLayout>(GetImageSubresourceLayout))},
176cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetPipelineCacheData", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPipelineCacheData>(GetPipelineCacheData))},
177cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetPipelineCacheSize", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPipelineCacheSize>(GetPipelineCacheSize))},
178cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetQueryPoolResults", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetQueryPoolResults>(GetQueryPoolResults))},
179cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetRenderAreaGranularity", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetRenderAreaGranularity>(GetRenderAreaGranularity))},
180cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkInvalidateMappedMemoryRanges", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkInvalidateMappedMemoryRanges>(InvalidateMappedMemoryRanges))},
181cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkMapMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkMapMemory>(MapMemory))},
182cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkMergePipelineCaches", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkMergePipelineCaches>(MergePipelineCaches))},
183cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkQueueBindSparseBufferMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueBindSparseBufferMemory>(QueueBindSparseBufferMemory))},
184cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkQueueBindSparseImageMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueBindSparseImageMemory>(QueueBindSparseImageMemory))},
185cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkQueueBindSparseImageOpaqueMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueBindSparseImageOpaqueMemory>(QueueBindSparseImageOpaqueMemory))},
186cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkQueueSignalSemaphore", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueSignalSemaphore>(QueueSignalSemaphore))},
187cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkQueueSubmit", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueSubmit>(QueueSubmit))},
188cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkQueueWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueWaitIdle>(QueueWaitIdle))},
189cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkQueueWaitSemaphore", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueWaitSemaphore>(QueueWaitSemaphore))},
190cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkResetCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkResetCommandBuffer>(ResetCommandBuffer))},
191cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkResetCommandPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkResetCommandPool>(ResetCommandPool))},
192cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkResetDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkResetDescriptorPool>(ResetDescriptorPool))},
193cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkResetEvent", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkResetEvent>(ResetEvent))},
194cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkResetFences", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkResetFences>(ResetFences))},
195cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkSetEvent", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkSetEvent>(SetEvent))},
196cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkUnmapMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkUnmapMemory>(UnmapMemory))},
197cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkUpdateDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkUpdateDescriptorSets>(UpdateDescriptorSets))},
198cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkWaitForFences", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkWaitForFences>(WaitForFences))},
19904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    // clang-format on
20004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall};
20104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}  // namespace
20304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallnamespace null_driver {
20504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallPFN_vkVoidFunction LookupInstanceProcAddr(const char* name) {
20704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    return LookupProcAddr(kInstanceProcTbl, name);
20804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
20904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallPFN_vkVoidFunction LookupDeviceProcAddr(const char* name) {
21104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    return LookupProcAddr(kDeviceProcTbl, name);
21204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
21304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}  // namespace null_driver
215