null_driver_gen.cpp revision 1f91d390ac013ea2514a67e12ddb083119d636d7
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
1704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall// This file is generated. Do not edit manually!
181f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall// To regenerate: $ apic template ../api/vulkan.api null_driver.tmpl
1904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall// Requires apic from https://android.googlesource.com/platform/tools/gpu/.
2004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
211f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall#include "null_driver_gen.h"
2204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#include <algorithm>
2304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallusing namespace null_driver;
2504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallnamespace {
2704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
281f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hallstruct NameProc {
2904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char* name;
3004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    PFN_vkVoidFunction proc;
3104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall};
3204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
331f91d390ac013ea2514a67e12ddb083119d636d7Jesse HallPFN_vkVoidFunction Lookup(const char* name,
341f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall                          const NameProc* begin,
351f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall                          const NameProc* end) {
361f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    const auto& entry = std::lower_bound(
371f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall        begin, end, name,
381f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall        [](const NameProc& e, const char* n) { return strcmp(e.name, n) < 0; });
391f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    if (entry == end || strcmp(entry->name, name) != 0)
401f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall        return nullptr;
411f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    return entry->proc;
421f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall}
431f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall
4404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltemplate <size_t N>
451f91d390ac013ea2514a67e12ddb083119d636d7Jesse HallPFN_vkVoidFunction Lookup(const char* name, const NameProc (&procs)[N]) {
461f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    return Lookup(name, procs, procs + N);
4704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
4804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
491f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hallconst NameProc kGlobalProcs[] = {
5004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    // clang-format off
511f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkCreateInstance", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateInstance>(CreateInstance))},
521f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkEnumerateInstanceExtensionProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEnumerateInstanceExtensionProperties>(EnumerateInstanceExtensionProperties))},
531f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkEnumerateInstanceLayerProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEnumerateInstanceLayerProperties>(EnumerateInstanceLayerProperties))},
5404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    // clang-format on
5504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall};
5604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
571f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hallconst NameProc kInstanceProcs[] = {
5804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    // clang-format off
593fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    {"vkAllocateCommandBuffers", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkAllocateCommandBuffers>(AllocateCommandBuffers))},
603fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    {"vkAllocateDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkAllocateDescriptorSets>(AllocateDescriptorSets))},
613fbc856120217247c72fb5ed88500000f3881c45Jesse Hall    {"vkAllocateMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkAllocateMemory>(AllocateMemory))},
62cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkBeginCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkBeginCommandBuffer>(BeginCommandBuffer))},
63cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkBindBufferMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkBindBufferMemory>(BindBufferMemory))},
64cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkBindImageMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkBindImageMemory>(BindImageMemory))},
65cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBeginQuery", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBeginQuery>(CmdBeginQuery))},
66cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBeginRenderPass", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBeginRenderPass>(CmdBeginRenderPass))},
67cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBindDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBindDescriptorSets>(CmdBindDescriptorSets))},
68cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBindIndexBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBindIndexBuffer>(CmdBindIndexBuffer))},
69cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBindPipeline", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBindPipeline>(CmdBindPipeline))},
70cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBindVertexBuffers", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBindVertexBuffers>(CmdBindVertexBuffers))},
71cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdBlitImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdBlitImage>(CmdBlitImage))},
72ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    {"vkCmdClearAttachments", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdClearAttachments>(CmdClearAttachments))},
73cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdClearColorImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdClearColorImage>(CmdClearColorImage))},
74cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdClearDepthStencilImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdClearDepthStencilImage>(CmdClearDepthStencilImage))},
75cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdCopyBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdCopyBuffer>(CmdCopyBuffer))},
76cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdCopyBufferToImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdCopyBufferToImage>(CmdCopyBufferToImage))},
77cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdCopyImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdCopyImage>(CmdCopyImage))},
78cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdCopyImageToBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdCopyImageToBuffer>(CmdCopyImageToBuffer))},
79cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdCopyQueryPoolResults", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdCopyQueryPoolResults>(CmdCopyQueryPoolResults))},
80cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdDispatch", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdDispatch>(CmdDispatch))},
81cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdDispatchIndirect", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdDispatchIndirect>(CmdDispatchIndirect))},
82cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdDraw", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdDraw>(CmdDraw))},
83cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdDrawIndexed", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdDrawIndexed>(CmdDrawIndexed))},
84cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdDrawIndexedIndirect", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdDrawIndexedIndirect>(CmdDrawIndexedIndirect))},
85cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdDrawIndirect", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdDrawIndirect>(CmdDrawIndirect))},
86cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdEndQuery", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdEndQuery>(CmdEndQuery))},
87cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdEndRenderPass", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdEndRenderPass>(CmdEndRenderPass))},
88cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdExecuteCommands", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdExecuteCommands>(CmdExecuteCommands))},
89cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdFillBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdFillBuffer>(CmdFillBuffer))},
90cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdNextSubpass", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdNextSubpass>(CmdNextSubpass))},
91cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdPipelineBarrier", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdPipelineBarrier>(CmdPipelineBarrier))},
92cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdPushConstants", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdPushConstants>(CmdPushConstants))},
93cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdResetEvent", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdResetEvent>(CmdResetEvent))},
94cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdResetQueryPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdResetQueryPool>(CmdResetQueryPool))},
95cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdResolveImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdResolveImage>(CmdResolveImage))},
96cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetBlendConstants", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetBlendConstants>(CmdSetBlendConstants))},
97cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetDepthBias", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetDepthBias>(CmdSetDepthBias))},
98cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetDepthBounds", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetDepthBounds>(CmdSetDepthBounds))},
99cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetEvent", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetEvent>(CmdSetEvent))},
100cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetLineWidth", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetLineWidth>(CmdSetLineWidth))},
101cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetScissor", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetScissor>(CmdSetScissor))},
102cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetStencilCompareMask", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetStencilCompareMask>(CmdSetStencilCompareMask))},
103cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetStencilReference", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetStencilReference>(CmdSetStencilReference))},
104cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetStencilWriteMask", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetStencilWriteMask>(CmdSetStencilWriteMask))},
105cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdSetViewport", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdSetViewport>(CmdSetViewport))},
106cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdUpdateBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdUpdateBuffer>(CmdUpdateBuffer))},
107cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdWaitEvents", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdWaitEvents>(CmdWaitEvents))},
108cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCmdWriteTimestamp", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCmdWriteTimestamp>(CmdWriteTimestamp))},
109cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateBuffer>(CreateBuffer))},
110cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateBufferView", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateBufferView>(CreateBufferView))},
111cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateCommandPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateCommandPool>(CreateCommandPool))},
112cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkCreateComputePipelines", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkCreateComputePipelines>(CreateComputePipelines))},
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))},
130cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyBuffer>(DestroyBuffer))},
131cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyBufferView", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyBufferView>(DestroyBufferView))},
132cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyCommandPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyCommandPool>(DestroyCommandPool))},
133cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyDescriptorPool>(DestroyDescriptorPool))},
134cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyDescriptorSetLayout", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyDescriptorSetLayout>(DestroyDescriptorSetLayout))},
135cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyDevice", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyDevice>(DestroyDevice))},
136cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyEvent", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyEvent>(DestroyEvent))},
137cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyFence", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyFence>(DestroyFence))},
138cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyFramebuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyFramebuffer>(DestroyFramebuffer))},
139cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyImage", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyImage>(DestroyImage))},
140cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyImageView", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyImageView>(DestroyImageView))},
1411f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkDestroyInstance", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyInstance>(DestroyInstance))},
142cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyPipeline", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyPipeline>(DestroyPipeline))},
143cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyPipelineCache", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyPipelineCache>(DestroyPipelineCache))},
144cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyPipelineLayout", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyPipelineLayout>(DestroyPipelineLayout))},
145cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyQueryPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyQueryPool>(DestroyQueryPool))},
146cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyRenderPass", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyRenderPass>(DestroyRenderPass))},
147cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroySampler", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroySampler>(DestroySampler))},
148cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroySemaphore", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroySemaphore>(DestroySemaphore))},
149cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDestroyShaderModule", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDestroyShaderModule>(DestroyShaderModule))},
150cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkDeviceWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkDeviceWaitIdle>(DeviceWaitIdle))},
151cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkEndCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEndCommandBuffer>(EndCommandBuffer))},
1521f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkEnumerateDeviceExtensionProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEnumerateDeviceExtensionProperties>(EnumerateDeviceExtensionProperties))},
1531f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkEnumerateDeviceLayerProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEnumerateDeviceLayerProperties>(EnumerateDeviceLayerProperties))},
1541f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkEnumerateInstanceExtensionProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEnumerateInstanceExtensionProperties>(EnumerateInstanceExtensionProperties))},
1551f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkEnumerateInstanceLayerProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEnumerateInstanceLayerProperties>(EnumerateInstanceLayerProperties))},
1561f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkEnumeratePhysicalDevices", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkEnumeratePhysicalDevices>(EnumeratePhysicalDevices))},
157cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkFlushMappedMemoryRanges", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkFlushMappedMemoryRanges>(FlushMappedMemoryRanges))},
158fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    {"vkFreeCommandBuffers", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkFreeCommandBuffers>(FreeCommandBuffers))},
159cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkFreeDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkFreeDescriptorSets>(FreeDescriptorSets))},
160cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkFreeMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkFreeMemory>(FreeMemory))},
161cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetBufferMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetBufferMemoryRequirements>(GetBufferMemoryRequirements))},
162cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetDeviceMemoryCommitment", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetDeviceMemoryCommitment>(GetDeviceMemoryCommitment))},
163cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetDeviceProcAddr", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetDeviceProcAddr>(GetDeviceProcAddr))},
164cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetDeviceQueue", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetDeviceQueue>(GetDeviceQueue))},
165cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetEventStatus", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetEventStatus>(GetEventStatus))},
166cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetFenceStatus", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetFenceStatus>(GetFenceStatus))},
167cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetImageMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetImageMemoryRequirements>(GetImageMemoryRequirements))},
168cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetImageSparseMemoryRequirements", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetImageSparseMemoryRequirements>(GetImageSparseMemoryRequirements))},
169cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetImageSubresourceLayout", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetImageSubresourceLayout>(GetImageSubresourceLayout))},
1701f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkGetInstanceProcAddr", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetInstanceProcAddr>(GetInstanceProcAddr))},
1711f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkGetPhysicalDeviceFeatures", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceFeatures>(GetPhysicalDeviceFeatures))},
1721f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkGetPhysicalDeviceFormatProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceFormatProperties>(GetPhysicalDeviceFormatProperties))},
1731f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkGetPhysicalDeviceImageFormatProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceImageFormatProperties>(GetPhysicalDeviceImageFormatProperties))},
1741f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkGetPhysicalDeviceMemoryProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceMemoryProperties>(GetPhysicalDeviceMemoryProperties))},
1751f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkGetPhysicalDeviceProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceProperties>(GetPhysicalDeviceProperties))},
1761f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkGetPhysicalDeviceQueueFamilyProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceQueueFamilyProperties>(GetPhysicalDeviceQueueFamilyProperties))},
1771f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    {"vkGetPhysicalDeviceSparseImageFormatProperties", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPhysicalDeviceSparseImageFormatProperties>(GetPhysicalDeviceSparseImageFormatProperties))},
178cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetPipelineCacheData", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetPipelineCacheData>(GetPipelineCacheData))},
179cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetQueryPoolResults", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetQueryPoolResults>(GetQueryPoolResults))},
180cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkGetRenderAreaGranularity", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkGetRenderAreaGranularity>(GetRenderAreaGranularity))},
181cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkInvalidateMappedMemoryRanges", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkInvalidateMappedMemoryRanges>(InvalidateMappedMemoryRanges))},
182cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkMapMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkMapMemory>(MapMemory))},
183cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkMergePipelineCaches", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkMergePipelineCaches>(MergePipelineCaches))},
184a64292517b1876c4bbe5d3e62c577812f40bd922Jesse Hall    {"vkQueueBindSparse", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueBindSparse>(QueueBindSparse))},
185cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkQueueSubmit", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueSubmit>(QueueSubmit))},
186cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkQueueWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueWaitIdle>(QueueWaitIdle))},
187cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkResetCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkResetCommandBuffer>(ResetCommandBuffer))},
188cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkResetCommandPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkResetCommandPool>(ResetCommandPool))},
189cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkResetDescriptorPool", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkResetDescriptorPool>(ResetDescriptorPool))},
190cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkResetEvent", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkResetEvent>(ResetEvent))},
191cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkResetFences", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkResetFences>(ResetFences))},
192cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkSetEvent", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkSetEvent>(SetEvent))},
193cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkUnmapMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkUnmapMemory>(UnmapMemory))},
194cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkUpdateDescriptorSets", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkUpdateDescriptorSets>(UpdateDescriptorSets))},
195cf25c4174dca708032ea83ac7ae2baad9e575b29Jesse Hall    {"vkWaitForFences", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkWaitForFences>(WaitForFences))},
19604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    // clang-format on
19704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall};
19804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
19904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}  // namespace
20004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
20104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallnamespace null_driver {
20204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2031f91d390ac013ea2514a67e12ddb083119d636d7Jesse HallPFN_vkVoidFunction GetGlobalProcAddr(const char* name) {
2041f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    return Lookup(name, kGlobalProcs);
20504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
20604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2071f91d390ac013ea2514a67e12ddb083119d636d7Jesse HallPFN_vkVoidFunction GetInstanceProcAddr(const char* name) {
2081f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    PFN_vkVoidFunction pfn;
2091f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    if ((pfn = Lookup(name, kInstanceProcs)))
2101f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall        return pfn;
2111f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    if (strcmp(name, "vkGetSwapchainGrallocUsageANDROID") == 0)
2121f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall        return reinterpret_cast<PFN_vkVoidFunction>(
2131f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall            static_cast<PFN_vkGetSwapchainGrallocUsageANDROID>(
2141f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall                GetSwapchainGrallocUsageANDROID));
2151f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    if (strcmp(name, "vkAcquireImageANDROID") == 0)
2161f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall        return reinterpret_cast<PFN_vkVoidFunction>(
2171f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall            static_cast<PFN_vkAcquireImageANDROID>(AcquireImageANDROID));
2181f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    if (strcmp(name, "vkQueueSignalReleaseImageANDROID") == 0)
2191f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall        return reinterpret_cast<PFN_vkVoidFunction>(
2201f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall            static_cast<PFN_vkQueueSignalReleaseImageANDROID>(
2211f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall                QueueSignalReleaseImageANDROID));
2221f91d390ac013ea2514a67e12ddb083119d636d7Jesse Hall    return nullptr;
22304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
22404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}  // namespace null_driver
226