104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall/*
21f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall * Copyright 2015 The Android Open Source Project
31f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall *
41f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall * Licensed under the Apache License, Version 2.0 (the "License");
51f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall * you may not use this file except in compliance with the License.
61f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall * You may obtain a copy of the License at
71f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall *
81f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall *      http://www.apache.org/licenses/LICENSE-2.0
91f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall *
101f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall * Unless required by applicable law or agreed to in writing, software
111f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall * distributed under the License is distributed on an "AS IS" BASIS,
121f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
131f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall * See the License for the specific language governing permissions and
141f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall * limitations under the License.
151f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall */
1604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
17e0d27bb1f3671401c2f6d84a60111f5c695c97d3Jesse Hall// WARNING: This file is generated. See ../README.md for instructions.
1804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#include <algorithm>
20e2d3ee180a2521c8db03a9702cb2669735f239acChris Forbes#include "null_driver_gen.h"
2104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallusing namespace null_driver;
2304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallnamespace {
2504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
261f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hallstruct NameProc {
2704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char* name;
2804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    PFN_vkVoidFunction proc;
2904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall};
3004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
311f91d390ac013ea2514a67e12ddb083119d636d7Jesse HallPFN_vkVoidFunction Lookup(const char* name,
321f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall                          const NameProc* begin,
331f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall                          const NameProc* end) {
341f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    const auto& entry = std::lower_bound(
351f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall        begin, end, name,
361f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall        [](const NameProc& e, const char* n) { return strcmp(e.name, n) < 0; });
371f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    if (entry == end || strcmp(entry->name, name) != 0)
381f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall        return nullptr;
391f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    return entry->proc;
401f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall}
411f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall
4204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltemplate <size_t N>
431f91d390ac013ea2514a67e12ddb083119d636d7Jesse HallPFN_vkVoidFunction Lookup(const char* name, const NameProc (&procs)[N]) {
441f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    return Lookup(name, procs, procs + N);
4504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
4604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
471f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hallconst NameProc kGlobalProcs[] = {
4804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    // clang-format off
491f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkCreateInstance", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateInstance>(CreateInstance))},
501f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkEnumerateInstanceExtensionProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEnumerateInstanceExtensionProperties>(EnumerateInstanceExtensionProperties))},
511f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkEnumerateInstanceLayerProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEnumerateInstanceLayerProperties>(EnumerateInstanceLayerProperties))},
5204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    // clang-format on
5304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall};
5404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
551f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hallconst NameProc kInstanceProcs[] = {
5604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    // clang-format off
5756d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    {"vkAcquireImageANDROID", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkAcquireImageANDROID>(AcquireImageANDROID))},
583fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    {"vkAllocateCommandBuffers", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkAllocateCommandBuffers>(AllocateCommandBuffers))},
593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    {"vkAllocateDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkAllocateDescriptorSets>(AllocateDescriptorSets))},
603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    {"vkAllocateMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkAllocateMemory>(AllocateMemory))},
61cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkBeginCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkBeginCommandBuffer>(BeginCommandBuffer))},
62cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkBindBufferMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkBindBufferMemory>(BindBufferMemory))},
63cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkBindImageMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkBindImageMemory>(BindImageMemory))},
64cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBeginQuery", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBeginQuery>(CmdBeginQuery))},
65cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBeginRenderPass", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBeginRenderPass>(CmdBeginRenderPass))},
66cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBindDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBindDescriptorSets>(CmdBindDescriptorSets))},
67cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBindIndexBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBindIndexBuffer>(CmdBindIndexBuffer))},
68cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBindPipeline", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBindPipeline>(CmdBindPipeline))},
69cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBindVertexBuffers", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBindVertexBuffers>(CmdBindVertexBuffers))},
70cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBlitImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBlitImage>(CmdBlitImage))},
71ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    {"vkCmdClearAttachments", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdClearAttachments>(CmdClearAttachments))},
72cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdClearColorImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdClearColorImage>(CmdClearColorImage))},
73cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdClearDepthStencilImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdClearDepthStencilImage>(CmdClearDepthStencilImage))},
74cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdCopyBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdCopyBuffer>(CmdCopyBuffer))},
75cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdCopyBufferToImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdCopyBufferToImage>(CmdCopyBufferToImage))},
76cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdCopyImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdCopyImage>(CmdCopyImage))},
77cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdCopyImageToBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdCopyImageToBuffer>(CmdCopyImageToBuffer))},
78cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdCopyQueryPoolResults", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdCopyQueryPoolResults>(CmdCopyQueryPoolResults))},
79cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdDispatch", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdDispatch>(CmdDispatch))},
80cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdDispatchIndirect", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdDispatchIndirect>(CmdDispatchIndirect))},
81cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdDraw", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdDraw>(CmdDraw))},
82cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdDrawIndexed", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdDrawIndexed>(CmdDrawIndexed))},
83cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdDrawIndexedIndirect", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdDrawIndexedIndirect>(CmdDrawIndexedIndirect))},
84cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdDrawIndirect", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdDrawIndirect>(CmdDrawIndirect))},
85cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdEndQuery", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdEndQuery>(CmdEndQuery))},
86cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdEndRenderPass", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdEndRenderPass>(CmdEndRenderPass))},
87cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdExecuteCommands", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdExecuteCommands>(CmdExecuteCommands))},
88cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdFillBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdFillBuffer>(CmdFillBuffer))},
89cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdNextSubpass", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdNextSubpass>(CmdNextSubpass))},
90cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdPipelineBarrier", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdPipelineBarrier>(CmdPipelineBarrier))},
91cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdPushConstants", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdPushConstants>(CmdPushConstants))},
92cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdResetEvent", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdResetEvent>(CmdResetEvent))},
93cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdResetQueryPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdResetQueryPool>(CmdResetQueryPool))},
94cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdResolveImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdResolveImage>(CmdResolveImage))},
95cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetBlendConstants", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetBlendConstants>(CmdSetBlendConstants))},
96cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetDepthBias", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetDepthBias>(CmdSetDepthBias))},
97cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetDepthBounds", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetDepthBounds>(CmdSetDepthBounds))},
98cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetEvent", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetEvent>(CmdSetEvent))},
99cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetLineWidth", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetLineWidth>(CmdSetLineWidth))},
100cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetScissor", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetScissor>(CmdSetScissor))},
101cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetStencilCompareMask", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetStencilCompareMask>(CmdSetStencilCompareMask))},
102cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetStencilReference", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetStencilReference>(CmdSetStencilReference))},
103cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetStencilWriteMask", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetStencilWriteMask>(CmdSetStencilWriteMask))},
104cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetViewport", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetViewport>(CmdSetViewport))},
105cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdUpdateBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdUpdateBuffer>(CmdUpdateBuffer))},
106cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdWaitEvents", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdWaitEvents>(CmdWaitEvents))},
107cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdWriteTimestamp", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdWriteTimestamp>(CmdWriteTimestamp))},
108cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateBuffer>(CreateBuffer))},
109cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateBufferView", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateBufferView>(CreateBufferView))},
110cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateCommandPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateCommandPool>(CreateCommandPool))},
111cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateComputePipelines", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateComputePipelines>(CreateComputePipelines))},
112715b86ac7d0853131b375ff786c87d8d87a762a1Jesse Hall    {"vkCreateDebugReportCallbackEXT", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateDebugReportCallbackEXT>(CreateDebugReportCallbackEXT))},
113cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateDescriptorPool>(CreateDescriptorPool))},
114cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateDescriptorSetLayout", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateDescriptorSetLayout>(CreateDescriptorSetLayout))},
1151f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkCreateDevice", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateDevice>(CreateDevice))},
116cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateEvent", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateEvent>(CreateEvent))},
117cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateFence", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateFence>(CreateFence))},
118cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateFramebuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateFramebuffer>(CreateFramebuffer))},
119cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateGraphicsPipelines", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateGraphicsPipelines>(CreateGraphicsPipelines))},
120cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateImage>(CreateImage))},
121cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateImageView", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateImageView>(CreateImageView))},
1221f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkCreateInstance", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateInstance>(CreateInstance))},
123cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreatePipelineCache", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreatePipelineCache>(CreatePipelineCache))},
124cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreatePipelineLayout", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreatePipelineLayout>(CreatePipelineLayout))},
125cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateQueryPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateQueryPool>(CreateQueryPool))},
126cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateRenderPass", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateRenderPass>(CreateRenderPass))},
127cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateSampler", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateSampler>(CreateSampler))},
128cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateSemaphore", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateSemaphore>(CreateSemaphore))},
129cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateShaderModule", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateShaderModule>(CreateShaderModule))},
130715b86ac7d0853131b375ff786c87d8d87a762a1Jesse Hall    {"vkDebugReportMessageEXT", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDebugReportMessageEXT>(DebugReportMessageEXT))},
131cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyBuffer>(DestroyBuffer))},
132cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyBufferView", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyBufferView>(DestroyBufferView))},
133cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyCommandPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyCommandPool>(DestroyCommandPool))},
134715b86ac7d0853131b375ff786c87d8d87a762a1Jesse Hall    {"vkDestroyDebugReportCallbackEXT", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyDebugReportCallbackEXT>(DestroyDebugReportCallbackEXT))},
135cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyDescriptorPool>(DestroyDescriptorPool))},
136cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyDescriptorSetLayout", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyDescriptorSetLayout>(DestroyDescriptorSetLayout))},
137cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyDevice", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyDevice>(DestroyDevice))},
138cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyEvent", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyEvent>(DestroyEvent))},
139cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyFence", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyFence>(DestroyFence))},
140cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyFramebuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyFramebuffer>(DestroyFramebuffer))},
141cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyImage>(DestroyImage))},
142cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyImageView", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyImageView>(DestroyImageView))},
1431f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkDestroyInstance", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyInstance>(DestroyInstance))},
144cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyPipeline", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyPipeline>(DestroyPipeline))},
145cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyPipelineCache", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyPipelineCache>(DestroyPipelineCache))},
146cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyPipelineLayout", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyPipelineLayout>(DestroyPipelineLayout))},
147cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyQueryPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyQueryPool>(DestroyQueryPool))},
148cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyRenderPass", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyRenderPass>(DestroyRenderPass))},
149cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroySampler", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroySampler>(DestroySampler))},
150cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroySemaphore", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroySemaphore>(DestroySemaphore))},
151cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyShaderModule", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyShaderModule>(DestroyShaderModule))},
152cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDeviceWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDeviceWaitIdle>(DeviceWaitIdle))},
153cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkEndCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEndCommandBuffer>(EndCommandBuffer))},
1541f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkEnumerateDeviceExtensionProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEnumerateDeviceExtensionProperties>(EnumerateDeviceExtensionProperties))},
1551f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkEnumerateDeviceLayerProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEnumerateDeviceLayerProperties>(EnumerateDeviceLayerProperties))},
1561f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkEnumerateInstanceExtensionProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEnumerateInstanceExtensionProperties>(EnumerateInstanceExtensionProperties))},
1571f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkEnumerateInstanceLayerProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEnumerateInstanceLayerProperties>(EnumerateInstanceLayerProperties))},
1581f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkEnumeratePhysicalDevices", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEnumeratePhysicalDevices>(EnumeratePhysicalDevices))},
159cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkFlushMappedMemoryRanges", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkFlushMappedMemoryRanges>(FlushMappedMemoryRanges))},
160fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    {"vkFreeCommandBuffers", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkFreeCommandBuffers>(FreeCommandBuffers))},
161cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkFreeDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkFreeDescriptorSets>(FreeDescriptorSets))},
162cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkFreeMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkFreeMemory>(FreeMemory))},
163cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetBufferMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetBufferMemoryRequirements>(GetBufferMemoryRequirements))},
164cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetDeviceMemoryCommitment", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetDeviceMemoryCommitment>(GetDeviceMemoryCommitment))},
165cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetDeviceProcAddr", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetDeviceProcAddr>(GetDeviceProcAddr))},
166cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetDeviceQueue", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetDeviceQueue>(GetDeviceQueue))},
167cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetEventStatus", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetEventStatus>(GetEventStatus))},
168cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetFenceStatus", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetFenceStatus>(GetFenceStatus))},
169cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetImageMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetImageMemoryRequirements>(GetImageMemoryRequirements))},
170cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetImageSparseMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetImageSparseMemoryRequirements>(GetImageSparseMemoryRequirements))},
171cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetImageSubresourceLayout", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetImageSubresourceLayout>(GetImageSubresourceLayout))},
1721f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkGetInstanceProcAddr", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetInstanceProcAddr>(GetInstanceProcAddr))},
1731f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkGetPhysicalDeviceFeatures", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceFeatures>(GetPhysicalDeviceFeatures))},
17486bdfbe19ecb9c95236c401225631fe17c8ea04fChris Forbes    {"vkGetPhysicalDeviceFeatures2KHR", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceFeatures2KHR>(GetPhysicalDeviceFeatures2KHR))},
1751f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkGetPhysicalDeviceFormatProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceFormatProperties>(GetPhysicalDeviceFormatProperties))},
17686bdfbe19ecb9c95236c401225631fe17c8ea04fChris Forbes    {"vkGetPhysicalDeviceFormatProperties2KHR", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceFormatProperties2KHR>(GetPhysicalDeviceFormatProperties2KHR))},
1771f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkGetPhysicalDeviceImageFormatProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceImageFormatProperties>(GetPhysicalDeviceImageFormatProperties))},
17886bdfbe19ecb9c95236c401225631fe17c8ea04fChris Forbes    {"vkGetPhysicalDeviceImageFormatProperties2KHR", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceImageFormatProperties2KHR>(GetPhysicalDeviceImageFormatProperties2KHR))},
1791f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkGetPhysicalDeviceMemoryProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceMemoryProperties>(GetPhysicalDeviceMemoryProperties))},
18086bdfbe19ecb9c95236c401225631fe17c8ea04fChris Forbes    {"vkGetPhysicalDeviceMemoryProperties2KHR", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceMemoryProperties2KHR>(GetPhysicalDeviceMemoryProperties2KHR))},
1811f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkGetPhysicalDeviceProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceProperties>(GetPhysicalDeviceProperties))},
18286bdfbe19ecb9c95236c401225631fe17c8ea04fChris Forbes    {"vkGetPhysicalDeviceProperties2KHR", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceProperties2KHR>(GetPhysicalDeviceProperties2KHR))},
1831f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkGetPhysicalDeviceQueueFamilyProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceQueueFamilyProperties>(GetPhysicalDeviceQueueFamilyProperties))},
18486bdfbe19ecb9c95236c401225631fe17c8ea04fChris Forbes    {"vkGetPhysicalDeviceQueueFamilyProperties2KHR", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR>(GetPhysicalDeviceQueueFamilyProperties2KHR))},
1851f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkGetPhysicalDeviceSparseImageFormatProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceSparseImageFormatProperties>(GetPhysicalDeviceSparseImageFormatProperties))},
18686bdfbe19ecb9c95236c401225631fe17c8ea04fChris Forbes    {"vkGetPhysicalDeviceSparseImageFormatProperties2KHR", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR>(GetPhysicalDeviceSparseImageFormatProperties2KHR))},
187cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetPipelineCacheData", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPipelineCacheData>(GetPipelineCacheData))},
188cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetQueryPoolResults", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetQueryPoolResults>(GetQueryPoolResults))},
189cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetRenderAreaGranularity", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetRenderAreaGranularity>(GetRenderAreaGranularity))},
1908e4438b9cd82e911ed8de6aca15f11816187df3fChris Forbes    {"vkGetSwapchainGrallocUsage2ANDROID", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetSwapchainGrallocUsage2ANDROID>(GetSwapchainGrallocUsage2ANDROID))},
19156d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    {"vkGetSwapchainGrallocUsageANDROID", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetSwapchainGrallocUsageANDROID>(GetSwapchainGrallocUsageANDROID))},
192cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkInvalidateMappedMemoryRanges", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkInvalidateMappedMemoryRanges>(InvalidateMappedMemoryRanges))},
193cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkMapMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkMapMemory>(MapMemory))},
194cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkMergePipelineCaches", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkMergePipelineCaches>(MergePipelineCaches))},
195a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    {"vkQueueBindSparse", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueBindSparse>(QueueBindSparse))},
19656d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    {"vkQueueSignalReleaseImageANDROID", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueSignalReleaseImageANDROID>(QueueSignalReleaseImageANDROID))},
197cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkQueueSubmit", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueSubmit>(QueueSubmit))},
198cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkQueueWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueWaitIdle>(QueueWaitIdle))},
199cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkResetCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkResetCommandBuffer>(ResetCommandBuffer))},
200cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkResetCommandPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkResetCommandPool>(ResetCommandPool))},
201cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkResetDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkResetDescriptorPool>(ResetDescriptorPool))},
202cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkResetEvent", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkResetEvent>(ResetEvent))},
203cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkResetFences", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkResetFences>(ResetFences))},
204cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkSetEvent", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkSetEvent>(SetEvent))},
205cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkUnmapMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkUnmapMemory>(UnmapMemory))},
206cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkUpdateDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkUpdateDescriptorSets>(UpdateDescriptorSets))},
207cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkWaitForFences", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkWaitForFences>(WaitForFences))},
20804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    // clang-format on
20904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall};
21004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}  // namespace
21204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallnamespace null_driver {
21404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2151f91d390ac013ea2514a67e12ddb083119d636d7Jesse HallPFN_vkVoidFunction GetGlobalProcAddr(const char* name) {
2161f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    return Lookup(name, kGlobalProcs);
21704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
21804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2191f91d390ac013ea2514a67e12ddb083119d636d7Jesse HallPFN_vkVoidFunction GetInstanceProcAddr(const char* name) {
22056d386a7a46c8ac36df8820c3ccf3da048ef1970Jesse Hall    return Lookup(name, kInstanceProcs);
22104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
22204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}  // namespace null_driver
224