blob: a42ca3bb9c7d6cc76333c6aab2e75362dca10764 [file] [log] [blame]
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001"""Vulkan API description"""
2# See vulkan_api_generator.py for modifications
Chia-I Wufb2559d2014-08-01 11:19:52 +08003
Karl Schultz8e42f402016-02-02 19:32:33 -07004# Copyright (c) 2015-2016 The Khronos Group Inc.
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07005# Copyright (c) 2015-2016 Valve Corporation# Copyright (c) 2015-2016 LunarG, Inc.# Copyright (c) 2015-2016 Google Inc.
Chia-I Wufb2559d2014-08-01 11:19:52 +08006#
Jon Ashburn3ebf1252016-04-19 11:30:31 -06007# Licensed under the Apache License, Version 2.0 (the "License");
8# you may not use this file except in compliance with the License.
9# You may obtain a copy of the License at
Chia-I Wufb2559d2014-08-01 11:19:52 +080010#
Jon Ashburn3ebf1252016-04-19 11:30:31 -060011# http://www.apache.org/licenses/LICENSE-2.0
Chia-I Wufb2559d2014-08-01 11:19:52 +080012#
Jon Ashburn3ebf1252016-04-19 11:30:31 -060013# Unless required by applicable law or agreed to in writing, software
14# distributed under the License is distributed on an "AS IS" BASIS,
15# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16# See the License for the specific language governing permissions and
17# limitations under the License.
Courtney Goeltzenleuchter05559522015-10-30 11:14:30 -060018#
Jon Ashburn19d3bf12015-12-30 14:06:55 -070019# Author: Chia-I Wu <olv@lunarg.com>
20# Author: Jon Ashburn <jon@lunarg.com>
Courtney Goeltzenleuchter05559522015-10-30 11:14:30 -060021# Author: Courtney Goeltzenleuchter <courtney@LunarG.com>
22# Author: Tobin Ehlis <tobin@lunarg.com>
23# Author: Tony Barbour <tony@LunarG.com>
Mun, Gwan-gyeongbd4dd592016-02-22 09:43:09 +090024# Author: Gwan-gyeong Mun <kk.moon@samsung.com>
Mark Lobodzinskie3481c02016-11-16 14:53:26 -070025# Author: Mark Lobodzinski <mark@lunarg.com>
26#
Chia-I Wufb2559d2014-08-01 11:19:52 +080027
28class Param(object):
Mark Lobodzinskie3481c02016-11-16 14:53:26 -070029 """Function parameter"""
Chia-I Wufb2559d2014-08-01 11:19:52 +080030
31 def __init__(self, ty, name):
32 self.ty = ty
33 self.name = name
34
35 def c(self):
36 """Return the parameter in C."""
37 idx = self.ty.find("[")
38
39 # arrays have a different syntax
40 if idx >= 0:
41 return "%s %s%s" % (self.ty[:idx], self.name, self.ty[idx:])
42 else:
43 return "%s %s" % (self.ty, self.name)
44
45class Proto(object):
Mark Lobodzinskie3481c02016-11-16 14:53:26 -070046 """Function prototype"""
Chia-I Wufb2559d2014-08-01 11:19:52 +080047
Chia-I Wue442dc32015-01-01 09:31:15 +080048 def __init__(self, ret, name, params=[]):
Mark Lobodzinskie3481c02016-11-16 14:53:26 -070049 # Prototype has only a param
Chia-I Wue442dc32015-01-01 09:31:15 +080050 if not isinstance(params, list):
51 params = [params]
Chia-I Wufb2559d2014-08-01 11:19:52 +080052
53 self.ret = ret
54 self.name = name
55 self.params = params
56
57 def c_params(self, need_type=True, need_name=True):
58 """Return the parameter list in C."""
59 if self.params and (need_type or need_name):
60 if need_type and need_name:
61 return ", ".join([param.c() for param in self.params])
62 elif need_type:
63 return ", ".join([param.ty for param in self.params])
64 else:
65 return ", ".join([param.name for param in self.params])
66 else:
67 return "void" if need_type else ""
68
69 def c_decl(self, name, attr="", typed=False, need_param_names=True):
70 """Return a named declaration in C."""
Chia-I Wu9ab61502015-11-06 06:42:02 +080071 if typed:
72 return "%s (%s*%s)(%s)" % (
73 self.ret,
74 attr + "_PTR " if attr else "",
Chia-I Wufb2559d2014-08-01 11:19:52 +080075 name,
76 self.c_params(need_name=need_param_names))
Chia-I Wufb2559d2014-08-01 11:19:52 +080077 else:
Chia-I Wu9ab61502015-11-06 06:42:02 +080078 return "%s%s %s%s(%s)" % (
79 attr + "_ATTR " if attr else "",
80 self.ret,
81 attr + "_CALL " if attr else "",
82 name,
83 self.c_params(need_name=need_param_names))
Chia-I Wufb2559d2014-08-01 11:19:52 +080084
Mark Lobodzinskifb4ce3d2016-10-26 09:29:08 -060085 def c_pretty_decl(self, name, attr=""):
86 """Return a named declaration in C, with vulkan.h formatting."""
87 plist = []
88 for param in self.params:
89 idx = param.ty.find("[")
90 if idx < 0:
91 idx = len(param.ty)
Mark Lobodzinskifb4ce3d2016-10-26 09:29:08 -060092 pad = 44 - idx
93 if pad <= 0:
94 pad = 1
95
Mark Lobodzinskie3481c02016-11-16 14:53:26 -070096 plist.append(" %s%s%s%s" % (param.ty[:idx], " " * pad, param.name, param.ty[idx:]))
Mark Lobodzinskifb4ce3d2016-10-26 09:29:08 -060097
98 return "%s%s %s%s(\n%s)" % (
99 attr + "_ATTR " if attr else "",
100 self.ret,
101 attr + "_CALL " if attr else "",
102 name,
103 ",\n".join(plist))
104
105 def c_func(self, prefix="", attr=""):
106 """Return the prototype in C."""
107 return self.c_decl(prefix + self.name, attr=attr, typed=False)
108
109 def c_call(self):
110 """Return a call to the prototype in C."""
111 return "%s(%s)" % (self.name, self.c_params(need_type=False))
112
Chia-I Wua5d28fa2015-01-04 15:02:50 +0800113 def object_in_params(self):
Courtney Goeltzenleuchterd8e229c2015-04-08 15:36:08 -0600114 """Return the params that are simple VK objects and are inputs."""
Chia-I Wua5d28fa2015-01-04 15:02:50 +0800115 return [param for param in self.params if param.ty in objects]
116
Mark Lobodzinskifb4ce3d2016-10-26 09:29:08 -0600117 def __repr__(self):
118 param_strs = []
119 for param in self.params:
120 param_strs.append(str(param))
121 param_str = " [%s]" % (",\n ".join(param_strs))
122
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700123 return "Proto(\"%s\", \"%s\",\n%s)" % (self.ret, self.name, param_str)
Mark Lobodzinskifb4ce3d2016-10-26 09:29:08 -0600124
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800125class Extension(object):
David Hubbardbb623952016-08-19 13:30:06 -0600126 def __init__(self, name, headers, objects, protos, ifdef = None):
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800127 self.name = name
128 self.headers = headers
Chia-I Wue86d8ab2015-01-04 14:46:22 +0800129 self.objects = objects
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800130 self.protos = protos
David Hubbardbb623952016-08-19 13:30:06 -0600131 self.ifdef = ifdef
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800132
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700133
Mark Lobodzinski33f60e22016-10-27 09:48:53 -0600134VK_VERSION_1_0 = Extension(
135 name="VK_VERSION_1_0",
Mark Lobodzinski510e20d2016-02-11 09:26:16 -0700136 headers=["vulkan/vulkan.h"],
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700137 ifdef="",
Chia-I Wue86d8ab2015-01-04 14:46:22 +0800138 objects=[
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600139 "VkInstance",
Tony Barbourd1c35722015-04-16 15:59:00 -0600140 "VkPhysicalDevice",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600141 "VkDevice",
142 "VkQueue",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600143 "VkFence",
Tony Barbourd1c35722015-04-16 15:59:00 -0600144 "VkDeviceMemory",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600145 "VkBuffer",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600146 "VkImage",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700147 "VkSemaphore",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600148 "VkEvent",
149 "VkQueryPool",
150 "VkBufferView",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600151 "VkImageView",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600152 "VkShaderModule",
Tony Barboura05dbaa2015-07-09 17:31:46 -0600153 "VkPipelineCache",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600154 "VkPipeline",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700155 "VkPipelineLayout",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600156 "VkSampler",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700157 "VkDescriptorSetLayout",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600158 "VkDescriptorPool",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600159 "VkDescriptorSet",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600160 "VkFramebuffer",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700161 "VkRenderPass",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800162 "VkCommandPool",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700163 "VkCommandBuffer",
Chia-I Wue86d8ab2015-01-04 14:46:22 +0800164 ],
Chia-I Wue442dc32015-01-01 09:31:15 +0800165 protos=[
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600166 Proto("VkResult", "CreateInstance",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700167 [
168 Param("VkInstanceCreateInfo", "pCreateInfo"),
169 Param("VkAllocationCallbacks", "pAllocator"),
170 Param("VkInstance", "pInstance"),
171 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600172 Proto("void", "DestroyInstance",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700173 [
174 Param("VkInstance", "instance"),
175 Param("VkAllocationCallbacks", "pAllocator"),
176 ]),
Jon Ashburn83a64252015-04-15 11:31:12 -0600177 Proto("VkResult", "EnumeratePhysicalDevices",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700178 [
179 Param("VkInstance", "instance"),
180 Param("uint32_t", "pPhysicalDeviceCount"),
181 Param("VkPhysicalDevice", "pPhysicalDevices"),
182 ]),
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600183 Proto("void", "GetPhysicalDeviceFeatures",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700184 [
185 Param("VkPhysicalDevice", "physicalDevice"),
186 Param("VkPhysicalDeviceFeatures", "pFeatures"),
187 ]),
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600188 Proto("void", "GetPhysicalDeviceFormatProperties",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700189 [
190 Param("VkPhysicalDevice", "physicalDevice"),
Chris Forbesbc0bb772015-06-21 22:55:02 +1200191 Param("VkFormat", "format"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700192 Param("VkFormatProperties", "pFormatProperties"),
193 ]),
Chia-I Wu17241042015-10-31 00:31:16 +0800194 Proto("VkResult", "GetPhysicalDeviceImageFormatProperties",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700195 [
196 Param("VkPhysicalDevice", "physicalDevice"),
Jon Ashburn42540ef2015-07-23 18:48:20 -0600197 Param("VkFormat", "format"),
198 Param("VkImageType", "type"),
199 Param("VkImageTiling", "tiling"),
200 Param("VkImageUsageFlags", "usage"),
Courtney Goeltzenleuchtera22097a2015-09-10 13:44:12 -0600201 Param("VkImageCreateFlags", "flags"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700202 Param("VkImageFormatProperties", "pImageFormatProperties"),
203 ]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800204 Proto("void", "GetPhysicalDeviceProperties",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700205 [
206 Param("VkPhysicalDevice", "physicalDevice"),
207 Param("VkPhysicalDeviceProperties", "pProperties"),
208 ]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800209 Proto("void", "GetPhysicalDeviceQueueFamilyProperties",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700210 [
211 Param("VkPhysicalDevice", "physicalDevice"),
212 Param("uint32_t", "pQueueFamilyPropertyCount"),
213 Param("VkQueueFamilyProperties", "pQueueFamilyProperties"),
214 ]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800215 Proto("void", "GetPhysicalDeviceMemoryProperties",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700216 [
217 Param("VkPhysicalDevice", "physicalDevice"),
218 Param("VkPhysicalDeviceMemoryProperties", "pMemoryProperties"),
219 ]),
Courtney Goeltzenleuchter2d3ba632015-07-12 14:35:22 -0600220 Proto("PFN_vkVoidFunction", "GetInstanceProcAddr",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700221 [
222 Param("VkInstance", "instance"),
223 Param("char", "pName"),
224 ]),
Courtney Goeltzenleuchter2d3ba632015-07-12 14:35:22 -0600225 Proto("PFN_vkVoidFunction", "GetDeviceProcAddr",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700226 [
227 Param("VkDevice", "device"),
228 Param("char", "pName"),
229 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600230 Proto("VkResult", "CreateDevice",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700231 [
232 Param("VkPhysicalDevice", "physicalDevice"),
233 Param("VkDeviceCreateInfo", "pCreateInfo"),
234 Param("VkAllocationCallbacks", "pAllocator"),
235 Param("VkDevice", "pDevice"),
236 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600237 Proto("void", "DestroyDevice",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700238 [
239 Param("VkDevice", "device"),
240 Param("VkAllocationCallbacks", "pAllocator"),
241 ]),
Courtney Goeltzenleuchter35985f62015-09-14 17:22:16 -0600242 Proto("VkResult", "EnumerateInstanceExtensionProperties",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700243 [
244 Param("char", "pLayerName"),
245 Param("uint32_t", "pPropertyCount"),
246 Param("VkExtensionProperties", "pProperties"),
247 ]),
Courtney Goeltzenleuchter35985f62015-09-14 17:22:16 -0600248 Proto("VkResult", "EnumerateDeviceExtensionProperties",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700249 [
250 Param("VkPhysicalDevice", "physicalDevice"),
251 Param("char", "pLayerName"),
252 Param("uint32_t", "pPropertyCount"),
253 Param("VkExtensionProperties", "pProperties"),
254 ]),
Courtney Goeltzenleuchter35985f62015-09-14 17:22:16 -0600255 Proto("VkResult", "EnumerateInstanceLayerProperties",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700256 [
257 Param("uint32_t", "pPropertyCount"),
258 Param("VkLayerProperties", "pProperties"),
259 ]),
Courtney Goeltzenleuchter35985f62015-09-14 17:22:16 -0600260 Proto("VkResult", "EnumerateDeviceLayerProperties",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700261 [
262 Param("VkPhysicalDevice", "physicalDevice"),
263 Param("uint32_t", "pPropertyCount"),
264 Param("VkLayerProperties", "pProperties"),
265 ]),
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600266 Proto("void", "GetDeviceQueue",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700267 [
268 Param("VkDevice", "device"),
Jon Ashburnea65e492015-08-06 17:27:49 -0600269 Param("uint32_t", "queueFamilyIndex"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600270 Param("uint32_t", "queueIndex"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700271 Param("VkQueue", "pQueue"),
272 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600273 Proto("VkResult", "QueueSubmit",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700274 [
275 Param("VkQueue", "queue"),
Courtney Goeltzenleuchter646b9072015-10-20 18:04:07 -0600276 Param("uint32_t", "submitCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700277 Param("VkSubmitInfo", "pSubmits"),
278 Param("VkFence", "fence"),
279 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600280 Proto("VkResult", "QueueWaitIdle",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700281 [
282 Param("VkQueue", "queue"),
283 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600284 Proto("VkResult", "DeviceWaitIdle",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700285 [
286 Param("VkDevice", "device"),
287 ]),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800288 Proto("VkResult", "AllocateMemory",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700289 [
290 Param("VkDevice", "device"),
291 Param("VkMemoryAllocateInfo", "pAllocateInfo"),
292 Param("VkAllocationCallbacks", "pAllocator"),
293 Param("VkDeviceMemory", "pMemory"),
294 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600295 Proto("void", "FreeMemory",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700296 [
297 Param("VkDevice", "device"),
Chia-I Wubb7fad92015-10-27 17:53:18 +0800298 Param("VkDeviceMemory", "memory"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700299 Param("VkAllocationCallbacks", "pAllocator"),
300 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600301 Proto("VkResult", "MapMemory",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700302 [
303 Param("VkDevice", "device"),
Chia-I Wubb7fad92015-10-27 17:53:18 +0800304 Param("VkDeviceMemory", "memory"),
Tony Barbour71a85122015-04-16 19:09:28 -0600305 Param("VkDeviceSize", "offset"),
306 Param("VkDeviceSize", "size"),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600307 Param("VkMemoryMapFlags", "flags"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700308 Param("void", "ppData"),
309 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600310 Proto("void", "UnmapMemory",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700311 [
312 Param("VkDevice", "device"),
313 Param("VkDeviceMemory", "memory"),
314 ]),
Courtney Goeltzenleuchterf69f8a22015-04-29 17:16:21 -0600315 Proto("VkResult", "FlushMappedMemoryRanges",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700316 [
317 Param("VkDevice", "device"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800318 Param("uint32_t", "memoryRangeCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700319 Param("VkMappedMemoryRange", "pMemoryRanges"),
320 ]),
Courtney Goeltzenleuchterf69f8a22015-04-29 17:16:21 -0600321 Proto("VkResult", "InvalidateMappedMemoryRanges",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700322 [
323 Param("VkDevice", "device"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800324 Param("uint32_t", "memoryRangeCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700325 Param("VkMappedMemoryRange", "pMemoryRanges"),
326 ]),
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600327 Proto("void", "GetDeviceMemoryCommitment",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700328 [
329 Param("VkDevice", "device"),
Courtney Goeltzenleuchterfb71f222015-07-09 21:57:28 -0600330 Param("VkDeviceMemory", "memory"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700331 Param("VkDeviceSize", "pCommittedMemoryInBytes"),
332 ]),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600333 Proto("VkResult", "BindBufferMemory",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700334 [
335 Param("VkDevice", "device"),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600336 Param("VkBuffer", "buffer"),
Chia-I Wubb7fad92015-10-27 17:53:18 +0800337 Param("VkDeviceMemory", "memory"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700338 Param("VkDeviceSize", "memoryOffset"),
339 ]),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600340 Proto("VkResult", "BindImageMemory",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700341 [
342 Param("VkDevice", "device"),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600343 Param("VkImage", "image"),
Chia-I Wubb7fad92015-10-27 17:53:18 +0800344 Param("VkDeviceMemory", "memory"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700345 Param("VkDeviceSize", "memoryOffset"),
346 ]),
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600347 Proto("void", "GetBufferMemoryRequirements",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700348 [
349 Param("VkDevice", "device"),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600350 Param("VkBuffer", "buffer"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700351 Param("VkMemoryRequirements", "pMemoryRequirements"),
352 ]),
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600353 Proto("void", "GetImageMemoryRequirements",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700354 [
355 Param("VkDevice", "device"),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600356 Param("VkImage", "image"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700357 Param("VkMemoryRequirements", "pMemoryRequirements"),
358 ]),
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600359 Proto("void", "GetImageSparseMemoryRequirements",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700360 [
361 Param("VkDevice", "device"),
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -0600362 Param("VkImage", "image"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700363 Param("uint32_t", "pSparseMemoryRequirementCount"),
364 Param("VkSparseImageMemoryRequirements", "pSparseMemoryRequirements"),
365 ]),
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600366 Proto("void", "GetPhysicalDeviceSparseImageFormatProperties",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700367 [
368 Param("VkPhysicalDevice", "physicalDevice"),
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -0600369 Param("VkFormat", "format"),
370 Param("VkImageType", "type"),
Chia-I Wu5c17c962015-10-31 00:31:16 +0800371 Param("VkSampleCountFlagBits", "samples"),
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -0600372 Param("VkImageUsageFlags", "usage"),
373 Param("VkImageTiling", "tiling"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700374 Param("uint32_t", "pPropertyCount"),
375 Param("VkSparseImageFormatProperties", "pProperties"),
376 ]),
Chia-I Wu1ff4c3d2015-10-26 16:55:27 +0800377 Proto("VkResult", "QueueBindSparse",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700378 [
379 Param("VkQueue", "queue"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800380 Param("uint32_t", "bindInfoCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700381 Param("VkBindSparseInfo", "pBindInfo"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800382 Param("VkFence", "fence"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700383 ]),
384 Proto("VkResult", "CreateFence",
385 [
386 Param("VkDevice", "device"),
387 Param("VkFenceCreateInfo", "pCreateInfo"),
388 Param("VkAllocationCallbacks", "pAllocator"),
389 Param("VkFence", "pFence"),
390 ]),
391 Proto("void", "DestroyFence",
392 [
393 Param("VkDevice", "device"),
394 Param("VkFence", "fence"),
395 Param("VkAllocationCallbacks", "pAllocator"),
396 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600397 Proto("VkResult", "ResetFences",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700398 [
399 Param("VkDevice", "device"),
Mark Lobodzinski148e1582015-04-07 16:07:57 -0500400 Param("uint32_t", "fenceCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700401 Param("VkFence", "pFences"),
402 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600403 Proto("VkResult", "GetFenceStatus",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700404 [
405 Param("VkDevice", "device"),
406 Param("VkFence", "fence"),
407 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600408 Proto("VkResult", "WaitForFences",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700409 [
410 Param("VkDevice", "device"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600411 Param("uint32_t", "fenceCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700412 Param("VkFence", "pFences"),
Courtney Goeltzenleuchtercd2a0992015-07-09 11:44:38 -0600413 Param("VkBool32", "waitAll"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700414 Param("uint64_t", "timeout"),
415 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600416 Proto("VkResult", "CreateSemaphore",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700417 [
418 Param("VkDevice", "device"),
419 Param("VkSemaphoreCreateInfo", "pCreateInfo"),
420 Param("VkAllocationCallbacks", "pAllocator"),
421 Param("VkSemaphore", "pSemaphore"),
422 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600423 Proto("void", "DestroySemaphore",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700424 [
425 Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800426 Param("VkSemaphore", "semaphore"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700427 Param("VkAllocationCallbacks", "pAllocator"),
428 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600429 Proto("VkResult", "CreateEvent",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700430 [
431 Param("VkDevice", "device"),
432 Param("VkEventCreateInfo", "pCreateInfo"),
433 Param("VkAllocationCallbacks", "pAllocator"),
434 Param("VkEvent", "pEvent"),
435 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600436 Proto("void", "DestroyEvent",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700437 [
438 Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800439 Param("VkEvent", "event"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700440 Param("VkAllocationCallbacks", "pAllocator"),
441 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600442 Proto("VkResult", "GetEventStatus",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700443 [
444 Param("VkDevice", "device"),
445 Param("VkEvent", "event"),
446 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600447 Proto("VkResult", "SetEvent",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700448 [
449 Param("VkDevice", "device"),
450 Param("VkEvent", "event"),
451 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600452 Proto("VkResult", "ResetEvent",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700453 [
454 Param("VkDevice", "device"),
455 Param("VkEvent", "event"),
456 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600457 Proto("VkResult", "CreateQueryPool",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700458 [
459 Param("VkDevice", "device"),
460 Param("VkQueryPoolCreateInfo", "pCreateInfo"),
461 Param("VkAllocationCallbacks", "pAllocator"),
462 Param("VkQueryPool", "pQueryPool"),
463 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600464 Proto("void", "DestroyQueryPool",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700465 [
466 Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800467 Param("VkQueryPool", "queryPool"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700468 Param("VkAllocationCallbacks", "pAllocator"),
469 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600470 Proto("VkResult", "GetQueryPoolResults",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700471 [
472 Param("VkDevice", "device"),
Mike Stroyanb050c682015-04-17 12:36:38 -0600473 Param("VkQueryPool", "queryPool"),
Jon Ashburn19d3bf12015-12-30 14:06:55 -0700474 Param("uint32_t", "firstQuery"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600475 Param("uint32_t", "queryCount"),
Chia-I Wuccc93a72015-10-26 18:36:20 +0800476 Param("size_t", "dataSize"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700477 Param("void", "pData"),
Chia-I Wuccc93a72015-10-26 18:36:20 +0800478 Param("VkDeviceSize", "stride"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700479 Param("VkQueryResultFlags", "flags"),
480 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600481 Proto("VkResult", "CreateBuffer",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700482 [
483 Param("VkDevice", "device"),
484 Param("VkBufferCreateInfo", "pCreateInfo"),
485 Param("VkAllocationCallbacks", "pAllocator"),
486 Param("VkBuffer", "pBuffer"),
487 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600488 Proto("void", "DestroyBuffer",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700489 [
490 Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800491 Param("VkBuffer", "buffer"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700492 Param("VkAllocationCallbacks", "pAllocator"),
493 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600494 Proto("VkResult", "CreateBufferView",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700495 [
496 Param("VkDevice", "device"),
497 Param("VkBufferViewCreateInfo", "pCreateInfo"),
498 Param("VkAllocationCallbacks", "pAllocator"),
499 Param("VkBufferView", "pView"),
500 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600501 Proto("void", "DestroyBufferView",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700502 [
503 Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800504 Param("VkBufferView", "bufferView"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700505 Param("VkAllocationCallbacks", "pAllocator"),
506 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600507 Proto("VkResult", "CreateImage",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700508 [
509 Param("VkDevice", "device"),
510 Param("VkImageCreateInfo", "pCreateInfo"),
511 Param("VkAllocationCallbacks", "pAllocator"),
512 Param("VkImage", "pImage"),
513 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600514 Proto("void", "DestroyImage",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700515 [
516 Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800517 Param("VkImage", "image"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700518 Param("VkAllocationCallbacks", "pAllocator"),
519 ]),
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600520 Proto("void", "GetImageSubresourceLayout",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700521 [
522 Param("VkDevice", "device"),
Mike Stroyanb050c682015-04-17 12:36:38 -0600523 Param("VkImage", "image"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700524 Param("VkImageSubresource", "pSubresource"),
525 Param("VkSubresourceLayout", "pLayout"),
526 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600527 Proto("VkResult", "CreateImageView",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700528 [
529 Param("VkDevice", "device"),
530 Param("VkImageViewCreateInfo", "pCreateInfo"),
531 Param("VkAllocationCallbacks", "pAllocator"),
532 Param("VkImageView", "pView"),
533 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600534 Proto("void", "DestroyImageView",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700535 [
536 Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800537 Param("VkImageView", "imageView"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700538 Param("VkAllocationCallbacks", "pAllocator"),
539 ]),
Courtney Goeltzenleuchter2d2cb682015-06-24 18:24:19 -0600540 Proto("VkResult", "CreateShaderModule",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700541 [
542 Param("VkDevice", "device"),
543 Param("VkShaderModuleCreateInfo", "pCreateInfo"),
544 Param("VkAllocationCallbacks", "pAllocator"),
545 Param("VkShaderModule", "pShaderModule"),
546 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600547 Proto("void", "DestroyShaderModule",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700548 [
549 Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800550 Param("VkShaderModule", "shaderModule"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700551 Param("VkAllocationCallbacks", "pAllocator"),
552 ]),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600553 Proto("VkResult", "CreatePipelineCache",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700554 [
555 Param("VkDevice", "device"),
556 Param("VkPipelineCacheCreateInfo", "pCreateInfo"),
557 Param("VkAllocationCallbacks", "pAllocator"),
558 Param("VkPipelineCache", "pPipelineCache"),
559 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600560 Proto("void", "DestroyPipelineCache",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700561 [
562 Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800563 Param("VkPipelineCache", "pipelineCache"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700564 Param("VkAllocationCallbacks", "pAllocator"),
565 ]),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600566 Proto("VkResult", "GetPipelineCacheData",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700567 [
568 Param("VkDevice", "device"),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600569 Param("VkPipelineCache", "pipelineCache"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700570 Param("size_t", "pDataSize"),
571 Param("void", "pData"),
572 ]),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600573 Proto("VkResult", "MergePipelineCaches",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700574 [
575 Param("VkDevice", "device"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800576 Param("VkPipelineCache", "dstCache"),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600577 Param("uint32_t", "srcCacheCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700578 Param("VkPipelineCache", "pSrcCaches"),
579 ]),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600580 Proto("VkResult", "CreateGraphicsPipelines",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700581 [
582 Param("VkDevice", "device"),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600583 Param("VkPipelineCache", "pipelineCache"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800584 Param("uint32_t", "createInfoCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700585 Param("VkGraphicsPipelineCreateInfo", "pCreateInfos"),
586 Param("VkAllocationCallbacks", "pAllocator"),
587 Param("VkPipeline", "pPipelines"),
588 ]),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600589 Proto("VkResult", "CreateComputePipelines",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700590 [
591 Param("VkDevice", "device"),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600592 Param("VkPipelineCache", "pipelineCache"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800593 Param("uint32_t", "createInfoCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700594 Param("VkComputePipelineCreateInfo", "pCreateInfos"),
595 Param("VkAllocationCallbacks", "pAllocator"),
596 Param("VkPipeline", "pPipelines"),
597 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600598 Proto("void", "DestroyPipeline",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700599 [
600 Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800601 Param("VkPipeline", "pipeline"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700602 Param("VkAllocationCallbacks", "pAllocator"),
603 ]),
Mark Lobodzinski0fadf5f2015-04-17 14:11:39 -0500604 Proto("VkResult", "CreatePipelineLayout",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700605 [
606 Param("VkDevice", "device"),
607 Param("VkPipelineLayoutCreateInfo", "pCreateInfo"),
608 Param("VkAllocationCallbacks", "pAllocator"),
609 Param("VkPipelineLayout", "pPipelineLayout"),
610 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600611 Proto("void", "DestroyPipelineLayout",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700612 [
613 Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800614 Param("VkPipelineLayout", "pipelineLayout"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700615 Param("VkAllocationCallbacks", "pAllocator"),
616 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600617 Proto("VkResult", "CreateSampler",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700618 [
619 Param("VkDevice", "device"),
620 Param("VkSamplerCreateInfo", "pCreateInfo"),
621 Param("VkAllocationCallbacks", "pAllocator"),
622 Param("VkSampler", "pSampler"),
623 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600624 Proto("void", "DestroySampler",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700625 [
626 Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800627 Param("VkSampler", "sampler"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700628 Param("VkAllocationCallbacks", "pAllocator"),
629 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600630 Proto("VkResult", "CreateDescriptorSetLayout",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700631 [
632 Param("VkDevice", "device"),
633 Param("VkDescriptorSetLayoutCreateInfo", "pCreateInfo"),
634 Param("VkAllocationCallbacks", "pAllocator"),
635 Param("VkDescriptorSetLayout", "pSetLayout"),
636 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600637 Proto("void", "DestroyDescriptorSetLayout",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700638 [
639 Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800640 Param("VkDescriptorSetLayout", "descriptorSetLayout"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700641 Param("VkAllocationCallbacks", "pAllocator"),
642 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600643 Proto("VkResult", "CreateDescriptorPool",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700644 [
645 Param("VkDevice", "device"),
646 Param("VkDescriptorPoolCreateInfo", "pCreateInfo"),
647 Param("VkAllocationCallbacks", "pAllocator"),
648 Param("VkDescriptorPool", "pDescriptorPool"),
649 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600650 Proto("void", "DestroyDescriptorPool",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700651 [
652 Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800653 Param("VkDescriptorPool", "descriptorPool"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700654 Param("VkAllocationCallbacks", "pAllocator"),
655 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600656 Proto("VkResult", "ResetDescriptorPool",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700657 [
658 Param("VkDevice", "device"),
Courtney Goeltzenleuchterbee18a92015-10-23 14:21:05 -0600659 Param("VkDescriptorPool", "descriptorPool"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700660 Param("VkDescriptorPoolResetFlags", "flags"),
661 ]),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800662 Proto("VkResult", "AllocateDescriptorSets",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700663 [
664 Param("VkDevice", "device"),
665 Param("VkDescriptorSetAllocateInfo", "pAllocateInfo"),
666 Param("VkDescriptorSet", "pDescriptorSets"),
667 ]),
Tony Barbour34ec6922015-07-10 10:50:45 -0600668 Proto("VkResult", "FreeDescriptorSets",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700669 [
670 Param("VkDevice", "device"),
Tony Barbour34ec6922015-07-10 10:50:45 -0600671 Param("VkDescriptorPool", "descriptorPool"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800672 Param("uint32_t", "descriptorSetCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700673 Param("VkDescriptorSet", "pDescriptorSets"),
674 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600675 Proto("void", "UpdateDescriptorSets",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700676 [
677 Param("VkDevice", "device"),
Chia-I Wu40cf0ae2015-10-26 17:20:32 +0800678 Param("uint32_t", "descriptorWriteCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700679 Param("VkWriteDescriptorSet", "pDescriptorWrites"),
Chia-I Wu40cf0ae2015-10-26 17:20:32 +0800680 Param("uint32_t", "descriptorCopyCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700681 Param("VkCopyDescriptorSet", "pDescriptorCopies"),
682 ]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800683 Proto("VkResult", "CreateFramebuffer",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700684 [
685 Param("VkDevice", "device"),
686 Param("VkFramebufferCreateInfo", "pCreateInfo"),
687 Param("VkAllocationCallbacks", "pAllocator"),
688 Param("VkFramebuffer", "pFramebuffer"),
689 ]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800690 Proto("void", "DestroyFramebuffer",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700691 [
692 Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800693 Param("VkFramebuffer", "framebuffer"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700694 Param("VkAllocationCallbacks", "pAllocator"),
695 ]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800696 Proto("VkResult", "CreateRenderPass",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700697 [
698 Param("VkDevice", "device"),
699 Param("VkRenderPassCreateInfo", "pCreateInfo"),
700 Param("VkAllocationCallbacks", "pAllocator"),
701 Param("VkRenderPass", "pRenderPass"),
702 ]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800703 Proto("void", "DestroyRenderPass",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700704 [
705 Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800706 Param("VkRenderPass", "renderPass"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700707 Param("VkAllocationCallbacks", "pAllocator"),
708 ]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800709 Proto("void", "GetRenderAreaGranularity",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700710 [
711 Param("VkDevice", "device"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800712 Param("VkRenderPass", "renderPass"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700713 Param("VkExtent2D", "pGranularity"),
714 ]),
Cody Northrope62183e2015-07-09 18:08:05 -0600715 Proto("VkResult", "CreateCommandPool",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700716 [
717 Param("VkDevice", "device"),
718 Param("VkCommandPoolCreateInfo", "pCreateInfo"),
719 Param("VkAllocationCallbacks", "pAllocator"),
720 Param("VkCommandPool", "pCommandPool"),
721 ]),
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600722 Proto("void", "DestroyCommandPool",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700723 [
724 Param("VkDevice", "device"),
Chia-I Wuaed8ca92015-10-27 18:59:16 +0800725 Param("VkCommandPool", "commandPool"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700726 Param("VkAllocationCallbacks", "pAllocator"),
727 ]),
Cody Northrope62183e2015-07-09 18:08:05 -0600728 Proto("VkResult", "ResetCommandPool",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700729 [
730 Param("VkDevice", "device"),
Chia-I Wuaed8ca92015-10-27 18:59:16 +0800731 Param("VkCommandPool", "commandPool"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700732 Param("VkCommandPoolResetFlags", "flags"),
733 ]),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800734 Proto("VkResult", "AllocateCommandBuffers",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700735 [
736 Param("VkDevice", "device"),
737 Param("VkCommandBufferAllocateInfo", "pAllocateInfo"),
738 Param("VkCommandBuffer", "pCommandBuffers"),
739 ]),
Courtney Goeltzenleuchterbee18a92015-10-23 14:21:05 -0600740 Proto("void", "FreeCommandBuffers",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700741 [
742 Param("VkDevice", "device"),
Chia-I Wuaed8ca92015-10-27 18:59:16 +0800743 Param("VkCommandPool", "commandPool"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800744 Param("uint32_t", "commandBufferCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700745 Param("VkCommandBuffer", "pCommandBuffers"),
746 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600747 Proto("VkResult", "BeginCommandBuffer",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700748 [
749 Param("VkCommandBuffer", "commandBuffer"),
750 Param("VkCommandBufferBeginInfo", "pBeginInfo"),
751 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600752 Proto("VkResult", "EndCommandBuffer",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700753 [
754 Param("VkCommandBuffer", "commandBuffer"),
755 ]),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600756 Proto("VkResult", "ResetCommandBuffer",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700757 [
758 Param("VkCommandBuffer", "commandBuffer"),
759 Param("VkCommandBufferResetFlags", "flags"),
760 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600761 Proto("void", "CmdBindPipeline",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700762 [
763 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600764 Param("VkPipelineBindPoint", "pipelineBindPoint"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700765 Param("VkPipeline", "pipeline"),
766 ]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800767 Proto("void", "CmdSetViewport",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700768 [
769 Param("VkCommandBuffer", "commandBuffer"),
Jon Ashburn19d3bf12015-12-30 14:06:55 -0700770 Param("uint32_t", "firstViewport"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800771 Param("uint32_t", "viewportCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700772 Param("VkViewport", "pViewports"),
773 ]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800774 Proto("void", "CmdSetScissor",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700775 [
776 Param("VkCommandBuffer", "commandBuffer"),
Jon Ashburn19d3bf12015-12-30 14:06:55 -0700777 Param("uint32_t", "firstScissor"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800778 Param("uint32_t", "scissorCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700779 Param("VkRect2D", "pScissors"),
780 ]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800781 Proto("void", "CmdSetLineWidth",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700782 [
783 Param("VkCommandBuffer", "commandBuffer"),
784 Param("float", "lineWidth"),
785 ]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800786 Proto("void", "CmdSetDepthBias",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700787 [
788 Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wud8c946a2015-10-26 19:08:09 +0800789 Param("float", "depthBiasConstantFactor"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800790 Param("float", "depthBiasClamp"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700791 Param("float", "depthBiasSlopeFactor"),
792 ]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800793 Proto("void", "CmdSetBlendConstants",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700794 [
795 Param("VkCommandBuffer", "commandBuffer"),
796 Param("float", "blendConstants"),
797 ]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800798 Proto("void", "CmdSetDepthBounds",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700799 [
800 Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800801 Param("float", "minDepthBounds"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700802 Param("float", "maxDepthBounds"),
803 ]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800804 Proto("void", "CmdSetStencilCompareMask",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700805 [
806 Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800807 Param("VkStencilFaceFlags", "faceMask"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700808 Param("uint32_t", "compareMask"),
809 ]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800810 Proto("void", "CmdSetStencilWriteMask",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700811 [
812 Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800813 Param("VkStencilFaceFlags", "faceMask"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700814 Param("uint32_t", "writeMask"),
815 ]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800816 Proto("void", "CmdSetStencilReference",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700817 [
818 Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800819 Param("VkStencilFaceFlags", "faceMask"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700820 Param("uint32_t", "reference"),
821 ]),
Chia-I Wu53f07d72015-03-28 15:23:55 +0800822 Proto("void", "CmdBindDescriptorSets",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700823 [
824 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600825 Param("VkPipelineBindPoint", "pipelineBindPoint"),
Mark Lobodzinskif2093b62015-06-15 13:21:21 -0600826 Param("VkPipelineLayout", "layout"),
Cody Northropd4c1a502015-04-16 13:41:56 -0600827 Param("uint32_t", "firstSet"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800828 Param("uint32_t", "descriptorSetCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700829 Param("VkDescriptorSet", "pDescriptorSets"),
Cody Northropd4c1a502015-04-16 13:41:56 -0600830 Param("uint32_t", "dynamicOffsetCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700831 Param("uint32_t", "pDynamicOffsets"),
832 ]),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600833 Proto("void", "CmdBindIndexBuffer",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700834 [
835 Param("VkCommandBuffer", "commandBuffer"),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600836 Param("VkBuffer", "buffer"),
837 Param("VkDeviceSize", "offset"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700838 Param("VkIndexType", "indexType"),
839 ]),
Courtney Goeltzenleuchterf68ad722015-04-16 13:38:46 -0600840 Proto("void", "CmdBindVertexBuffers",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700841 [
842 Param("VkCommandBuffer", "commandBuffer"),
Jon Ashburn19d3bf12015-12-30 14:06:55 -0700843 Param("uint32_t", "firstBinding"),
Courtney Goeltzenleuchterf68ad722015-04-16 13:38:46 -0600844 Param("uint32_t", "bindingCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700845 Param("VkBuffer", "pBuffers"),
846 Param("VkDeviceSize", "pOffsets"),
847 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600848 Proto("void", "CmdDraw",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700849 [
850 Param("VkCommandBuffer", "commandBuffer"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600851 Param("uint32_t", "vertexCount"),
Courtney Goeltzenleuchter08c26372015-09-23 12:31:50 -0600852 Param("uint32_t", "instanceCount"),
853 Param("uint32_t", "firstVertex"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700854 Param("uint32_t", "firstInstance"),
855 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600856 Proto("void", "CmdDrawIndexed",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700857 [
858 Param("VkCommandBuffer", "commandBuffer"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600859 Param("uint32_t", "indexCount"),
Courtney Goeltzenleuchter08c26372015-09-23 12:31:50 -0600860 Param("uint32_t", "instanceCount"),
861 Param("uint32_t", "firstIndex"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600862 Param("int32_t", "vertexOffset"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700863 Param("uint32_t", "firstInstance"),
864 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600865 Proto("void", "CmdDrawIndirect",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700866 [
867 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600868 Param("VkBuffer", "buffer"),
Tony Barbourd1c35722015-04-16 15:59:00 -0600869 Param("VkDeviceSize", "offset"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800870 Param("uint32_t", "drawCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700871 Param("uint32_t", "stride"),
872 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600873 Proto("void", "CmdDrawIndexedIndirect",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700874 [
875 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600876 Param("VkBuffer", "buffer"),
Tony Barbourd1c35722015-04-16 15:59:00 -0600877 Param("VkDeviceSize", "offset"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800878 Param("uint32_t", "drawCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700879 Param("uint32_t", "stride"),
880 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600881 Proto("void", "CmdDispatch",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700882 [
883 Param("VkCommandBuffer", "commandBuffer"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600884 Param("uint32_t", "x"),
885 Param("uint32_t", "y"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700886 Param("uint32_t", "z"),
887 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600888 Proto("void", "CmdDispatchIndirect",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700889 [
890 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600891 Param("VkBuffer", "buffer"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700892 Param("VkDeviceSize", "offset"),
893 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600894 Proto("void", "CmdCopyBuffer",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700895 [
896 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600897 Param("VkBuffer", "srcBuffer"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800898 Param("VkBuffer", "dstBuffer"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600899 Param("uint32_t", "regionCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700900 Param("VkBufferCopy", "pRegions"),
901 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600902 Proto("void", "CmdCopyImage",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700903 [
904 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600905 Param("VkImage", "srcImage"),
906 Param("VkImageLayout", "srcImageLayout"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800907 Param("VkImage", "dstImage"),
908 Param("VkImageLayout", "dstImageLayout"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600909 Param("uint32_t", "regionCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700910 Param("VkImageCopy", "pRegions"),
911 ]),
Courtney Goeltzenleuchter89299fa2015-03-08 17:02:18 -0600912 Proto("void", "CmdBlitImage",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700913 [
914 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600915 Param("VkImage", "srcImage"),
916 Param("VkImageLayout", "srcImageLayout"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800917 Param("VkImage", "dstImage"),
918 Param("VkImageLayout", "dstImageLayout"),
Courtney Goeltzenleuchter89299fa2015-03-08 17:02:18 -0600919 Param("uint32_t", "regionCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700920 Param("VkImageBlit", "pRegions"),
921 Param("VkFilter", "filter"),
922 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600923 Proto("void", "CmdCopyBufferToImage",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700924 [
925 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600926 Param("VkBuffer", "srcBuffer"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800927 Param("VkImage", "dstImage"),
928 Param("VkImageLayout", "dstImageLayout"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600929 Param("uint32_t", "regionCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700930 Param("VkBufferImageCopy", "pRegions"),
931 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600932 Proto("void", "CmdCopyImageToBuffer",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700933 [
934 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600935 Param("VkImage", "srcImage"),
936 Param("VkImageLayout", "srcImageLayout"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800937 Param("VkBuffer", "dstBuffer"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600938 Param("uint32_t", "regionCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700939 Param("VkBufferImageCopy", "pRegions"),
940 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600941 Proto("void", "CmdUpdateBuffer",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700942 [
943 Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800944 Param("VkBuffer", "dstBuffer"),
945 Param("VkDeviceSize", "dstOffset"),
Tony Barbourd1c35722015-04-16 15:59:00 -0600946 Param("VkDeviceSize", "dataSize"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700947 Param("void", "pData"),
948 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600949 Proto("void", "CmdFillBuffer",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700950 [
951 Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800952 Param("VkBuffer", "dstBuffer"),
953 Param("VkDeviceSize", "dstOffset"),
Chia-I Wu2bfb33c2015-10-26 17:24:52 +0800954 Param("VkDeviceSize", "size"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700955 Param("uint32_t", "data"),
956 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600957 Proto("void", "CmdClearColorImage",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700958 [
959 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600960 Param("VkImage", "image"),
961 Param("VkImageLayout", "imageLayout"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700962 Param("VkClearColorValue", "pColor"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600963 Param("uint32_t", "rangeCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700964 Param("VkImageSubresourceRange", "pRanges"),
965 ]),
Chris Forbesd9be82b2015-06-22 17:21:59 +1200966 Proto("void", "CmdClearDepthStencilImage",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700967 [
968 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600969 Param("VkImage", "image"),
970 Param("VkImageLayout", "imageLayout"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700971 Param("VkClearDepthStencilValue", "pDepthStencil"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600972 Param("uint32_t", "rangeCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700973 Param("VkImageSubresourceRange", "pRanges"),
974 ]),
Courtney Goeltzenleuchterc9323e02015-10-15 16:51:05 -0600975 Proto("void", "CmdClearAttachments",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700976 [
977 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterc9323e02015-10-15 16:51:05 -0600978 Param("uint32_t", "attachmentCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700979 Param("VkClearAttachment", "pAttachments"),
Chris Forbesd9be82b2015-06-22 17:21:59 +1200980 Param("uint32_t", "rectCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700981 Param("VkClearRect", "pRects"),
982 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600983 Proto("void", "CmdResolveImage",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700984 [
985 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600986 Param("VkImage", "srcImage"),
987 Param("VkImageLayout", "srcImageLayout"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800988 Param("VkImage", "dstImage"),
989 Param("VkImageLayout", "dstImageLayout"),
Tony Barbour6865d4a2015-04-13 15:02:52 -0600990 Param("uint32_t", "regionCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700991 Param("VkImageResolve", "pRegions"),
992 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600993 Proto("void", "CmdSetEvent",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700994 [
995 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600996 Param("VkEvent", "event"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700997 Param("VkPipelineStageFlags", "stageMask"),
998 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600999 Proto("void", "CmdResetEvent",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001000 [
1001 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06001002 Param("VkEvent", "event"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001003 Param("VkPipelineStageFlags", "stageMask"),
1004 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -06001005 Proto("void", "CmdWaitEvents",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001006 [
1007 Param("VkCommandBuffer", "commandBuffer"),
Tony Barbourd1c35722015-04-16 15:59:00 -06001008 Param("uint32_t", "eventCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001009 Param("VkEvent", "pEvents"),
Jon Ashburnea65e492015-08-06 17:27:49 -06001010 Param("VkPipelineStageFlags", "srcStageMask"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001011 Param("VkPipelineStageFlags", "dstStageMask"),
1012 Param("uint32_t", "memoryBarrierCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001013 Param("VkMemoryBarrier", "pMemoryBarriers"),
Jon Ashburnf19916e2016-01-11 13:12:43 -07001014 Param("uint32_t", "bufferMemoryBarrierCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001015 Param("VkBufferMemoryBarrier", "pBufferMemoryBarriers"),
Jon Ashburnf19916e2016-01-11 13:12:43 -07001016 Param("uint32_t", "imageMemoryBarrierCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001017 Param("VkImageMemoryBarrier", "pImageMemoryBarriers"),
1018 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -06001019 Proto("void", "CmdPipelineBarrier",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001020 [
1021 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterceebbb12015-07-12 13:07:46 -06001022 Param("VkPipelineStageFlags", "srcStageMask"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001023 Param("VkPipelineStageFlags", "dstStageMask"),
Chia-I Wu53534662015-10-26 17:08:33 +08001024 Param("VkDependencyFlags", "dependencyFlags"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001025 Param("uint32_t", "memoryBarrierCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001026 Param("VkMemoryBarrier", "pMemoryBarriers"),
Jon Ashburnf19916e2016-01-11 13:12:43 -07001027 Param("uint32_t", "bufferMemoryBarrierCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001028 Param("VkBufferMemoryBarrier", "pBufferMemoryBarriers"),
Jon Ashburnf19916e2016-01-11 13:12:43 -07001029 Param("uint32_t", "imageMemoryBarrierCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001030 Param("VkImageMemoryBarrier", "pImageMemoryBarriers"),
1031 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -06001032 Proto("void", "CmdBeginQuery",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001033 [
1034 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06001035 Param("VkQueryPool", "queryPool"),
Jon Ashburnf19916e2016-01-11 13:12:43 -07001036 Param("uint32_t", "query"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001037 Param("VkQueryControlFlags", "flags"),
1038 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -06001039 Proto("void", "CmdEndQuery",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001040 [
1041 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06001042 Param("VkQueryPool", "queryPool"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001043 Param("uint32_t", "query"),
1044 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -06001045 Proto("void", "CmdResetQueryPool",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001046 [
1047 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06001048 Param("VkQueryPool", "queryPool"),
Jon Ashburn19d3bf12015-12-30 14:06:55 -07001049 Param("uint32_t", "firstQuery"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001050 Param("uint32_t", "queryCount"),
1051 ]),
Mark Lobodzinski17caf572015-01-29 08:55:56 -06001052 Proto("void", "CmdWriteTimestamp",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001053 [
1054 Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wu51ce5ea2015-10-26 19:40:27 +08001055 Param("VkPipelineStageFlagBits", "pipelineStage"),
Chia-I Wucbe3c9f2015-10-26 20:14:54 +08001056 Param("VkQueryPool", "queryPool"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001057 Param("uint32_t", "query"),
1058 ]),
Courtney Goeltzenleuchter1dbc8e22015-04-15 18:21:13 -06001059 Proto("void", "CmdCopyQueryPoolResults",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001060 [
1061 Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchter1dbc8e22015-04-15 18:21:13 -06001062 Param("VkQueryPool", "queryPool"),
Jon Ashburn19d3bf12015-12-30 14:06:55 -07001063 Param("uint32_t", "firstQuery"),
Courtney Goeltzenleuchter1dbc8e22015-04-15 18:21:13 -06001064 Param("uint32_t", "queryCount"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001065 Param("VkBuffer", "dstBuffer"),
1066 Param("VkDeviceSize", "dstOffset"),
Chia-I Wuccc93a72015-10-26 18:36:20 +08001067 Param("VkDeviceSize", "stride"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001068 Param("VkQueryResultFlags", "flags"),
1069 ]),
Chia-I Wuce805cb2015-10-26 18:50:46 +08001070 Proto("void", "CmdPushConstants",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001071 [
1072 Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wuce805cb2015-10-26 18:50:46 +08001073 Param("VkPipelineLayout", "layout"),
1074 Param("VkShaderStageFlags", "stageFlags"),
Chia-I Wud50677e2015-10-26 20:46:14 +08001075 Param("uint32_t", "offset"),
1076 Param("uint32_t", "size"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001077 Param("void", "pValues"),
1078 ]),
Jon Ashburne13f1982015-02-02 09:58:11 -07001079 Proto("void", "CmdBeginRenderPass",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001080 [
1081 Param("VkCommandBuffer", "commandBuffer"),
1082 Param("VkRenderPassBeginInfo", "pRenderPassBegin"),
1083 Param("VkSubpassContents", "contents"),
1084 ]),
Chia-I Wu08accc62015-07-07 11:50:03 +08001085 Proto("void", "CmdNextSubpass",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001086 [
1087 Param("VkCommandBuffer", "commandBuffer"),
1088 Param("VkSubpassContents", "contents"),
1089 ]),
Jon Ashburne13f1982015-02-02 09:58:11 -07001090 Proto("void", "CmdEndRenderPass",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001091 [
1092 Param("VkCommandBuffer", "commandBuffer"),
1093 ]),
Chia-I Wu0b50a1c2015-06-26 15:34:39 +08001094 Proto("void", "CmdExecuteCommands",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001095 [
1096 Param("VkCommandBuffer", "commandBuffer"),
Jon Ashburnf19916e2016-01-11 13:12:43 -07001097 Param("uint32_t", "commandBufferCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001098 Param("VkCommandBuffer", "pCommandBuffers"),
1099 ]),
Chia-I Wue442dc32015-01-01 09:31:15 +08001100 ],
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001101
1102)
1103
1104VK_KHR_surface = Extension(
1105 name="VK_KHR_surface",
1106 headers=["vulkan/vulkan.h"],
1107 ifdef="",
1108 objects=[
1109 "VkSurfaceKHR",
1110 ],
1111 protos=[
1112 Proto("void", "DestroySurfaceKHR",
1113 [
1114 Param("VkInstance", "instance"),
1115 Param("VkSurfaceKHR", "surface"),
1116 Param("VkAllocationCallbacks", "pAllocator"),
1117 ]),
1118 Proto("VkResult", "GetPhysicalDeviceSurfaceSupportKHR",
1119 [
1120 Param("VkPhysicalDevice", "physicalDevice"),
1121 Param("uint32_t", "queueFamilyIndex"),
1122 Param("VkSurfaceKHR", "surface"),
1123 Param("VkBool32", "pSupported"),
1124 ]),
1125 Proto("VkResult", "GetPhysicalDeviceSurfaceCapabilitiesKHR",
1126 [
1127 Param("VkPhysicalDevice", "physicalDevice"),
1128 Param("VkSurfaceKHR", "surface"),
1129 Param("VkSurfaceCapabilitiesKHR", "pSurfaceCapabilities"),
1130 ]),
1131 Proto("VkResult", "GetPhysicalDeviceSurfaceFormatsKHR",
1132 [
1133 Param("VkPhysicalDevice", "physicalDevice"),
1134 Param("VkSurfaceKHR", "surface"),
1135 Param("uint32_t", "pSurfaceFormatCount"),
1136 Param("VkSurfaceFormatKHR", "pSurfaceFormats"),
1137 ]),
1138 Proto("VkResult", "GetPhysicalDeviceSurfacePresentModesKHR",
1139 [
1140 Param("VkPhysicalDevice", "physicalDevice"),
1141 Param("VkSurfaceKHR", "surface"),
1142 Param("uint32_t", "pPresentModeCount"),
1143 Param("VkPresentModeKHR", "pPresentModes"),
1144 ]),
1145 ],
1146
1147)
1148
1149VK_KHR_swapchain = Extension(
1150 name="VK_KHR_swapchain",
1151 headers=["vulkan/vulkan.h"],
1152 ifdef="",
1153 objects=[
1154 "VkSwapchainKHR",
1155 ],
1156 protos=[
1157 Proto("VkResult", "CreateSwapchainKHR",
1158 [
1159 Param("VkDevice", "device"),
1160 Param("VkSwapchainCreateInfoKHR", "pCreateInfo"),
1161 Param("VkAllocationCallbacks", "pAllocator"),
1162 Param("VkSwapchainKHR", "pSwapchain"),
1163 ]),
1164 Proto("void", "DestroySwapchainKHR",
1165 [
1166 Param("VkDevice", "device"),
1167 Param("VkSwapchainKHR", "swapchain"),
1168 Param("VkAllocationCallbacks", "pAllocator"),
1169 ]),
1170 Proto("VkResult", "GetSwapchainImagesKHR",
1171 [
1172 Param("VkDevice", "device"),
1173 Param("VkSwapchainKHR", "swapchain"),
1174 Param("uint32_t", "pSwapchainImageCount"),
1175 Param("VkImage", "pSwapchainImages"),
1176 ]),
1177 Proto("VkResult", "AcquireNextImageKHR",
1178 [
1179 Param("VkDevice", "device"),
1180 Param("VkSwapchainKHR", "swapchain"),
1181 Param("uint64_t", "timeout"),
1182 Param("VkSemaphore", "semaphore"),
1183 Param("VkFence", "fence"),
1184 Param("uint32_t", "pImageIndex"),
1185 ]),
1186 Proto("VkResult", "QueuePresentKHR",
1187 [
1188 Param("VkQueue", "queue"),
1189 Param("VkPresentInfoKHR", "pPresentInfo"),
1190 ]),
1191 ],
1192
1193)
1194
1195VK_KHR_display = Extension(
1196 name="VK_KHR_display",
1197 headers=["vulkan/vulkan.h"],
1198 ifdef="",
1199 objects=[
1200 "VkDisplayKHR",
1201 "VkDisplayModeKHR",
1202 ],
1203 protos=[
1204 Proto("VkResult", "GetPhysicalDeviceDisplayPropertiesKHR",
1205 [
1206 Param("VkPhysicalDevice", "physicalDevice"),
1207 Param("uint32_t", "pPropertyCount"),
1208 Param("VkDisplayPropertiesKHR", "pProperties"),
1209 ]),
1210 Proto("VkResult", "GetPhysicalDeviceDisplayPlanePropertiesKHR",
1211 [
1212 Param("VkPhysicalDevice", "physicalDevice"),
1213 Param("uint32_t", "pPropertyCount"),
1214 Param("VkDisplayPlanePropertiesKHR", "pProperties"),
1215 ]),
1216 Proto("VkResult", "GetDisplayPlaneSupportedDisplaysKHR",
1217 [
1218 Param("VkPhysicalDevice", "physicalDevice"),
1219 Param("uint32_t", "planeIndex"),
1220 Param("uint32_t", "pDisplayCount"),
1221 Param("VkDisplayKHR", "pDisplays"),
1222 ]),
1223 Proto("VkResult", "GetDisplayModePropertiesKHR",
1224 [
1225 Param("VkPhysicalDevice", "physicalDevice"),
1226 Param("VkDisplayKHR", "display"),
1227 Param("uint32_t", "pPropertyCount"),
1228 Param("VkDisplayModePropertiesKHR", "pProperties"),
1229 ]),
1230 Proto("VkResult", "CreateDisplayModeKHR",
1231 [
1232 Param("VkPhysicalDevice", "physicalDevice"),
1233 Param("VkDisplayKHR", "display"),
1234 Param("VkDisplayModeCreateInfoKHR", "pCreateInfo"),
1235 Param("VkAllocationCallbacks", "pAllocator"),
1236 Param("VkDisplayModeKHR", "pMode"),
1237 ]),
1238 Proto("VkResult", "GetDisplayPlaneCapabilitiesKHR",
1239 [
1240 Param("VkPhysicalDevice", "physicalDevice"),
1241 Param("VkDisplayModeKHR", "mode"),
1242 Param("uint32_t", "planeIndex"),
1243 Param("VkDisplayPlaneCapabilitiesKHR", "pCapabilities"),
1244 ]),
1245 Proto("VkResult", "CreateDisplayPlaneSurfaceKHR",
1246 [
1247 Param("VkInstance", "instance"),
1248 Param("VkDisplaySurfaceCreateInfoKHR", "pCreateInfo"),
1249 Param("VkAllocationCallbacks", "pAllocator"),
1250 Param("VkSurfaceKHR", "pSurface"),
1251 ]),
1252 ],
1253
1254)
1255
1256VK_KHR_display_swapchain = Extension(
1257 name="VK_KHR_display_swapchain",
1258 headers=["vulkan/vulkan.h"],
1259 ifdef="",
1260 objects=[],
1261 protos=[
1262 Proto("VkResult", "CreateSharedSwapchainsKHR",
1263 [
1264 Param("VkDevice", "device"),
1265 Param("uint32_t", "swapchainCount"),
1266 Param("VkSwapchainCreateInfoKHR", "pCreateInfos"),
1267 Param("VkAllocationCallbacks", "pAllocator"),
1268 Param("VkSwapchainKHR", "pSwapchains"),
1269 ]),
1270 ],
1271
1272)
1273
1274VK_KHR_xlib_surface = Extension(
1275 name="VK_KHR_xlib_surface",
1276 headers=["vulkan/vulkan.h"],
1277 ifdef="VK_USE_PLATFORM_XLIB_KHR",
1278 objects=[],
1279 protos=[
1280 Proto("VkResult", "CreateXlibSurfaceKHR",
1281 [
1282 Param("VkInstance", "instance"),
1283 Param("VkXlibSurfaceCreateInfoKHR", "pCreateInfo"),
1284 Param("VkAllocationCallbacks", "pAllocator"),
1285 Param("VkSurfaceKHR", "pSurface"),
1286 ]),
1287 Proto("VkBool32", "GetPhysicalDeviceXlibPresentationSupportKHR",
1288 [
1289 Param("VkPhysicalDevice", "physicalDevice"),
1290 Param("uint32_t", "queueFamilyIndex"),
1291 Param("Display", "dpy"),
1292 Param("VisualID", "visualID"),
1293 ]),
1294 ],
1295
1296)
1297
1298VK_KHR_xcb_surface = Extension(
1299 name="VK_KHR_xcb_surface",
1300 headers=["vulkan/vulkan.h"],
1301 ifdef="VK_USE_PLATFORM_XCB_KHR",
1302 objects=[],
1303 protos=[
1304 Proto("VkResult", "CreateXcbSurfaceKHR",
1305 [
1306 Param("VkInstance", "instance"),
1307 Param("VkXcbSurfaceCreateInfoKHR", "pCreateInfo"),
1308 Param("VkAllocationCallbacks", "pAllocator"),
1309 Param("VkSurfaceKHR", "pSurface"),
1310 ]),
1311 Proto("VkBool32", "GetPhysicalDeviceXcbPresentationSupportKHR",
1312 [
1313 Param("VkPhysicalDevice", "physicalDevice"),
1314 Param("uint32_t", "queueFamilyIndex"),
1315 Param("xcb_connection_t", "connection"),
1316 Param("xcb_visualid_t", "visual_id"),
1317 ]),
1318 ],
1319
1320)
1321
1322VK_KHR_wayland_surface = Extension(
1323 name="VK_KHR_wayland_surface",
1324 headers=["vulkan/vulkan.h"],
1325 ifdef="VK_USE_PLATFORM_WAYLAND_KHR",
1326 objects=[],
1327 protos=[
1328 Proto("VkResult", "CreateWaylandSurfaceKHR",
1329 [
1330 Param("VkInstance", "instance"),
1331 Param("VkWaylandSurfaceCreateInfoKHR", "pCreateInfo"),
1332 Param("VkAllocationCallbacks", "pAllocator"),
1333 Param("VkSurfaceKHR", "pSurface"),
1334 ]),
1335 Proto("VkBool32", "GetPhysicalDeviceWaylandPresentationSupportKHR",
1336 [
1337 Param("VkPhysicalDevice", "physicalDevice"),
1338 Param("uint32_t", "queueFamilyIndex"),
1339 Param("wl_display", "display"),
1340 ]),
1341 ],
1342
1343)
1344
1345VK_KHR_mir_surface = Extension(
1346 name="VK_KHR_mir_surface",
1347 headers=["vulkan/vulkan.h"],
1348 ifdef="VK_USE_PLATFORM_MIR_KHR",
1349 objects=[],
1350 protos=[
1351 Proto("VkResult", "CreateMirSurfaceKHR",
1352 [
1353 Param("VkInstance", "instance"),
1354 Param("VkMirSurfaceCreateInfoKHR", "pCreateInfo"),
1355 Param("VkAllocationCallbacks", "pAllocator"),
1356 Param("VkSurfaceKHR", "pSurface"),
1357 ]),
1358 Proto("VkBool32", "GetPhysicalDeviceMirPresentationSupportKHR",
1359 [
1360 Param("VkPhysicalDevice", "physicalDevice"),
1361 Param("uint32_t", "queueFamilyIndex"),
1362 Param("MirConnection", "connection"),
1363 ]),
1364 ],
1365
1366)
1367
1368VK_KHR_android_surface = Extension(
1369 name="VK_KHR_android_surface",
1370 headers=["vulkan/vulkan.h"],
1371 ifdef="VK_USE_PLATFORM_ANDROID_KHR",
1372 objects=[],
1373 protos=[
1374 Proto("VkResult", "CreateAndroidSurfaceKHR",
1375 [
1376 Param("VkInstance", "instance"),
1377 Param("VkAndroidSurfaceCreateInfoKHR", "pCreateInfo"),
1378 Param("VkAllocationCallbacks", "pAllocator"),
1379 Param("VkSurfaceKHR", "pSurface"),
1380 ]),
1381 ],
1382
1383)
1384
1385VK_KHR_win32_surface = Extension(
1386 name="VK_KHR_win32_surface",
1387 headers=["vulkan/vulkan.h"],
1388 ifdef="VK_USE_PLATFORM_WIN32_KHR",
1389 objects=[],
1390 protos=[
1391 Proto("VkResult", "CreateWin32SurfaceKHR",
1392 [
1393 Param("VkInstance", "instance"),
1394 Param("VkWin32SurfaceCreateInfoKHR", "pCreateInfo"),
1395 Param("VkAllocationCallbacks", "pAllocator"),
1396 Param("VkSurfaceKHR", "pSurface"),
1397 ]),
1398 Proto("VkBool32", "GetPhysicalDeviceWin32PresentationSupportKHR",
1399 [
1400 Param("VkPhysicalDevice", "physicalDevice"),
1401 Param("uint32_t", "queueFamilyIndex"),
1402 ]),
1403 ],
1404
1405)
1406
1407VK_KHR_sampler_mirror_clamp_to_edge = Extension(
1408 name="VK_KHR_sampler_mirror_clamp_to_edge",
1409 headers=["vulkan/vulkan.h"],
1410 ifdef="",
1411 objects=[],
1412 protos=[],
1413)
1414
1415VK_EXT_debug_report = Extension(
1416 name="VK_EXT_debug_report",
1417 headers=["vulkan/vulkan.h"],
1418 ifdef="",
1419 objects=[
1420 "VkDebugReportCallbackEXT",
1421 ],
1422 protos=[
1423 Proto("VkResult", "CreateDebugReportCallbackEXT",
1424 [
1425 Param("VkInstance", "instance"),
1426 Param("VkDebugReportCallbackCreateInfoEXT", "pCreateInfo"),
1427 Param("VkAllocationCallbacks", "pAllocator"),
1428 Param("VkDebugReportCallbackEXT", "pCallback"),
1429 ]),
1430 Proto("void", "DestroyDebugReportCallbackEXT",
1431 [
1432 Param("VkInstance", "instance"),
1433 Param("VkDebugReportCallbackEXT", "callback"),
1434 Param("VkAllocationCallbacks", "pAllocator"),
1435 ]),
1436 Proto("void", "DebugReportMessageEXT",
1437 [
1438 Param("VkInstance", "instance"),
1439 Param("VkDebugReportFlagsEXT", "flags"),
1440 Param("VkDebugReportObjectTypeEXT", "objectType"),
1441 Param("uint64_t", "object"),
1442 Param("size_t", "location"),
1443 Param("int32_t", "messageCode"),
1444 Param("char", "pLayerPrefix"),
1445 Param("char", "pMessage"),
1446 ]),
1447 ],
1448
1449)
1450
1451VK_NV_glsl_shader = Extension(
1452 name="VK_NV_glsl_shader",
1453 headers=["vulkan/vulkan.h"],
1454 ifdef="",
1455 objects=[],
1456 protos=[],
1457)
1458
1459VK_IMG_filter_cubic = Extension(
1460 name="VK_IMG_filter_cubic",
1461 headers=["vulkan/vulkan.h"],
1462 ifdef="",
1463 objects=[],
1464 protos=[],
1465)
1466
1467VK_AMD_rasterization_order = Extension(
1468 name="VK_AMD_rasterization_order",
1469 headers=["vulkan/vulkan.h"],
1470 ifdef="",
1471 objects=[],
1472 protos=[],
1473)
1474
1475VK_AMD_shader_trinary_minmax = Extension(
1476 name="VK_AMD_shader_trinary_minmax",
1477 headers=["vulkan/vulkan.h"],
1478 ifdef="",
1479 objects=[],
1480 protos=[],
1481)
1482
1483VK_AMD_shader_explicit_vertex_parameter = Extension(
1484 name="VK_AMD_shader_explicit_vertex_parameter",
1485 headers=["vulkan/vulkan.h"],
1486 ifdef="",
1487 objects=[],
1488 protos=[],
1489)
1490
1491VK_EXT_debug_marker = Extension(
1492 name="VK_EXT_debug_marker",
1493 headers=["vulkan/vulkan.h"],
1494 ifdef="",
1495 objects=[],
1496 protos=[
1497 Proto("VkResult", "DebugMarkerSetObjectTagEXT",
1498 [
1499 Param("VkDevice", "device"),
1500 Param("VkDebugMarkerObjectTagInfoEXT", "pTagInfo"),
1501 ]),
1502 Proto("VkResult", "DebugMarkerSetObjectNameEXT",
1503 [
1504 Param("VkDevice", "device"),
1505 Param("VkDebugMarkerObjectNameInfoEXT", "pNameInfo"),
1506 ]),
1507 Proto("void", "CmdDebugMarkerBeginEXT",
1508 [
1509 Param("VkCommandBuffer", "commandBuffer"),
1510 Param("VkDebugMarkerMarkerInfoEXT", "pMarkerInfo"),
1511 ]),
1512 Proto("void", "CmdDebugMarkerEndEXT",
1513 [
1514 Param("VkCommandBuffer", "commandBuffer"),
1515 ]),
1516 Proto("void", "CmdDebugMarkerInsertEXT",
1517 [
1518 Param("VkCommandBuffer", "commandBuffer"),
1519 Param("VkDebugMarkerMarkerInfoEXT", "pMarkerInfo"),
1520 ]),
1521 ],
1522
1523)
1524
1525VK_AMD_gcn_shader = Extension(
1526 name="VK_AMD_gcn_shader",
1527 headers=["vulkan/vulkan.h"],
1528 ifdef="",
1529 objects=[],
1530 protos=[],
1531)
1532
1533VK_NV_dedicated_allocation = Extension(
1534 name="VK_NV_dedicated_allocation",
1535 headers=["vulkan/vulkan.h"],
1536 ifdef="",
1537 objects=[],
1538 protos=[],
Chia-I Wufb2559d2014-08-01 11:19:52 +08001539)
1540
Mark Lobodzinski33f60e22016-10-27 09:48:53 -06001541VK_AMD_draw_indirect_count = Extension(
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001542 name="VK_AMD_draw_indirect_count",
1543 headers=["vulkan/vulkan.h"],
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001544 ifdef="",
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001545 objects=[],
1546 protos=[
1547 Proto("void", "CmdDrawIndirectCountAMD",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001548 [
1549 Param("VkCommandBuffer", "commandBuffer"),
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001550 Param("VkBuffer", "buffer"),
1551 Param("VkDeviceSize", "offset"),
1552 Param("VkBuffer", "countBuffer"),
1553 Param("VkDeviceSize", "countBufferOffset"),
1554 Param("uint32_t", "maxDrawCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001555 Param("uint32_t", "stride"),
1556 ]),
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001557 Proto("void", "CmdDrawIndexedIndirectCountAMD",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001558 [
1559 Param("VkCommandBuffer", "commandBuffer"),
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001560 Param("VkBuffer", "buffer"),
1561 Param("VkDeviceSize", "offset"),
1562 Param("VkBuffer", "countBuffer"),
1563 Param("VkDeviceSize", "countBufferOffset"),
1564 Param("uint32_t", "maxDrawCount"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001565 Param("uint32_t", "stride"),
1566 ]),
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001567 ],
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001568
1569)
1570
1571VK_AMD_negative_viewport_height = Extension(
1572 name="VK_AMD_negative_viewport_height",
1573 headers=["vulkan/vulkan.h"],
1574 ifdef="",
1575 objects=[],
1576 protos=[],
1577)
1578
1579VK_AMD_gpu_shader_half_float = Extension(
1580 name="VK_AMD_gpu_shader_half_float",
1581 headers=["vulkan/vulkan.h"],
1582 ifdef="",
1583 objects=[],
1584 protos=[],
1585)
1586
1587VK_AMD_shader_ballot = Extension(
1588 name="VK_AMD_shader_ballot",
1589 headers=["vulkan/vulkan.h"],
1590 ifdef="",
1591 objects=[],
1592 protos=[],
1593)
1594
1595VK_IMG_format_pvrtc = Extension(
1596 name="VK_IMG_format_pvrtc",
1597 headers=["vulkan/vulkan.h"],
1598 ifdef="",
1599 objects=[],
1600 protos=[],
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001601)
1602
Mark Lobodzinski33f60e22016-10-27 09:48:53 -06001603VK_NV_external_memory_capabilities = Extension(
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001604 name="VK_NV_external_memory_capabilities",
1605 headers=["vulkan/vulkan.h"],
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001606 ifdef="",
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001607 objects=[],
1608 protos=[
1609 Proto("VkResult", "GetPhysicalDeviceExternalImageFormatPropertiesNV",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001610 [
1611 Param("VkPhysicalDevice", "physicalDevice"),
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001612 Param("VkFormat", "format"),
1613 Param("VkImageType", "type"),
1614 Param("VkImageTiling", "tiling"),
1615 Param("VkImageUsageFlags", "usage"),
1616 Param("VkImageCreateFlags", "flags"),
Arda Coskunses12f7cd02016-09-07 12:31:35 -06001617 Param("VkExternalMemoryHandleTypeFlagsNV", "externalHandleType"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001618 Param("VkExternalImageFormatPropertiesNV", "pExternalImageFormatProperties"),
1619 ]),
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001620 ],
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001621
1622)
1623
1624VK_NV_external_memory = Extension(
1625 name="VK_NV_external_memory",
1626 headers=["vulkan/vulkan.h"],
1627 ifdef="",
1628 objects=[],
1629 protos=[],
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001630)
1631
Mark Lobodzinski33f60e22016-10-27 09:48:53 -06001632VK_NV_external_memory_win32 = Extension(
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001633 name="VK_NV_external_memory_win32",
1634 headers=["vulkan/vulkan.h"],
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001635 ifdef="VK_USE_PLATFORM_WIN32_KHR",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001636 objects=[],
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001637 protos=[
1638 Proto("VkResult", "GetMemoryWin32HandleNV",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001639 [
1640 Param("VkDevice", "device"),
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001641 Param("VkDeviceMemory", "memory"),
1642 Param("VkExternalMemoryHandleTypeFlagsNV", "handleType"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001643 Param("HANDLE", "pHandle"),
1644 ]),
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001645 ],
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001646
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001647)
1648
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001649VK_NV_win32_keyed_mutex = Extension(
1650 name="VK_NV_win32_keyed_mutex",
Ian Elliottf3284702015-10-29 16:35:06 -06001651 headers=["vulkan/vulkan.h"],
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001652 ifdef="VK_USE_PLATFORM_WIN32_KHR",
Mark Lobodzinski3077be02015-11-24 14:03:18 -07001653 objects=[],
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001654 protos=[],
Mark Lobodzinski3077be02015-11-24 14:03:18 -07001655)
Mark Lobodzinski33f60e22016-10-27 09:48:53 -06001656
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001657VK_EXT_validation_flags = Extension(
1658 name="VK_EXT_validation_flags",
Mun, Gwan-gyeongbd4dd592016-02-22 09:43:09 +09001659 headers=["vulkan/vulkan.h"],
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001660 ifdef="",
Mun, Gwan-gyeongbd4dd592016-02-22 09:43:09 +09001661 objects=[],
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001662 protos=[],
Mun, Gwan-gyeongbd4dd592016-02-22 09:43:09 +09001663)
Mark Lobodzinski33f60e22016-10-27 09:48:53 -06001664
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001665object_dispatch_list = [
1666 "VkInstance",
1667 "VkPhysicalDevice",
1668 "VkDevice",
1669 "VkQueue",
1670 "VkCommandBuffer",
1671]
1672object_non_dispatch_list = [
1673 "VkFence",
1674 "VkDeviceMemory",
1675 "VkBuffer",
1676 "VkImage",
1677 "VkSemaphore",
1678 "VkEvent",
1679 "VkQueryPool",
1680 "VkBufferView",
1681 "VkImageView",
1682 "VkShaderModule",
1683 "VkPipelineCache",
1684 "VkPipeline",
1685 "VkPipelineLayout",
1686 "VkSampler",
1687 "VkDescriptorSetLayout",
1688 "VkDescriptorPool",
1689 "VkDescriptorSet",
1690 "VkFramebuffer",
1691 "VkRenderPass",
1692 "VkCommandPool",
1693 "VkSurfaceKHR",
1694 "VkSwapchainKHR",
1695 "VkDisplayKHR",
1696 "VkDisplayModeKHR",
1697 "VkDebugReportCallbackEXT",
1698]
1699#
1700# Build lists of extensions for use by other codegen utilites
Mark Lobodzinskie86e1382015-11-24 15:50:44 -07001701import sys
Mark Lobodzinski2bdb5af2016-10-27 09:52:30 -06001702
Mark Lobodzinski2bdb5af2016-10-27 09:52:30 -06001703# Set up platform-specific display servers
Mark Lobodzinski2bdb5af2016-10-27 09:52:30 -06001704android_display_servers = ['Android']
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001705linux_display_servers = ['Xcb', 'Xlib', 'Wayland', 'Mir', 'Display']
1706win32_display_servers = ['Win32']
1707
1708# Define platform-specific WSI extensions
1709android_wsi_exts = [VK_KHR_android_surface, ]
1710linux_wsi_exts = [VK_KHR_xlib_surface, VK_KHR_xcb_surface, VK_KHR_wayland_surface, VK_KHR_mir_surface, ]
1711win32_wsi_exts = [VK_KHR_win32_surface, ]
Mark Lobodzinski2bdb5af2016-10-27 09:52:30 -06001712
1713# Define non-WSI platform-specific extensions
1714android_only_exts = []
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001715linux_only_exts = []
1716win32_only_exts = [VK_NV_external_memory_win32, VK_NV_win32_keyed_mutex, ]
Mark Lobodzinski2bdb5af2016-10-27 09:52:30 -06001717
1718# Define extensions common to all configurations
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001719common_exts = [VK_VERSION_1_0, VK_KHR_surface, VK_KHR_swapchain, VK_KHR_display_swapchain, ]
Mark Lobodzinski2bdb5af2016-10-27 09:52:30 -06001720
1721# Define extensions not exported by the loader
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001722non_exported_exts = [
1723 VK_KHR_display,
1724 VK_KHR_sampler_mirror_clamp_to_edge,
1725 VK_EXT_debug_report,
1726 VK_NV_glsl_shader,
1727 VK_IMG_filter_cubic,
1728 VK_AMD_rasterization_order,
1729 VK_AMD_shader_trinary_minmax,
1730 VK_AMD_shader_explicit_vertex_parameter,
1731 VK_EXT_debug_marker,
1732 VK_AMD_gcn_shader,
1733 VK_NV_dedicated_allocation,
1734 VK_AMD_draw_indirect_count,
1735 VK_AMD_negative_viewport_height,
1736 VK_AMD_gpu_shader_half_float,
1737 VK_AMD_shader_ballot,
1738 VK_IMG_format_pvrtc,
1739 VK_NV_external_memory_capabilities,
1740 VK_NV_external_memory,
1741 VK_EXT_validation_flags,
1742 ]
1743
Mark Lobodzinski2bdb5af2016-10-27 09:52:30 -06001744extensions = common_exts
1745extensions_all = non_exported_exts
1746
1747if sys.argv[1] in win32_display_servers:
1748 extensions += win32_wsi_exts
1749 extensions_all += extensions + win32_only_exts
1750elif sys.argv[1] in linux_display_servers:
1751 extensions += linux_wsi_exts
1752 extensions_all += extensions + linux_only_exts
1753elif sys.argv[1] in android_display_servers:
1754 extensions += android_wsi_exts
1755 extensions_all += extensions + android_only_exts
Mark Lobodzinski33f60e22016-10-27 09:48:53 -06001756else:
Mark Lobodzinski2bdb5af2016-10-27 09:52:30 -06001757 extensions += win32_wsi_exts + linux_wsi_exts + android_wsi_exts
1758 extensions_all += extensions + win32_only_exts + linux_only_exts + android_only_exts
Mark Lobodzinskie86e1382015-11-24 15:50:44 -07001759
Tobin Ehlisa30e7e52015-07-06 14:02:36 -06001760object_type_list = object_dispatch_list + object_non_dispatch_list
Tobin Ehlis7e65d752015-01-15 17:51:52 -07001761
Chia-I Wuc4f24e82015-01-01 08:46:31 +08001762headers = []
Chia-I Wue86d8ab2015-01-04 14:46:22 +08001763objects = []
Chia-I Wuc4f24e82015-01-01 08:46:31 +08001764protos = []
1765for ext in extensions:
1766 headers.extend(ext.headers)
Chia-I Wue86d8ab2015-01-04 14:46:22 +08001767 objects.extend(ext.objects)
Chia-I Wuc4f24e82015-01-01 08:46:31 +08001768 protos.extend(ext.protos)
Chia-I Wu6dee8b82014-09-23 10:37:23 +08001769
Chia-I Wu9a4ceb12015-01-01 14:45:58 +08001770proto_names = [proto.name for proto in protos]
Chia-I Wu900a2572014-08-01 14:44:16 +08001771
Mark Youngaa1aa3a2016-07-05 16:41:50 -06001772headers_all = []
1773objects_all = []
1774protos_all = []
1775for ext in extensions_all:
1776 headers_all.extend(ext.headers)
1777 objects_all.extend(ext.objects)
1778 protos_all.extend(ext.protos)
1779
1780proto_all_names = [proto.name for proto in protos_all]
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001781