blob: 14c5da8b199132bd2e7e281ba56357b8c0b28ab4 [file] [log] [blame]
Jesse Hall1f91d392015-12-11 16:28:44 -08001/*
2 * Copyright 2015 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
Jesse Hall1f91d392015-12-11 16:28:44 -080017#define VK_USE_PLATFORM_ANDROID_KHR
18#include <vulkan/vk_android_native_buffer.h>
Jesse Hall715b86a2016-01-16 16:34:29 -080019#include <vulkan/vk_ext_debug_report.h>
Jesse Hall1f91d392015-12-11 16:28:44 -080020#include <vulkan/vulkan.h>
21
22namespace vulkan {
23
24struct InstanceDispatchTable {
25 // clang-format off
26 PFN_vkDestroyInstance DestroyInstance;
27 PFN_vkEnumeratePhysicalDevices EnumeratePhysicalDevices;
28 PFN_vkGetPhysicalDeviceProperties GetPhysicalDeviceProperties;
29 PFN_vkGetPhysicalDeviceQueueFamilyProperties GetPhysicalDeviceQueueFamilyProperties;
30 PFN_vkGetPhysicalDeviceMemoryProperties GetPhysicalDeviceMemoryProperties;
31 PFN_vkGetPhysicalDeviceFeatures GetPhysicalDeviceFeatures;
32 PFN_vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties;
33 PFN_vkGetPhysicalDeviceImageFormatProperties GetPhysicalDeviceImageFormatProperties;
34 PFN_vkCreateDevice CreateDevice;
35 PFN_vkEnumerateDeviceLayerProperties EnumerateDeviceLayerProperties;
36 PFN_vkEnumerateDeviceExtensionProperties EnumerateDeviceExtensionProperties;
37 PFN_vkGetPhysicalDeviceSparseImageFormatProperties GetPhysicalDeviceSparseImageFormatProperties;
38 PFN_vkDestroySurfaceKHR DestroySurfaceKHR;
39 PFN_vkGetPhysicalDeviceSurfaceSupportKHR GetPhysicalDeviceSurfaceSupportKHR;
40 PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR GetPhysicalDeviceSurfaceCapabilitiesKHR;
41 PFN_vkGetPhysicalDeviceSurfaceFormatsKHR GetPhysicalDeviceSurfaceFormatsKHR;
42 PFN_vkGetPhysicalDeviceSurfacePresentModesKHR GetPhysicalDeviceSurfacePresentModesKHR;
43 PFN_vkCreateAndroidSurfaceKHR CreateAndroidSurfaceKHR;
Jesse Hall715b86a2016-01-16 16:34:29 -080044 PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallbackEXT;
45 PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallbackEXT;
46 PFN_vkDebugReportMessageEXT DebugReportMessageEXT;
Jesse Hall1f91d392015-12-11 16:28:44 -080047 // clang-format on
48};
49
50struct DeviceDispatchTable {
51 // clang-format off
52 PFN_vkDestroyDevice DestroyDevice;
53 PFN_vkGetDeviceQueue GetDeviceQueue;
54 PFN_vkQueueSubmit QueueSubmit;
55 PFN_vkQueueWaitIdle QueueWaitIdle;
56 PFN_vkDeviceWaitIdle DeviceWaitIdle;
57 PFN_vkAllocateMemory AllocateMemory;
58 PFN_vkFreeMemory FreeMemory;
59 PFN_vkMapMemory MapMemory;
60 PFN_vkUnmapMemory UnmapMemory;
61 PFN_vkFlushMappedMemoryRanges FlushMappedMemoryRanges;
62 PFN_vkInvalidateMappedMemoryRanges InvalidateMappedMemoryRanges;
63 PFN_vkGetDeviceMemoryCommitment GetDeviceMemoryCommitment;
64 PFN_vkGetBufferMemoryRequirements GetBufferMemoryRequirements;
65 PFN_vkBindBufferMemory BindBufferMemory;
66 PFN_vkGetImageMemoryRequirements GetImageMemoryRequirements;
67 PFN_vkBindImageMemory BindImageMemory;
68 PFN_vkGetImageSparseMemoryRequirements GetImageSparseMemoryRequirements;
69 PFN_vkQueueBindSparse QueueBindSparse;
70 PFN_vkCreateFence CreateFence;
71 PFN_vkDestroyFence DestroyFence;
72 PFN_vkResetFences ResetFences;
73 PFN_vkGetFenceStatus GetFenceStatus;
74 PFN_vkWaitForFences WaitForFences;
75 PFN_vkCreateSemaphore CreateSemaphore;
76 PFN_vkDestroySemaphore DestroySemaphore;
77 PFN_vkCreateEvent CreateEvent;
78 PFN_vkDestroyEvent DestroyEvent;
79 PFN_vkGetEventStatus GetEventStatus;
80 PFN_vkSetEvent SetEvent;
81 PFN_vkResetEvent ResetEvent;
82 PFN_vkCreateQueryPool CreateQueryPool;
83 PFN_vkDestroyQueryPool DestroyQueryPool;
84 PFN_vkGetQueryPoolResults GetQueryPoolResults;
85 PFN_vkCreateBuffer CreateBuffer;
86 PFN_vkDestroyBuffer DestroyBuffer;
87 PFN_vkCreateBufferView CreateBufferView;
88 PFN_vkDestroyBufferView DestroyBufferView;
89 PFN_vkCreateImage CreateImage;
90 PFN_vkDestroyImage DestroyImage;
91 PFN_vkGetImageSubresourceLayout GetImageSubresourceLayout;
92 PFN_vkCreateImageView CreateImageView;
93 PFN_vkDestroyImageView DestroyImageView;
94 PFN_vkCreateShaderModule CreateShaderModule;
95 PFN_vkDestroyShaderModule DestroyShaderModule;
96 PFN_vkCreatePipelineCache CreatePipelineCache;
97 PFN_vkDestroyPipelineCache DestroyPipelineCache;
98 PFN_vkGetPipelineCacheData GetPipelineCacheData;
99 PFN_vkMergePipelineCaches MergePipelineCaches;
100 PFN_vkCreateGraphicsPipelines CreateGraphicsPipelines;
101 PFN_vkCreateComputePipelines CreateComputePipelines;
102 PFN_vkDestroyPipeline DestroyPipeline;
103 PFN_vkCreatePipelineLayout CreatePipelineLayout;
104 PFN_vkDestroyPipelineLayout DestroyPipelineLayout;
105 PFN_vkCreateSampler CreateSampler;
106 PFN_vkDestroySampler DestroySampler;
107 PFN_vkCreateDescriptorSetLayout CreateDescriptorSetLayout;
108 PFN_vkDestroyDescriptorSetLayout DestroyDescriptorSetLayout;
109 PFN_vkCreateDescriptorPool CreateDescriptorPool;
110 PFN_vkDestroyDescriptorPool DestroyDescriptorPool;
111 PFN_vkResetDescriptorPool ResetDescriptorPool;
112 PFN_vkAllocateDescriptorSets AllocateDescriptorSets;
113 PFN_vkFreeDescriptorSets FreeDescriptorSets;
114 PFN_vkUpdateDescriptorSets UpdateDescriptorSets;
115 PFN_vkCreateFramebuffer CreateFramebuffer;
116 PFN_vkDestroyFramebuffer DestroyFramebuffer;
117 PFN_vkCreateRenderPass CreateRenderPass;
118 PFN_vkDestroyRenderPass DestroyRenderPass;
119 PFN_vkGetRenderAreaGranularity GetRenderAreaGranularity;
120 PFN_vkCreateCommandPool CreateCommandPool;
121 PFN_vkDestroyCommandPool DestroyCommandPool;
122 PFN_vkResetCommandPool ResetCommandPool;
123 PFN_vkAllocateCommandBuffers AllocateCommandBuffers;
124 PFN_vkFreeCommandBuffers FreeCommandBuffers;
125 PFN_vkBeginCommandBuffer BeginCommandBuffer;
126 PFN_vkEndCommandBuffer EndCommandBuffer;
127 PFN_vkResetCommandBuffer ResetCommandBuffer;
128 PFN_vkCmdBindPipeline CmdBindPipeline;
129 PFN_vkCmdSetViewport CmdSetViewport;
130 PFN_vkCmdSetScissor CmdSetScissor;
131 PFN_vkCmdSetLineWidth CmdSetLineWidth;
132 PFN_vkCmdSetDepthBias CmdSetDepthBias;
133 PFN_vkCmdSetBlendConstants CmdSetBlendConstants;
134 PFN_vkCmdSetDepthBounds CmdSetDepthBounds;
135 PFN_vkCmdSetStencilCompareMask CmdSetStencilCompareMask;
136 PFN_vkCmdSetStencilWriteMask CmdSetStencilWriteMask;
137 PFN_vkCmdSetStencilReference CmdSetStencilReference;
138 PFN_vkCmdBindDescriptorSets CmdBindDescriptorSets;
139 PFN_vkCmdBindIndexBuffer CmdBindIndexBuffer;
140 PFN_vkCmdBindVertexBuffers CmdBindVertexBuffers;
141 PFN_vkCmdDraw CmdDraw;
142 PFN_vkCmdDrawIndexed CmdDrawIndexed;
143 PFN_vkCmdDrawIndirect CmdDrawIndirect;
144 PFN_vkCmdDrawIndexedIndirect CmdDrawIndexedIndirect;
145 PFN_vkCmdDispatch CmdDispatch;
146 PFN_vkCmdDispatchIndirect CmdDispatchIndirect;
147 PFN_vkCmdCopyBuffer CmdCopyBuffer;
148 PFN_vkCmdCopyImage CmdCopyImage;
149 PFN_vkCmdBlitImage CmdBlitImage;
150 PFN_vkCmdCopyBufferToImage CmdCopyBufferToImage;
151 PFN_vkCmdCopyImageToBuffer CmdCopyImageToBuffer;
152 PFN_vkCmdUpdateBuffer CmdUpdateBuffer;
153 PFN_vkCmdFillBuffer CmdFillBuffer;
154 PFN_vkCmdClearColorImage CmdClearColorImage;
155 PFN_vkCmdClearDepthStencilImage CmdClearDepthStencilImage;
156 PFN_vkCmdClearAttachments CmdClearAttachments;
157 PFN_vkCmdResolveImage CmdResolveImage;
158 PFN_vkCmdSetEvent CmdSetEvent;
159 PFN_vkCmdResetEvent CmdResetEvent;
160 PFN_vkCmdWaitEvents CmdWaitEvents;
161 PFN_vkCmdPipelineBarrier CmdPipelineBarrier;
162 PFN_vkCmdBeginQuery CmdBeginQuery;
163 PFN_vkCmdEndQuery CmdEndQuery;
164 PFN_vkCmdResetQueryPool CmdResetQueryPool;
165 PFN_vkCmdWriteTimestamp CmdWriteTimestamp;
166 PFN_vkCmdCopyQueryPoolResults CmdCopyQueryPoolResults;
167 PFN_vkCmdPushConstants CmdPushConstants;
168 PFN_vkCmdBeginRenderPass CmdBeginRenderPass;
169 PFN_vkCmdNextSubpass CmdNextSubpass;
170 PFN_vkCmdEndRenderPass CmdEndRenderPass;
171 PFN_vkCmdExecuteCommands CmdExecuteCommands;
172 PFN_vkCreateSwapchainKHR CreateSwapchainKHR;
173 PFN_vkDestroySwapchainKHR DestroySwapchainKHR;
174 PFN_vkGetSwapchainImagesKHR GetSwapchainImagesKHR;
175 PFN_vkAcquireNextImageKHR AcquireNextImageKHR;
176 PFN_vkQueuePresentKHR QueuePresentKHR;
177 // clang-format on
178};
179
180struct DriverDispatchTable {
181 // clang-format off
182 PFN_vkDestroyInstance DestroyInstance;
183 PFN_vkEnumeratePhysicalDevices EnumeratePhysicalDevices;
184 PFN_vkGetPhysicalDeviceProperties GetPhysicalDeviceProperties;
185 PFN_vkGetPhysicalDeviceQueueFamilyProperties GetPhysicalDeviceQueueFamilyProperties;
186 PFN_vkGetPhysicalDeviceMemoryProperties GetPhysicalDeviceMemoryProperties;
187 PFN_vkGetPhysicalDeviceFeatures GetPhysicalDeviceFeatures;
188 PFN_vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties;
189 PFN_vkGetPhysicalDeviceImageFormatProperties GetPhysicalDeviceImageFormatProperties;
190 PFN_vkCreateDevice CreateDevice;
191 PFN_vkEnumerateDeviceLayerProperties EnumerateDeviceLayerProperties;
192 PFN_vkEnumerateDeviceExtensionProperties EnumerateDeviceExtensionProperties;
193 PFN_vkGetPhysicalDeviceSparseImageFormatProperties GetPhysicalDeviceSparseImageFormatProperties;
Jesse Hall715b86a2016-01-16 16:34:29 -0800194 PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallbackEXT;
195 PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallbackEXT;
196 PFN_vkDebugReportMessageEXT DebugReportMessageEXT;
Jesse Hall1f91d392015-12-11 16:28:44 -0800197 PFN_vkGetDeviceProcAddr GetDeviceProcAddr;
198 PFN_vkCreateImage CreateImage;
199 PFN_vkDestroyImage DestroyImage;
200 PFN_vkGetSwapchainGrallocUsageANDROID GetSwapchainGrallocUsageANDROID;
201 PFN_vkAcquireImageANDROID AcquireImageANDROID;
202 PFN_vkQueueSignalReleaseImageANDROID QueueSignalReleaseImageANDROID;
203 // clang-format on
204};
205
206} // namespace vulkan