blob: 90007651693ac55e0d44987d09c7627abbdb731d [file] [log] [blame]
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001" ""VK API description"""
Chia-I Wufb2559d2014-08-01 11:19:52 +08002
Karl Schultz8e42f402016-02-02 19:32:33 -07003# Copyright (c) 2015-2016 The Khronos Group Inc.
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07004# Copyright (c) 2015-2016 Valve Corporation
5# Copyright (c) 2015-2016 LunarG, Inc.
6# Copyright (c) 2015-2016 Google Inc.
Chia-I Wufb2559d2014-08-01 11:19:52 +08007#
Jon Ashburn3ebf1252016-04-19 11:30:31 -06008# Licensed under the Apache License, Version 2.0 (the "License");
9# you may not use this file except in compliance with the License.
10# You may obtain a copy of the License at
Chia-I Wufb2559d2014-08-01 11:19:52 +080011#
Jon Ashburn3ebf1252016-04-19 11:30:31 -060012# http://www.apache.org/licenses/LICENSE-2.0
Chia-I Wufb2559d2014-08-01 11:19:52 +080013#
Jon Ashburn3ebf1252016-04-19 11:30:31 -060014# Unless required by applicable law or agreed to in writing, software
15# distributed under the License is distributed on an "AS IS" BASIS,
16# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17# See the License for the specific language governing permissions and
18# limitations under the License.
Courtney Goeltzenleuchter05559522015-10-30 11:14:30 -060019#
Jon Ashburn19d3bf12015-12-30 14:06:55 -070020# Author: Chia-I Wu <olv@lunarg.com>
21# Author: Jon Ashburn <jon@lunarg.com>
Courtney Goeltzenleuchter05559522015-10-30 11:14:30 -060022# Author: Courtney Goeltzenleuchter <courtney@LunarG.com>
23# Author: Tobin Ehlis <tobin@lunarg.com>
24# Author: Tony Barbour <tony@LunarG.com>
Mun, Gwan-gyeongbd4dd592016-02-22 09:43:09 +090025# Author: Gwan-gyeong Mun <kk.moon@samsung.com>
Chia-I Wufb2559d2014-08-01 11:19:52 +080026
27class Param(object):
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -070028 """A function parameter."""
Chia-I Wufb2559d2014-08-01 11:19:52 +080029
30 def __init__(self, ty, name):
31 self.ty = ty
32 self.name = name
33
34 def c(self):
35 """Return the parameter in C."""
36 idx = self.ty.find("[")
37
38 # arrays have a different syntax
39 if idx >= 0:
40 return "%s %s%s" % (self.ty[:idx], self.name, self.ty[idx:])
41 else:
42 return "%s %s" % (self.ty, self.name)
43
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -070044 def indirection_level(self):
45 """Return the level of indirection."""
46 return self.ty.count("*") + self.ty.count("[")
47
48 def dereferenced_type(self, level=0):
49 """Return the type after dereferencing."""
50 if not level:
51 level = self.indirection_level()
52
53 deref = self.ty if level else ""
54 while level > 0:
55 idx = deref.rfind("[")
56 if idx < 0:
57 idx = deref.rfind("*")
58 if idx < 0:
59 deref = ""
60 break
61 deref = deref[:idx]
62 level -= 1;
63
64 return deref.rstrip()
65
Chia-I Wufb2559d2014-08-01 11:19:52 +080066class Proto(object):
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -070067 """A function prototype."""
Chia-I Wufb2559d2014-08-01 11:19:52 +080068
Chia-I Wue442dc32015-01-01 09:31:15 +080069 def __init__(self, ret, name, params=[]):
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -070070 # the proto has only a param
Chia-I Wue442dc32015-01-01 09:31:15 +080071 if not isinstance(params, list):
72 params = [params]
Chia-I Wufb2559d2014-08-01 11:19:52 +080073
74 self.ret = ret
75 self.name = name
76 self.params = params
77
78 def c_params(self, need_type=True, need_name=True):
79 """Return the parameter list in C."""
80 if self.params and (need_type or need_name):
81 if need_type and need_name:
82 return ", ".join([param.c() for param in self.params])
83 elif need_type:
84 return ", ".join([param.ty for param in self.params])
85 else:
86 return ", ".join([param.name for param in self.params])
87 else:
88 return "void" if need_type else ""
89
90 def c_decl(self, name, attr="", typed=False, need_param_names=True):
91 """Return a named declaration in C."""
Chia-I Wu9ab61502015-11-06 06:42:02 +080092 if typed:
93 return "%s (%s*%s)(%s)" % (
94 self.ret,
95 attr + "_PTR " if attr else "",
Chia-I Wufb2559d2014-08-01 11:19:52 +080096 name,
97 self.c_params(need_name=need_param_names))
Chia-I Wufb2559d2014-08-01 11:19:52 +080098 else:
Chia-I Wu9ab61502015-11-06 06:42:02 +080099 return "%s%s %s%s(%s)" % (
100 attr + "_ATTR " if attr else "",
101 self.ret,
102 attr + "_CALL " if attr else "",
103 name,
104 self.c_params(need_name=need_param_names))
Chia-I Wufb2559d2014-08-01 11:19:52 +0800105
Mark Lobodzinskifb4ce3d2016-10-26 09:29:08 -0600106 def c_pretty_decl(self, name, attr=""):
107 """Return a named declaration in C, with vulkan.h formatting."""
108 plist = []
109 for param in self.params:
110 idx = param.ty.find("[")
111 if idx < 0:
112 idx = len(param.ty)
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700113
Mark Lobodzinskifb4ce3d2016-10-26 09:29:08 -0600114 pad = 44 - idx
115 if pad <= 0:
116 pad = 1
117
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700118 plist.append(" %s%s%s%s" % (param.ty[:idx],
119 " " * pad, param.name, param.ty[idx:]))
Mark Lobodzinskifb4ce3d2016-10-26 09:29:08 -0600120
121 return "%s%s %s%s(\n%s)" % (
122 attr + "_ATTR " if attr else "",
123 self.ret,
124 attr + "_CALL " if attr else "",
125 name,
126 ",\n".join(plist))
127
128 def c_func(self, prefix="", attr=""):
129 """Return the prototype in C."""
130 return self.c_decl(prefix + self.name, attr=attr, typed=False)
131
132 def c_call(self):
133 """Return a call to the prototype in C."""
134 return "%s(%s)" % (self.name, self.c_params(need_type=False))
135
Chia-I Wua5d28fa2015-01-04 15:02:50 +0800136 def object_in_params(self):
Courtney Goeltzenleuchterd8e229c2015-04-08 15:36:08 -0600137 """Return the params that are simple VK objects and are inputs."""
Chia-I Wua5d28fa2015-01-04 15:02:50 +0800138 return [param for param in self.params if param.ty in objects]
139
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700140 def object_out_params(self):
141 """Return the params that are simple VK objects and are outputs."""
142 return [param for param in self.params
143 if param.dereferenced_type() in objects]
144
Mark Lobodzinskifb4ce3d2016-10-26 09:29:08 -0600145 def __repr__(self):
146 param_strs = []
147 for param in self.params:
148 param_strs.append(str(param))
149 param_str = " [%s]" % (",\n ".join(param_strs))
150
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700151 return "Proto(\"%s\", \"%s\",\n%s)" % \
152 (self.ret, self.name, param_str)
Mark Lobodzinskifb4ce3d2016-10-26 09:29:08 -0600153
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800154class Extension(object):
David Hubbardbb623952016-08-19 13:30:06 -0600155 def __init__(self, name, headers, objects, protos, ifdef = None):
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800156 self.name = name
157 self.headers = headers
Chia-I Wue86d8ab2015-01-04 14:46:22 +0800158 self.objects = objects
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800159 self.protos = protos
David Hubbardbb623952016-08-19 13:30:06 -0600160 self.ifdef = ifdef
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800161
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700162# VK core API
Mark Lobodzinski33f60e22016-10-27 09:48:53 -0600163VK_VERSION_1_0 = Extension(
164 name="VK_VERSION_1_0",
Mark Lobodzinski510e20d2016-02-11 09:26:16 -0700165 headers=["vulkan/vulkan.h"],
Chia-I Wue86d8ab2015-01-04 14:46:22 +0800166 objects=[
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600167 "VkInstance",
Tony Barbourd1c35722015-04-16 15:59:00 -0600168 "VkPhysicalDevice",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600169 "VkDevice",
170 "VkQueue",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700171 "VkSemaphore",
172 "VkCommandBuffer",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600173 "VkFence",
Tony Barbourd1c35722015-04-16 15:59:00 -0600174 "VkDeviceMemory",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600175 "VkBuffer",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600176 "VkImage",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600177 "VkEvent",
178 "VkQueryPool",
179 "VkBufferView",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600180 "VkImageView",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600181 "VkShaderModule",
Tony Barboura05dbaa2015-07-09 17:31:46 -0600182 "VkPipelineCache",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700183 "VkPipelineLayout",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700184 "VkRenderPass",
185 "VkPipeline",
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700186 "VkDescriptorSetLayout",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700187 "VkSampler",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600188 "VkDescriptorPool",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600189 "VkDescriptorSet",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600190 "VkFramebuffer",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800191 "VkCommandPool",
Chia-I Wue86d8ab2015-01-04 14:46:22 +0800192 ],
Chia-I Wue442dc32015-01-01 09:31:15 +0800193 protos=[
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600194 Proto("VkResult", "CreateInstance",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700195 [Param("const VkInstanceCreateInfo*", "pCreateInfo"),
196 Param("const VkAllocationCallbacks*", "pAllocator"),
197 Param("VkInstance*", "pInstance")]),
198
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600199 Proto("void", "DestroyInstance",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700200 [Param("VkInstance", "instance"),
201 Param("const VkAllocationCallbacks*", "pAllocator")]),
202
Jon Ashburn83a64252015-04-15 11:31:12 -0600203 Proto("VkResult", "EnumeratePhysicalDevices",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700204 [Param("VkInstance", "instance"),
205 Param("uint32_t*", "pPhysicalDeviceCount"),
206 Param("VkPhysicalDevice*", "pPhysicalDevices")]),
207
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600208 Proto("void", "GetPhysicalDeviceFeatures",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700209 [Param("VkPhysicalDevice", "physicalDevice"),
210 Param("VkPhysicalDeviceFeatures*", "pFeatures")]),
211
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600212 Proto("void", "GetPhysicalDeviceFormatProperties",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700213 [Param("VkPhysicalDevice", "physicalDevice"),
Chris Forbesbc0bb772015-06-21 22:55:02 +1200214 Param("VkFormat", "format"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700215 Param("VkFormatProperties*", "pFormatProperties")]),
216
Chia-I Wu17241042015-10-31 00:31:16 +0800217 Proto("VkResult", "GetPhysicalDeviceImageFormatProperties",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700218 [Param("VkPhysicalDevice", "physicalDevice"),
Jon Ashburn42540ef2015-07-23 18:48:20 -0600219 Param("VkFormat", "format"),
220 Param("VkImageType", "type"),
221 Param("VkImageTiling", "tiling"),
222 Param("VkImageUsageFlags", "usage"),
Courtney Goeltzenleuchtera22097a2015-09-10 13:44:12 -0600223 Param("VkImageCreateFlags", "flags"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700224 Param("VkImageFormatProperties*", "pImageFormatProperties")]),
225
Chia-I Wuce805cb2015-10-26 18:50:46 +0800226 Proto("void", "GetPhysicalDeviceProperties",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700227 [Param("VkPhysicalDevice", "physicalDevice"),
228 Param("VkPhysicalDeviceProperties*", "pProperties")]),
229
Chia-I Wuce805cb2015-10-26 18:50:46 +0800230 Proto("void", "GetPhysicalDeviceQueueFamilyProperties",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700231 [Param("VkPhysicalDevice", "physicalDevice"),
232 Param("uint32_t*", "pQueueFamilyPropertyCount"),
233 Param("VkQueueFamilyProperties*", "pQueueFamilyProperties")]),
234
Chia-I Wuce805cb2015-10-26 18:50:46 +0800235 Proto("void", "GetPhysicalDeviceMemoryProperties",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700236 [Param("VkPhysicalDevice", "physicalDevice"),
237 Param("VkPhysicalDeviceMemoryProperties*", "pMemoryProperties")]),
238
Courtney Goeltzenleuchter2d3ba632015-07-12 14:35:22 -0600239 Proto("PFN_vkVoidFunction", "GetInstanceProcAddr",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700240 [Param("VkInstance", "instance"),
241 Param("const char*", "pName")]),
242
Courtney Goeltzenleuchter2d3ba632015-07-12 14:35:22 -0600243 Proto("PFN_vkVoidFunction", "GetDeviceProcAddr",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700244 [Param("VkDevice", "device"),
245 Param("const char*", "pName")]),
246
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600247 Proto("VkResult", "CreateDevice",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700248 [Param("VkPhysicalDevice", "physicalDevice"),
249 Param("const VkDeviceCreateInfo*", "pCreateInfo"),
250 Param("const VkAllocationCallbacks*", "pAllocator"),
251 Param("VkDevice*", "pDevice")]),
252
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600253 Proto("void", "DestroyDevice",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700254 [Param("VkDevice", "device"),
255 Param("const VkAllocationCallbacks*", "pAllocator")]),
256
Courtney Goeltzenleuchter35985f62015-09-14 17:22:16 -0600257 Proto("VkResult", "EnumerateInstanceExtensionProperties",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700258 [Param("const char*", "pLayerName"),
259 Param("uint32_t*", "pPropertyCount"),
260 Param("VkExtensionProperties*", "pProperties")]),
261
Courtney Goeltzenleuchter35985f62015-09-14 17:22:16 -0600262 Proto("VkResult", "EnumerateDeviceExtensionProperties",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700263 [Param("VkPhysicalDevice", "physicalDevice"),
264 Param("const char*", "pLayerName"),
265 Param("uint32_t*", "pPropertyCount"),
266 Param("VkExtensionProperties*", "pProperties")]),
267
Courtney Goeltzenleuchter35985f62015-09-14 17:22:16 -0600268 Proto("VkResult", "EnumerateInstanceLayerProperties",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700269 [Param("uint32_t*", "pPropertyCount"),
270 Param("VkLayerProperties*", "pProperties")]),
271
Courtney Goeltzenleuchter35985f62015-09-14 17:22:16 -0600272 Proto("VkResult", "EnumerateDeviceLayerProperties",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700273 [Param("VkPhysicalDevice", "physicalDevice"),
274 Param("uint32_t*", "pPropertyCount"),
275 Param("VkLayerProperties*", "pProperties")]),
276
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600277 Proto("void", "GetDeviceQueue",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700278 [Param("VkDevice", "device"),
Jon Ashburnea65e492015-08-06 17:27:49 -0600279 Param("uint32_t", "queueFamilyIndex"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600280 Param("uint32_t", "queueIndex"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700281 Param("VkQueue*", "pQueue")]),
282
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600283 Proto("VkResult", "QueueSubmit",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700284 [Param("VkQueue", "queue"),
Courtney Goeltzenleuchter646b9072015-10-20 18:04:07 -0600285 Param("uint32_t", "submitCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700286 Param("const VkSubmitInfo*", "pSubmits"),
287 Param("VkFence", "fence")]),
288
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600289 Proto("VkResult", "QueueWaitIdle",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700290 [Param("VkQueue", "queue")]),
291
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600292 Proto("VkResult", "DeviceWaitIdle",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700293 [Param("VkDevice", "device")]),
294
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800295 Proto("VkResult", "AllocateMemory",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700296 [Param("VkDevice", "device"),
297 Param("const VkMemoryAllocateInfo*", "pAllocateInfo"),
298 Param("const VkAllocationCallbacks*", "pAllocator"),
299 Param("VkDeviceMemory*", "pMemory")]),
300
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600301 Proto("void", "FreeMemory",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700302 [Param("VkDevice", "device"),
Chia-I Wubb7fad92015-10-27 17:53:18 +0800303 Param("VkDeviceMemory", "memory"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700304 Param("const VkAllocationCallbacks*", "pAllocator")]),
305
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600306 Proto("VkResult", "MapMemory",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700307 [Param("VkDevice", "device"),
Chia-I Wubb7fad92015-10-27 17:53:18 +0800308 Param("VkDeviceMemory", "memory"),
Tony Barbour71a85122015-04-16 19:09:28 -0600309 Param("VkDeviceSize", "offset"),
310 Param("VkDeviceSize", "size"),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600311 Param("VkMemoryMapFlags", "flags"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700312 Param("void**", "ppData")]),
313
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600314 Proto("void", "UnmapMemory",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700315 [Param("VkDevice", "device"),
316 Param("VkDeviceMemory", "memory")]),
317
Courtney Goeltzenleuchterf69f8a22015-04-29 17:16:21 -0600318 Proto("VkResult", "FlushMappedMemoryRanges",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700319 [Param("VkDevice", "device"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800320 Param("uint32_t", "memoryRangeCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700321 Param("const VkMappedMemoryRange*", "pMemoryRanges")]),
322
Courtney Goeltzenleuchterf69f8a22015-04-29 17:16:21 -0600323 Proto("VkResult", "InvalidateMappedMemoryRanges",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700324 [Param("VkDevice", "device"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800325 Param("uint32_t", "memoryRangeCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700326 Param("const VkMappedMemoryRange*", "pMemoryRanges")]),
327
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600328 Proto("void", "GetDeviceMemoryCommitment",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700329 [Param("VkDevice", "device"),
Courtney Goeltzenleuchterfb71f222015-07-09 21:57:28 -0600330 Param("VkDeviceMemory", "memory"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700331 Param("VkDeviceSize*", "pCommittedMemoryInBytes")]),
332
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600333 Proto("VkResult", "BindBufferMemory",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700334 [Param("VkDevice", "device"),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600335 Param("VkBuffer", "buffer"),
Chia-I Wubb7fad92015-10-27 17:53:18 +0800336 Param("VkDeviceMemory", "memory"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700337 Param("VkDeviceSize", "memoryOffset")]),
338
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600339 Proto("VkResult", "BindImageMemory",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700340 [Param("VkDevice", "device"),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600341 Param("VkImage", "image"),
Chia-I Wubb7fad92015-10-27 17:53:18 +0800342 Param("VkDeviceMemory", "memory"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700343 Param("VkDeviceSize", "memoryOffset")]),
344
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600345 Proto("void", "GetBufferMemoryRequirements",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700346 [Param("VkDevice", "device"),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600347 Param("VkBuffer", "buffer"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700348 Param("VkMemoryRequirements*", "pMemoryRequirements")]),
349
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600350 Proto("void", "GetImageMemoryRequirements",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700351 [Param("VkDevice", "device"),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600352 Param("VkImage", "image"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700353 Param("VkMemoryRequirements*", "pMemoryRequirements")]),
354
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600355 Proto("void", "GetImageSparseMemoryRequirements",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700356 [Param("VkDevice", "device"),
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -0600357 Param("VkImage", "image"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700358 Param("uint32_t*", "pSparseMemoryRequirementCount"),
359 Param("VkSparseImageMemoryRequirements*", "pSparseMemoryRequirements")]),
360
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600361 Proto("void", "GetPhysicalDeviceSparseImageFormatProperties",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700362 [Param("VkPhysicalDevice", "physicalDevice"),
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -0600363 Param("VkFormat", "format"),
364 Param("VkImageType", "type"),
Chia-I Wu5c17c962015-10-31 00:31:16 +0800365 Param("VkSampleCountFlagBits", "samples"),
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -0600366 Param("VkImageUsageFlags", "usage"),
367 Param("VkImageTiling", "tiling"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700368 Param("uint32_t*", "pPropertyCount"),
369 Param("VkSparseImageFormatProperties*", "pProperties")]),
370
Chia-I Wu1ff4c3d2015-10-26 16:55:27 +0800371 Proto("VkResult", "QueueBindSparse",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700372 [Param("VkQueue", "queue"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800373 Param("uint32_t", "bindInfoCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700374 Param("const VkBindSparseInfo*", "pBindInfo"),
375 Param("VkFence", "fence")]),
376
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700377 Proto("VkResult", "CreateFence",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700378 [Param("VkDevice", "device"),
379 Param("const VkFenceCreateInfo*", "pCreateInfo"),
380 Param("const VkAllocationCallbacks*", "pAllocator"),
381 Param("VkFence*", "pFence")]),
382
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700383 Proto("void", "DestroyFence",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700384 [Param("VkDevice", "device"),
Mark Lobodzinskie3481c02016-11-16 14:53:26 -0700385 Param("VkFence", "fence"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700386 Param("const VkAllocationCallbacks*", "pAllocator")]),
387
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600388 Proto("VkResult", "ResetFences",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700389 [Param("VkDevice", "device"),
Mark Lobodzinski148e1582015-04-07 16:07:57 -0500390 Param("uint32_t", "fenceCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700391 Param("const VkFence*", "pFences")]),
392
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600393 Proto("VkResult", "GetFenceStatus",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700394 [Param("VkDevice", "device"),
395 Param("VkFence", "fence")]),
396
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600397 Proto("VkResult", "WaitForFences",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700398 [Param("VkDevice", "device"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600399 Param("uint32_t", "fenceCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700400 Param("const VkFence*", "pFences"),
Courtney Goeltzenleuchtercd2a0992015-07-09 11:44:38 -0600401 Param("VkBool32", "waitAll"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700402 Param("uint64_t", "timeout")]),
403
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600404 Proto("VkResult", "CreateSemaphore",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700405 [Param("VkDevice", "device"),
406 Param("const VkSemaphoreCreateInfo*", "pCreateInfo"),
407 Param("const VkAllocationCallbacks*", "pAllocator"),
408 Param("VkSemaphore*", "pSemaphore")]),
409
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600410 Proto("void", "DestroySemaphore",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700411 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800412 Param("VkSemaphore", "semaphore"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700413 Param("const VkAllocationCallbacks*", "pAllocator")]),
414
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600415 Proto("VkResult", "CreateEvent",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700416 [Param("VkDevice", "device"),
417 Param("const VkEventCreateInfo*", "pCreateInfo"),
418 Param("const VkAllocationCallbacks*", "pAllocator"),
419 Param("VkEvent*", "pEvent")]),
420
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600421 Proto("void", "DestroyEvent",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700422 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800423 Param("VkEvent", "event"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700424 Param("const VkAllocationCallbacks*", "pAllocator")]),
425
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600426 Proto("VkResult", "GetEventStatus",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700427 [Param("VkDevice", "device"),
428 Param("VkEvent", "event")]),
429
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600430 Proto("VkResult", "SetEvent",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700431 [Param("VkDevice", "device"),
432 Param("VkEvent", "event")]),
433
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600434 Proto("VkResult", "ResetEvent",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700435 [Param("VkDevice", "device"),
436 Param("VkEvent", "event")]),
437
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600438 Proto("VkResult", "CreateQueryPool",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700439 [Param("VkDevice", "device"),
440 Param("const VkQueryPoolCreateInfo*", "pCreateInfo"),
441 Param("const VkAllocationCallbacks*", "pAllocator"),
442 Param("VkQueryPool*", "pQueryPool")]),
443
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600444 Proto("void", "DestroyQueryPool",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700445 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800446 Param("VkQueryPool", "queryPool"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700447 Param("const VkAllocationCallbacks*", "pAllocator")]),
448
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600449 Proto("VkResult", "GetQueryPoolResults",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700450 [Param("VkDevice", "device"),
Mike Stroyanb050c682015-04-17 12:36:38 -0600451 Param("VkQueryPool", "queryPool"),
Jon Ashburn19d3bf12015-12-30 14:06:55 -0700452 Param("uint32_t", "firstQuery"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600453 Param("uint32_t", "queryCount"),
Chia-I Wuccc93a72015-10-26 18:36:20 +0800454 Param("size_t", "dataSize"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700455 Param("void*", "pData"),
Chia-I Wuccc93a72015-10-26 18:36:20 +0800456 Param("VkDeviceSize", "stride"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700457 Param("VkQueryResultFlags", "flags")]),
458
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600459 Proto("VkResult", "CreateBuffer",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700460 [Param("VkDevice", "device"),
461 Param("const VkBufferCreateInfo*", "pCreateInfo"),
462 Param("const VkAllocationCallbacks*", "pAllocator"),
463 Param("VkBuffer*", "pBuffer")]),
464
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600465 Proto("void", "DestroyBuffer",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700466 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800467 Param("VkBuffer", "buffer"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700468 Param("const VkAllocationCallbacks*", "pAllocator")]),
469
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600470 Proto("VkResult", "CreateBufferView",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700471 [Param("VkDevice", "device"),
472 Param("const VkBufferViewCreateInfo*", "pCreateInfo"),
473 Param("const VkAllocationCallbacks*", "pAllocator"),
474 Param("VkBufferView*", "pView")]),
475
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600476 Proto("void", "DestroyBufferView",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700477 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800478 Param("VkBufferView", "bufferView"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700479 Param("const VkAllocationCallbacks*", "pAllocator")]),
480
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600481 Proto("VkResult", "CreateImage",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700482 [Param("VkDevice", "device"),
483 Param("const VkImageCreateInfo*", "pCreateInfo"),
484 Param("const VkAllocationCallbacks*", "pAllocator"),
485 Param("VkImage*", "pImage")]),
486
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600487 Proto("void", "DestroyImage",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700488 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800489 Param("VkImage", "image"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700490 Param("const VkAllocationCallbacks*", "pAllocator")]),
491
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600492 Proto("void", "GetImageSubresourceLayout",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700493 [Param("VkDevice", "device"),
Mike Stroyanb050c682015-04-17 12:36:38 -0600494 Param("VkImage", "image"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700495 Param("const VkImageSubresource*", "pSubresource"),
496 Param("VkSubresourceLayout*", "pLayout")]),
497
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600498 Proto("VkResult", "CreateImageView",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700499 [Param("VkDevice", "device"),
500 Param("const VkImageViewCreateInfo*", "pCreateInfo"),
501 Param("const VkAllocationCallbacks*", "pAllocator"),
502 Param("VkImageView*", "pView")]),
503
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600504 Proto("void", "DestroyImageView",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700505 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800506 Param("VkImageView", "imageView"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700507 Param("const VkAllocationCallbacks*", "pAllocator")]),
508
Courtney Goeltzenleuchter2d2cb682015-06-24 18:24:19 -0600509 Proto("VkResult", "CreateShaderModule",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700510 [Param("VkDevice", "device"),
511 Param("const VkShaderModuleCreateInfo*", "pCreateInfo"),
512 Param("const VkAllocationCallbacks*", "pAllocator"),
513 Param("VkShaderModule*", "pShaderModule")]),
514
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600515 Proto("void", "DestroyShaderModule",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700516 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800517 Param("VkShaderModule", "shaderModule"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700518 Param("const VkAllocationCallbacks*", "pAllocator")]),
519
Jon Ashburnc669cc62015-07-09 15:02:25 -0600520 Proto("VkResult", "CreatePipelineCache",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700521 [Param("VkDevice", "device"),
522 Param("const VkPipelineCacheCreateInfo*", "pCreateInfo"),
523 Param("const VkAllocationCallbacks*", "pAllocator"),
524 Param("VkPipelineCache*", "pPipelineCache")]),
525
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600526 Proto("void", "DestroyPipelineCache",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700527 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800528 Param("VkPipelineCache", "pipelineCache"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700529 Param("const VkAllocationCallbacks*", "pAllocator")]),
530
Jon Ashburnc669cc62015-07-09 15:02:25 -0600531 Proto("VkResult", "GetPipelineCacheData",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700532 [Param("VkDevice", "device"),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600533 Param("VkPipelineCache", "pipelineCache"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700534 Param("size_t*", "pDataSize"),
535 Param("void*", "pData")]),
536
Jon Ashburnc669cc62015-07-09 15:02:25 -0600537 Proto("VkResult", "MergePipelineCaches",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700538 [Param("VkDevice", "device"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800539 Param("VkPipelineCache", "dstCache"),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600540 Param("uint32_t", "srcCacheCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700541 Param("const VkPipelineCache*", "pSrcCaches")]),
542
Jon Ashburnc669cc62015-07-09 15:02:25 -0600543 Proto("VkResult", "CreateGraphicsPipelines",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700544 [Param("VkDevice", "device"),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600545 Param("VkPipelineCache", "pipelineCache"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800546 Param("uint32_t", "createInfoCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700547 Param("const VkGraphicsPipelineCreateInfo*", "pCreateInfos"),
548 Param("const VkAllocationCallbacks*", "pAllocator"),
549 Param("VkPipeline*", "pPipelines")]),
550
Jon Ashburnc669cc62015-07-09 15:02:25 -0600551 Proto("VkResult", "CreateComputePipelines",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700552 [Param("VkDevice", "device"),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600553 Param("VkPipelineCache", "pipelineCache"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800554 Param("uint32_t", "createInfoCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700555 Param("const VkComputePipelineCreateInfo*", "pCreateInfos"),
556 Param("const VkAllocationCallbacks*", "pAllocator"),
557 Param("VkPipeline*", "pPipelines")]),
558
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600559 Proto("void", "DestroyPipeline",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700560 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800561 Param("VkPipeline", "pipeline"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700562 Param("const VkAllocationCallbacks*", "pAllocator")]),
563
Mark Lobodzinski0fadf5f2015-04-17 14:11:39 -0500564 Proto("VkResult", "CreatePipelineLayout",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700565 [Param("VkDevice", "device"),
566 Param("const VkPipelineLayoutCreateInfo*", "pCreateInfo"),
567 Param("const VkAllocationCallbacks*", "pAllocator"),
568 Param("VkPipelineLayout*", "pPipelineLayout")]),
569
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600570 Proto("void", "DestroyPipelineLayout",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700571 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800572 Param("VkPipelineLayout", "pipelineLayout"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700573 Param("const VkAllocationCallbacks*", "pAllocator")]),
574
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600575 Proto("VkResult", "CreateSampler",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700576 [Param("VkDevice", "device"),
577 Param("const VkSamplerCreateInfo*", "pCreateInfo"),
578 Param("const VkAllocationCallbacks*", "pAllocator"),
579 Param("VkSampler*", "pSampler")]),
580
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600581 Proto("void", "DestroySampler",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700582 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800583 Param("VkSampler", "sampler"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700584 Param("const VkAllocationCallbacks*", "pAllocator")]),
585
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600586 Proto("VkResult", "CreateDescriptorSetLayout",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700587 [Param("VkDevice", "device"),
588 Param("const VkDescriptorSetLayoutCreateInfo*", "pCreateInfo"),
589 Param("const VkAllocationCallbacks*", "pAllocator"),
590 Param("VkDescriptorSetLayout*", "pSetLayout")]),
591
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600592 Proto("void", "DestroyDescriptorSetLayout",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700593 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800594 Param("VkDescriptorSetLayout", "descriptorSetLayout"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700595 Param("const VkAllocationCallbacks*", "pAllocator")]),
596
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600597 Proto("VkResult", "CreateDescriptorPool",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700598 [Param("VkDevice", "device"),
599 Param("const VkDescriptorPoolCreateInfo*", "pCreateInfo"),
600 Param("const VkAllocationCallbacks*", "pAllocator"),
601 Param("VkDescriptorPool*", "pDescriptorPool")]),
602
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600603 Proto("void", "DestroyDescriptorPool",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700604 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800605 Param("VkDescriptorPool", "descriptorPool"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700606 Param("const VkAllocationCallbacks*", "pAllocator")]),
607
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600608 Proto("VkResult", "ResetDescriptorPool",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700609 [Param("VkDevice", "device"),
Courtney Goeltzenleuchterbee18a92015-10-23 14:21:05 -0600610 Param("VkDescriptorPool", "descriptorPool"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700611 Param("VkDescriptorPoolResetFlags", "flags")]),
612
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800613 Proto("VkResult", "AllocateDescriptorSets",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700614 [Param("VkDevice", "device"),
615 Param("const VkDescriptorSetAllocateInfo*", "pAllocateInfo"),
616 Param("VkDescriptorSet*", "pDescriptorSets")]),
617
Tony Barbour34ec6922015-07-10 10:50:45 -0600618 Proto("VkResult", "FreeDescriptorSets",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700619 [Param("VkDevice", "device"),
Tony Barbour34ec6922015-07-10 10:50:45 -0600620 Param("VkDescriptorPool", "descriptorPool"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800621 Param("uint32_t", "descriptorSetCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700622 Param("const VkDescriptorSet*", "pDescriptorSets")]),
623
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600624 Proto("void", "UpdateDescriptorSets",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700625 [Param("VkDevice", "device"),
Chia-I Wu40cf0ae2015-10-26 17:20:32 +0800626 Param("uint32_t", "descriptorWriteCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700627 Param("const VkWriteDescriptorSet*", "pDescriptorWrites"),
Chia-I Wu40cf0ae2015-10-26 17:20:32 +0800628 Param("uint32_t", "descriptorCopyCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700629 Param("const VkCopyDescriptorSet*", "pDescriptorCopies")]),
630
Chia-I Wuce805cb2015-10-26 18:50:46 +0800631 Proto("VkResult", "CreateFramebuffer",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700632 [Param("VkDevice", "device"),
633 Param("const VkFramebufferCreateInfo*", "pCreateInfo"),
634 Param("const VkAllocationCallbacks*", "pAllocator"),
635 Param("VkFramebuffer*", "pFramebuffer")]),
636
Chia-I Wuce805cb2015-10-26 18:50:46 +0800637 Proto("void", "DestroyFramebuffer",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700638 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800639 Param("VkFramebuffer", "framebuffer"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700640 Param("const VkAllocationCallbacks*", "pAllocator")]),
641
Chia-I Wuce805cb2015-10-26 18:50:46 +0800642 Proto("VkResult", "CreateRenderPass",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700643 [Param("VkDevice", "device"),
644 Param("const VkRenderPassCreateInfo*", "pCreateInfo"),
645 Param("const VkAllocationCallbacks*", "pAllocator"),
646 Param("VkRenderPass*", "pRenderPass")]),
647
Chia-I Wuce805cb2015-10-26 18:50:46 +0800648 Proto("void", "DestroyRenderPass",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700649 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800650 Param("VkRenderPass", "renderPass"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700651 Param("const VkAllocationCallbacks*", "pAllocator")]),
652
Chia-I Wuce805cb2015-10-26 18:50:46 +0800653 Proto("void", "GetRenderAreaGranularity",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700654 [Param("VkDevice", "device"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800655 Param("VkRenderPass", "renderPass"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700656 Param("VkExtent2D*", "pGranularity")]),
657
Cody Northrope62183e2015-07-09 18:08:05 -0600658 Proto("VkResult", "CreateCommandPool",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700659 [Param("VkDevice", "device"),
660 Param("const VkCommandPoolCreateInfo*", "pCreateInfo"),
661 Param("const VkAllocationCallbacks*", "pAllocator"),
662 Param("VkCommandPool*", "pCommandPool")]),
663
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600664 Proto("void", "DestroyCommandPool",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700665 [Param("VkDevice", "device"),
Chia-I Wuaed8ca92015-10-27 18:59:16 +0800666 Param("VkCommandPool", "commandPool"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700667 Param("const VkAllocationCallbacks*", "pAllocator")]),
668
Cody Northrope62183e2015-07-09 18:08:05 -0600669 Proto("VkResult", "ResetCommandPool",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700670 [Param("VkDevice", "device"),
Chia-I Wuaed8ca92015-10-27 18:59:16 +0800671 Param("VkCommandPool", "commandPool"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700672 Param("VkCommandPoolResetFlags", "flags")]),
673
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800674 Proto("VkResult", "AllocateCommandBuffers",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700675 [Param("VkDevice", "device"),
676 Param("const VkCommandBufferAllocateInfo*", "pAllocateInfo"),
677 Param("VkCommandBuffer*", "pCommandBuffers")]),
678
Courtney Goeltzenleuchterbee18a92015-10-23 14:21:05 -0600679 Proto("void", "FreeCommandBuffers",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700680 [Param("VkDevice", "device"),
Chia-I Wuaed8ca92015-10-27 18:59:16 +0800681 Param("VkCommandPool", "commandPool"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800682 Param("uint32_t", "commandBufferCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700683 Param("const VkCommandBuffer*", "pCommandBuffers")]),
684
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600685 Proto("VkResult", "BeginCommandBuffer",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700686 [Param("VkCommandBuffer", "commandBuffer"),
687 Param("const VkCommandBufferBeginInfo*", "pBeginInfo")]),
688
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600689 Proto("VkResult", "EndCommandBuffer",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700690 [Param("VkCommandBuffer", "commandBuffer")]),
691
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600692 Proto("VkResult", "ResetCommandBuffer",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700693 [Param("VkCommandBuffer", "commandBuffer"),
694 Param("VkCommandBufferResetFlags", "flags")]),
695
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600696 Proto("void", "CmdBindPipeline",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700697 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600698 Param("VkPipelineBindPoint", "pipelineBindPoint"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700699 Param("VkPipeline", "pipeline")]),
700
Chia-I Wuce805cb2015-10-26 18:50:46 +0800701 Proto("void", "CmdSetViewport",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700702 [Param("VkCommandBuffer", "commandBuffer"),
Jon Ashburn19d3bf12015-12-30 14:06:55 -0700703 Param("uint32_t", "firstViewport"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800704 Param("uint32_t", "viewportCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700705 Param("const VkViewport*", "pViewports")]),
706
Chia-I Wuce805cb2015-10-26 18:50:46 +0800707 Proto("void", "CmdSetScissor",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700708 [Param("VkCommandBuffer", "commandBuffer"),
Jon Ashburn19d3bf12015-12-30 14:06:55 -0700709 Param("uint32_t", "firstScissor"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800710 Param("uint32_t", "scissorCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700711 Param("const VkRect2D*", "pScissors")]),
712
Chia-I Wuce805cb2015-10-26 18:50:46 +0800713 Proto("void", "CmdSetLineWidth",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700714 [Param("VkCommandBuffer", "commandBuffer"),
715 Param("float", "lineWidth")]),
716
Chia-I Wuce805cb2015-10-26 18:50:46 +0800717 Proto("void", "CmdSetDepthBias",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700718 [Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wud8c946a2015-10-26 19:08:09 +0800719 Param("float", "depthBiasConstantFactor"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800720 Param("float", "depthBiasClamp"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700721 Param("float", "depthBiasSlopeFactor")]),
722
Chia-I Wuce805cb2015-10-26 18:50:46 +0800723 Proto("void", "CmdSetBlendConstants",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700724 [Param("VkCommandBuffer", "commandBuffer"),
725 Param("const float[4]", "blendConstants")]),
726
Chia-I Wuce805cb2015-10-26 18:50:46 +0800727 Proto("void", "CmdSetDepthBounds",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700728 [Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800729 Param("float", "minDepthBounds"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700730 Param("float", "maxDepthBounds")]),
731
Chia-I Wuce805cb2015-10-26 18:50:46 +0800732 Proto("void", "CmdSetStencilCompareMask",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700733 [Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800734 Param("VkStencilFaceFlags", "faceMask"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700735 Param("uint32_t", "compareMask")]),
736
Chia-I Wuce805cb2015-10-26 18:50:46 +0800737 Proto("void", "CmdSetStencilWriteMask",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700738 [Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800739 Param("VkStencilFaceFlags", "faceMask"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700740 Param("uint32_t", "writeMask")]),
741
Chia-I Wuce805cb2015-10-26 18:50:46 +0800742 Proto("void", "CmdSetStencilReference",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700743 [Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800744 Param("VkStencilFaceFlags", "faceMask"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700745 Param("uint32_t", "reference")]),
746
Chia-I Wu53f07d72015-03-28 15:23:55 +0800747 Proto("void", "CmdBindDescriptorSets",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700748 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600749 Param("VkPipelineBindPoint", "pipelineBindPoint"),
Mark Lobodzinskif2093b62015-06-15 13:21:21 -0600750 Param("VkPipelineLayout", "layout"),
Cody Northropd4c1a502015-04-16 13:41:56 -0600751 Param("uint32_t", "firstSet"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800752 Param("uint32_t", "descriptorSetCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700753 Param("const VkDescriptorSet*", "pDescriptorSets"),
Cody Northropd4c1a502015-04-16 13:41:56 -0600754 Param("uint32_t", "dynamicOffsetCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700755 Param("const uint32_t*", "pDynamicOffsets")]),
756
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600757 Proto("void", "CmdBindIndexBuffer",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700758 [Param("VkCommandBuffer", "commandBuffer"),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600759 Param("VkBuffer", "buffer"),
760 Param("VkDeviceSize", "offset"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700761 Param("VkIndexType", "indexType")]),
762
Courtney Goeltzenleuchterf68ad722015-04-16 13:38:46 -0600763 Proto("void", "CmdBindVertexBuffers",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700764 [Param("VkCommandBuffer", "commandBuffer"),
Jon Ashburn19d3bf12015-12-30 14:06:55 -0700765 Param("uint32_t", "firstBinding"),
Courtney Goeltzenleuchterf68ad722015-04-16 13:38:46 -0600766 Param("uint32_t", "bindingCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700767 Param("const VkBuffer*", "pBuffers"),
768 Param("const VkDeviceSize*", "pOffsets")]),
769
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600770 Proto("void", "CmdDraw",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700771 [Param("VkCommandBuffer", "commandBuffer"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600772 Param("uint32_t", "vertexCount"),
Courtney Goeltzenleuchter08c26372015-09-23 12:31:50 -0600773 Param("uint32_t", "instanceCount"),
774 Param("uint32_t", "firstVertex"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700775 Param("uint32_t", "firstInstance")]),
776
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600777 Proto("void", "CmdDrawIndexed",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700778 [Param("VkCommandBuffer", "commandBuffer"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600779 Param("uint32_t", "indexCount"),
Courtney Goeltzenleuchter08c26372015-09-23 12:31:50 -0600780 Param("uint32_t", "instanceCount"),
781 Param("uint32_t", "firstIndex"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600782 Param("int32_t", "vertexOffset"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700783 Param("uint32_t", "firstInstance")]),
784
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600785 Proto("void", "CmdDrawIndirect",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700786 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600787 Param("VkBuffer", "buffer"),
Tony Barbourd1c35722015-04-16 15:59:00 -0600788 Param("VkDeviceSize", "offset"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800789 Param("uint32_t", "drawCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700790 Param("uint32_t", "stride")]),
791
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600792 Proto("void", "CmdDrawIndexedIndirect",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700793 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600794 Param("VkBuffer", "buffer"),
Tony Barbourd1c35722015-04-16 15:59:00 -0600795 Param("VkDeviceSize", "offset"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800796 Param("uint32_t", "drawCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700797 Param("uint32_t", "stride")]),
798
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600799 Proto("void", "CmdDispatch",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700800 [Param("VkCommandBuffer", "commandBuffer"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600801 Param("uint32_t", "x"),
802 Param("uint32_t", "y"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700803 Param("uint32_t", "z")]),
804
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600805 Proto("void", "CmdDispatchIndirect",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700806 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600807 Param("VkBuffer", "buffer"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700808 Param("VkDeviceSize", "offset")]),
809
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600810 Proto("void", "CmdCopyBuffer",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700811 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600812 Param("VkBuffer", "srcBuffer"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800813 Param("VkBuffer", "dstBuffer"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600814 Param("uint32_t", "regionCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700815 Param("const VkBufferCopy*", "pRegions")]),
816
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600817 Proto("void", "CmdCopyImage",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700818 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600819 Param("VkImage", "srcImage"),
820 Param("VkImageLayout", "srcImageLayout"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800821 Param("VkImage", "dstImage"),
822 Param("VkImageLayout", "dstImageLayout"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600823 Param("uint32_t", "regionCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700824 Param("const VkImageCopy*", "pRegions")]),
825
Courtney Goeltzenleuchter89299fa2015-03-08 17:02:18 -0600826 Proto("void", "CmdBlitImage",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700827 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600828 Param("VkImage", "srcImage"),
829 Param("VkImageLayout", "srcImageLayout"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800830 Param("VkImage", "dstImage"),
831 Param("VkImageLayout", "dstImageLayout"),
Courtney Goeltzenleuchter89299fa2015-03-08 17:02:18 -0600832 Param("uint32_t", "regionCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700833 Param("const VkImageBlit*", "pRegions"),
834 Param("VkFilter", "filter")]),
835
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600836 Proto("void", "CmdCopyBufferToImage",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700837 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600838 Param("VkBuffer", "srcBuffer"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800839 Param("VkImage", "dstImage"),
840 Param("VkImageLayout", "dstImageLayout"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600841 Param("uint32_t", "regionCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700842 Param("const VkBufferImageCopy*", "pRegions")]),
843
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600844 Proto("void", "CmdCopyImageToBuffer",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700845 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600846 Param("VkImage", "srcImage"),
847 Param("VkImageLayout", "srcImageLayout"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800848 Param("VkBuffer", "dstBuffer"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600849 Param("uint32_t", "regionCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700850 Param("const VkBufferImageCopy*", "pRegions")]),
851
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600852 Proto("void", "CmdUpdateBuffer",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700853 [Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800854 Param("VkBuffer", "dstBuffer"),
855 Param("VkDeviceSize", "dstOffset"),
Tony Barbourd1c35722015-04-16 15:59:00 -0600856 Param("VkDeviceSize", "dataSize"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700857 Param("const void*", "pData")]),
858
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600859 Proto("void", "CmdFillBuffer",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700860 [Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800861 Param("VkBuffer", "dstBuffer"),
862 Param("VkDeviceSize", "dstOffset"),
Chia-I Wu2bfb33c2015-10-26 17:24:52 +0800863 Param("VkDeviceSize", "size"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700864 Param("uint32_t", "data")]),
865
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600866 Proto("void", "CmdClearColorImage",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700867 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600868 Param("VkImage", "image"),
869 Param("VkImageLayout", "imageLayout"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700870 Param("const VkClearColorValue*", "pColor"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600871 Param("uint32_t", "rangeCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700872 Param("const VkImageSubresourceRange*", "pRanges")]),
873
Chris Forbesd9be82b2015-06-22 17:21:59 +1200874 Proto("void", "CmdClearDepthStencilImage",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700875 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600876 Param("VkImage", "image"),
877 Param("VkImageLayout", "imageLayout"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700878 Param("const VkClearDepthStencilValue*", "pDepthStencil"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600879 Param("uint32_t", "rangeCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700880 Param("const VkImageSubresourceRange*", "pRanges")]),
881
Courtney Goeltzenleuchterc9323e02015-10-15 16:51:05 -0600882 Proto("void", "CmdClearAttachments",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700883 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterc9323e02015-10-15 16:51:05 -0600884 Param("uint32_t", "attachmentCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700885 Param("const VkClearAttachment*", "pAttachments"),
Chris Forbesd9be82b2015-06-22 17:21:59 +1200886 Param("uint32_t", "rectCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700887 Param("const VkClearRect*", "pRects")]),
888
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600889 Proto("void", "CmdResolveImage",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700890 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600891 Param("VkImage", "srcImage"),
892 Param("VkImageLayout", "srcImageLayout"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800893 Param("VkImage", "dstImage"),
894 Param("VkImageLayout", "dstImageLayout"),
Tony Barbour6865d4a2015-04-13 15:02:52 -0600895 Param("uint32_t", "regionCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700896 Param("const VkImageResolve*", "pRegions")]),
897
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600898 Proto("void", "CmdSetEvent",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700899 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600900 Param("VkEvent", "event"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700901 Param("VkPipelineStageFlags", "stageMask")]),
902
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600903 Proto("void", "CmdResetEvent",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700904 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600905 Param("VkEvent", "event"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700906 Param("VkPipelineStageFlags", "stageMask")]),
907
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600908 Proto("void", "CmdWaitEvents",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700909 [Param("VkCommandBuffer", "commandBuffer"),
Tony Barbourd1c35722015-04-16 15:59:00 -0600910 Param("uint32_t", "eventCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700911 Param("const VkEvent*", "pEvents"),
Jon Ashburnea65e492015-08-06 17:27:49 -0600912 Param("VkPipelineStageFlags", "srcStageMask"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800913 Param("VkPipelineStageFlags", "dstStageMask"),
914 Param("uint32_t", "memoryBarrierCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700915 Param("const VkMemoryBarrier*", "pMemoryBarriers"),
Jon Ashburnf19916e2016-01-11 13:12:43 -0700916 Param("uint32_t", "bufferMemoryBarrierCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700917 Param("const VkBufferMemoryBarrier*", "pBufferMemoryBarriers"),
Jon Ashburnf19916e2016-01-11 13:12:43 -0700918 Param("uint32_t", "imageMemoryBarrierCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700919 Param("const VkImageMemoryBarrier*", "pImageMemoryBarriers")]),
920
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600921 Proto("void", "CmdPipelineBarrier",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700922 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterceebbb12015-07-12 13:07:46 -0600923 Param("VkPipelineStageFlags", "srcStageMask"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800924 Param("VkPipelineStageFlags", "dstStageMask"),
Chia-I Wu53534662015-10-26 17:08:33 +0800925 Param("VkDependencyFlags", "dependencyFlags"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800926 Param("uint32_t", "memoryBarrierCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700927 Param("const VkMemoryBarrier*", "pMemoryBarriers"),
Jon Ashburnf19916e2016-01-11 13:12:43 -0700928 Param("uint32_t", "bufferMemoryBarrierCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700929 Param("const VkBufferMemoryBarrier*", "pBufferMemoryBarriers"),
Jon Ashburnf19916e2016-01-11 13:12:43 -0700930 Param("uint32_t", "imageMemoryBarrierCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700931 Param("const VkImageMemoryBarrier*", "pImageMemoryBarriers")]),
932
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600933 Proto("void", "CmdBeginQuery",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700934 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600935 Param("VkQueryPool", "queryPool"),
Jon Ashburnf19916e2016-01-11 13:12:43 -0700936 Param("uint32_t", "query"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700937 Param("VkQueryControlFlags", "flags")]),
938
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600939 Proto("void", "CmdEndQuery",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700940 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600941 Param("VkQueryPool", "queryPool"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700942 Param("uint32_t", "query")]),
943
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600944 Proto("void", "CmdResetQueryPool",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700945 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600946 Param("VkQueryPool", "queryPool"),
Jon Ashburn19d3bf12015-12-30 14:06:55 -0700947 Param("uint32_t", "firstQuery"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700948 Param("uint32_t", "queryCount")]),
949
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600950 Proto("void", "CmdWriteTimestamp",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700951 [Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wu51ce5ea2015-10-26 19:40:27 +0800952 Param("VkPipelineStageFlagBits", "pipelineStage"),
Chia-I Wucbe3c9f2015-10-26 20:14:54 +0800953 Param("VkQueryPool", "queryPool"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700954 Param("uint32_t", "query")]),
955
Courtney Goeltzenleuchter1dbc8e22015-04-15 18:21:13 -0600956 Proto("void", "CmdCopyQueryPoolResults",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700957 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchter1dbc8e22015-04-15 18:21:13 -0600958 Param("VkQueryPool", "queryPool"),
Jon Ashburn19d3bf12015-12-30 14:06:55 -0700959 Param("uint32_t", "firstQuery"),
Courtney Goeltzenleuchter1dbc8e22015-04-15 18:21:13 -0600960 Param("uint32_t", "queryCount"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800961 Param("VkBuffer", "dstBuffer"),
962 Param("VkDeviceSize", "dstOffset"),
Chia-I Wuccc93a72015-10-26 18:36:20 +0800963 Param("VkDeviceSize", "stride"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700964 Param("VkQueryResultFlags", "flags")]),
965
Chia-I Wuce805cb2015-10-26 18:50:46 +0800966 Proto("void", "CmdPushConstants",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700967 [Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800968 Param("VkPipelineLayout", "layout"),
969 Param("VkShaderStageFlags", "stageFlags"),
Chia-I Wud50677e2015-10-26 20:46:14 +0800970 Param("uint32_t", "offset"),
971 Param("uint32_t", "size"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700972 Param("const void*", "pValues")]),
973
Jon Ashburne13f1982015-02-02 09:58:11 -0700974 Proto("void", "CmdBeginRenderPass",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700975 [Param("VkCommandBuffer", "commandBuffer"),
976 Param("const VkRenderPassBeginInfo*", "pRenderPassBegin"),
977 Param("VkSubpassContents", "contents")]),
978
Chia-I Wu08accc62015-07-07 11:50:03 +0800979 Proto("void", "CmdNextSubpass",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700980 [Param("VkCommandBuffer", "commandBuffer"),
981 Param("VkSubpassContents", "contents")]),
982
Jon Ashburne13f1982015-02-02 09:58:11 -0700983 Proto("void", "CmdEndRenderPass",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700984 [Param("VkCommandBuffer", "commandBuffer")]),
985
Chia-I Wu0b50a1c2015-06-26 15:34:39 +0800986 Proto("void", "CmdExecuteCommands",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700987 [Param("VkCommandBuffer", "commandBuffer"),
Jon Ashburnf19916e2016-01-11 13:12:43 -0700988 Param("uint32_t", "commandBufferCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700989 Param("const VkCommandBuffer*", "pCommandBuffers")]),
Chia-I Wue442dc32015-01-01 09:31:15 +0800990 ],
Chia-I Wufb2559d2014-08-01 11:19:52 +0800991)
992
Mark Lobodzinski33f60e22016-10-27 09:48:53 -0600993VK_AMD_draw_indirect_count = Extension(
Mark Lobodzinski4c57a732016-08-29 11:56:02 -0600994 name="VK_AMD_draw_indirect_count",
995 headers=["vulkan/vulkan.h"],
996 objects=[],
997 protos=[
998 Proto("void", "CmdDrawIndirectCountAMD",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -0700999 [Param("VkCommandBuffer", "commandBuffer"),
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001000 Param("VkBuffer", "buffer"),
1001 Param("VkDeviceSize", "offset"),
1002 Param("VkBuffer", "countBuffer"),
1003 Param("VkDeviceSize", "countBufferOffset"),
1004 Param("uint32_t", "maxDrawCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001005 Param("uint32_t", "stride")]),
1006
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001007 Proto("void", "CmdDrawIndexedIndirectCountAMD",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001008 [Param("VkCommandBuffer", "commandBuffer"),
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001009 Param("VkBuffer", "buffer"),
1010 Param("VkDeviceSize", "offset"),
1011 Param("VkBuffer", "countBuffer"),
1012 Param("VkDeviceSize", "countBufferOffset"),
1013 Param("uint32_t", "maxDrawCount"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001014 Param("uint32_t", "stride")]),
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001015 ],
1016)
1017
Mark Lobodzinski33f60e22016-10-27 09:48:53 -06001018VK_NV_external_memory_capabilities = Extension(
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001019 name="VK_NV_external_memory_capabilities",
1020 headers=["vulkan/vulkan.h"],
1021 objects=[],
1022 protos=[
1023 Proto("VkResult", "GetPhysicalDeviceExternalImageFormatPropertiesNV",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001024 [Param("VkPhysicalDevice", "physicalDevice"),
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001025 Param("VkFormat", "format"),
1026 Param("VkImageType", "type"),
1027 Param("VkImageTiling", "tiling"),
1028 Param("VkImageUsageFlags", "usage"),
1029 Param("VkImageCreateFlags", "flags"),
Arda Coskunses12f7cd02016-09-07 12:31:35 -06001030 Param("VkExternalMemoryHandleTypeFlagsNV", "externalHandleType"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001031 Param("VkExternalImageFormatPropertiesNV*", "pExternalImageFormatProperties")]),
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001032 ],
1033)
1034
Mark Lobodzinski33f60e22016-10-27 09:48:53 -06001035VK_NV_external_memory_win32 = Extension(
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001036 name="VK_NV_external_memory_win32",
1037 headers=["vulkan/vulkan.h"],
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001038 objects=[],
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001039 ifdef="VK_USE_PLATFORM_WIN32_KHR",
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001040 protos=[
1041 Proto("VkResult", "GetMemoryWin32HandleNV",
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001042 [Param("VkDevice", "device"),
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001043 Param("VkDeviceMemory", "memory"),
1044 Param("VkExternalMemoryHandleTypeFlagsNV", "handleType"),
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001045 Param("HANDLE*", "pHandle")]),
Mark Lobodzinski4c57a732016-08-29 11:56:02 -06001046 ],
1047)
1048
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001049VK_KHR_surface = Extension(
1050 name="VK_KHR_surface",
Ian Elliottf3284702015-10-29 16:35:06 -06001051 headers=["vulkan/vulkan.h"],
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001052 objects=["vkSurfaceKHR"],
1053 protos=[
1054 Proto("void", "DestroySurfaceKHR",
1055 [Param("VkInstance", "instance"),
1056 Param("VkSurfaceKHR", "surface"),
1057 Param("const VkAllocationCallbacks*", "pAllocator")]),
1058
1059 Proto("VkResult", "GetPhysicalDeviceSurfaceSupportKHR",
1060 [Param("VkPhysicalDevice", "physicalDevice"),
1061 Param("uint32_t", "queueFamilyIndex"),
1062 Param("VkSurfaceKHR", "surface"),
1063 Param("VkBool32*", "pSupported")]),
1064
1065 Proto("VkResult", "GetPhysicalDeviceSurfaceCapabilitiesKHR",
1066 [Param("VkPhysicalDevice", "physicalDevice"),
1067 Param("VkSurfaceKHR", "surface"),
1068 Param("VkSurfaceCapabilitiesKHR*", "pSurfaceCapabilities")]),
1069
1070 Proto("VkResult", "GetPhysicalDeviceSurfaceFormatsKHR",
1071 [Param("VkPhysicalDevice", "physicalDevice"),
1072 Param("VkSurfaceKHR", "surface"),
1073 Param("uint32_t*", "pSurfaceFormatCount"),
1074 Param("VkSurfaceFormatKHR*", "pSurfaceFormats")]),
1075
1076 Proto("VkResult", "GetPhysicalDeviceSurfacePresentModesKHR",
1077 [Param("VkPhysicalDevice", "physicalDevice"),
1078 Param("VkSurfaceKHR", "surface"),
1079 Param("uint32_t*", "pPresentModeCount"),
1080 Param("VkPresentModeKHR*", "pPresentModes")]),
1081 ],
Mark Lobodzinski3077be02015-11-24 14:03:18 -07001082)
Mark Lobodzinski33f60e22016-10-27 09:48:53 -06001083
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001084VK_KHR_display = Extension(
1085 name="VK_KHR_display",
Mun, Gwan-gyeongbd4dd592016-02-22 09:43:09 +09001086 headers=["vulkan/vulkan.h"],
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001087 objects=['VkSurfaceKHR', 'VkDisplayModeKHR'],
1088 protos=[
1089 Proto("VkResult", "GetPhysicalDeviceDisplayPropertiesKHR",
1090 [Param("VkPhysicalDevice", "physicalDevice"),
1091 Param("uint32_t*", "pPropertyCount"),
1092 Param("VkDisplayPropertiesKHR*", "pProperties")]),
1093
1094 Proto("VkResult", "GetPhysicalDeviceDisplayPlanePropertiesKHR",
1095 [Param("VkPhysicalDevice", "physicalDevice"),
1096 Param("uint32_t*", "pPropertyCount"),
1097 Param("VkDisplayPlanePropertiesKHR*", "pProperties")]),
1098
1099 Proto("VkResult", "GetDisplayPlaneSupportedDisplaysKHR",
1100 [Param("VkPhysicalDevice", "physicalDevice"),
1101 Param("uint32_t", "planeIndex"),
1102 Param("uint32_t*", "pDisplayCount"),
1103 Param("VkDisplayKHR*", "pDisplays")]),
1104
1105 Proto("VkResult", "GetDisplayModePropertiesKHR",
1106 [Param("VkPhysicalDevice", "physicalDevice"),
1107 Param("VkDisplayKHR", "display"),
1108 Param("uint32_t*", "pPropertyCount"),
1109 Param("VkDisplayModePropertiesKHR*", "pProperties")]),
1110
1111 Proto("VkResult", "CreateDisplayModeKHR",
1112 [Param("VkPhysicalDevice", "physicalDevice"),
1113 Param("VkDisplayKHR", "display"),
1114 Param("const VkDisplayModeCreateInfoKHR*", "pCreateInfo"),
1115 Param("const VkAllocationCallbacks*", "pAllocator"),
1116 Param("VkDisplayModeKHR*", "pMode")]),
1117
1118 Proto("VkResult", "GetDisplayPlaneCapabilitiesKHR",
1119 [Param("VkPhysicalDevice", "physicalDevice"),
1120 Param("VkDisplayModeKHR", "mode"),
1121 Param("uint32_t", "planeIndex"),
1122 Param("VkDisplayPlaneCapabilitiesKHR*", "pCapabilities")]),
1123
1124 Proto("VkResult", "CreateDisplayPlaneSurfaceKHR",
1125 [Param("VkInstance", "instance"),
1126 Param("const VkDisplaySurfaceCreateInfoKHR*", "pCreateInfo"),
1127 Param("const VkAllocationCallbacks*", "pAllocator"),
1128 Param("VkSurfaceKHR*", "pSurface")]),
1129 ],
Mun, Gwan-gyeongbd4dd592016-02-22 09:43:09 +09001130)
Mark Lobodzinski33f60e22016-10-27 09:48:53 -06001131
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001132VK_KHR_swapchain = Extension(
1133 name="VK_KHR_swapchain",
1134 headers=["vulkan/vulkan.h"],
1135 objects=["VkSwapchainKHR"],
1136 protos=[
1137 Proto("VkResult", "CreateSwapchainKHR",
1138 [Param("VkDevice", "device"),
1139 Param("const VkSwapchainCreateInfoKHR*", "pCreateInfo"),
1140 Param("const VkAllocationCallbacks*", "pAllocator"),
1141 Param("VkSwapchainKHR*", "pSwapchain")]),
1142
1143 Proto("void", "DestroySwapchainKHR",
1144 [Param("VkDevice", "device"),
1145 Param("VkSwapchainKHR", "swapchain"),
1146 Param("const VkAllocationCallbacks*", "pAllocator")]),
1147
1148 Proto("VkResult", "GetSwapchainImagesKHR",
1149 [Param("VkDevice", "device"),
1150 Param("VkSwapchainKHR", "swapchain"),
1151 Param("uint32_t*", "pSwapchainImageCount"),
1152 Param("VkImage*", "pSwapchainImages")]),
1153
1154 Proto("VkResult", "AcquireNextImageKHR",
1155 [Param("VkDevice", "device"),
1156 Param("VkSwapchainKHR", "swapchain"),
1157 Param("uint64_t", "timeout"),
1158 Param("VkSemaphore", "semaphore"),
1159 Param("VkFence", "fence"),
1160 Param("uint32_t*", "pImageIndex")]),
1161
1162 Proto("VkResult", "QueuePresentKHR",
1163 [Param("VkQueue", "queue"),
1164 Param("const VkPresentInfoKHR*", "pPresentInfo")]),
1165 ],
1166)
1167
1168VK_KHR_display_swapchain = Extension(
1169 name="VK_KHR_display_swapchain",
1170 headers=["vulkan/vulkan.h"],
1171 objects=["VkDisplayPresentInfoKHR"],
1172 protos=[
1173 Proto("VkResult", "CreateSharedSwapchainsKHR",
1174 [Param("VkDevice", "device"),
1175 Param("uint32_t", "swapchainCount"),
1176 Param("const VkSwapchainCreateInfoKHR*", "pCreateInfos"),
1177 Param("const VkAllocationCallbacks*", "pAllocator"),
1178 Param("VkSwapchainKHR*", "pSwapchains")]),
1179 ],
1180)
1181
1182VK_KHR_xcb_surface = Extension(
1183 name="VK_KHR_xcb_surface",
1184 headers=["vulkan/vulkan.h"],
1185 objects=[],
1186 protos=[
1187 Proto("VkResult", "CreateXcbSurfaceKHR",
1188 [Param("VkInstance", "instance"),
1189 Param("const VkXcbSurfaceCreateInfoKHR*", "pCreateInfo"),
1190 Param("const VkAllocationCallbacks*", "pAllocator"),
1191 Param("VkSurfaceKHR*", "pSurface")]),
1192
1193 Proto("VkBool32", "GetPhysicalDeviceXcbPresentationSupportKHR",
1194 [Param("VkPhysicalDevice", "physicalDevice"),
1195 Param("uint32_t", "queueFamilyIndex"),
1196 Param("xcb_connection_t*", "connection"),
1197 Param("xcb_visualid_t", "visual_id")]),
1198 ],
1199)
1200
1201VK_KHR_xlib_surface = Extension(
1202 name="VK_KHR_xlib_surface",
1203 headers=["vulkan/vulkan.h"],
1204 objects=[],
1205 ifdef="VK_USE_PLATFORM_XLIB_KHR",
1206 protos=[
1207 Proto("VkResult", "CreateXlibSurfaceKHR",
1208 [Param("VkInstance", "instance"),
1209 Param("const VkXlibSurfaceCreateInfoKHR*", "pCreateInfo"),
1210 Param("const VkAllocationCallbacks*", "pAllocator"),
1211 Param("VkSurfaceKHR*", "pSurface")]),
1212
1213 Proto("VkBool32", "GetPhysicalDeviceXlibPresentationSupportKHR",
1214 [Param("VkPhysicalDevice", "physicalDevice"),
1215 Param("uint32_t", "queueFamilyIndex"),
1216 Param("Display*", "dpy"),
1217 Param("VisualID", "visualID")]),
1218 ],
1219)
1220
1221VK_KHR_wayland_surface = Extension(
1222 name="VK_KHR_wayland_surface",
1223 headers=["vulkan/vulkan.h"],
1224 objects=[],
1225 protos=[
1226 Proto("VkResult", "CreateWaylandSurfaceKHR",
1227 [Param("VkInstance", "instance"),
1228 Param("const VkWaylandSurfaceCreateInfoKHR*", "pCreateInfo"),
1229 Param("const VkAllocationCallbacks*", "pAllocator"),
1230 Param("VkSurfaceKHR*", "pSurface")]),
1231
1232 Proto("VkBool32", "GetPhysicalDeviceWaylandPresentationSupportKHR",
1233 [Param("VkPhysicalDevice", "physicalDevice"),
1234 Param("uint32_t", "queueFamilyIndex"),
1235 Param("struct wl_display*", "display")]),
1236 ],
1237)
1238
1239VK_KHR_mir_surface = Extension(
1240 name="VK_KHR_mir_surface",
1241 headers=["vulkan/vulkan.h"],
1242 objects=[],
1243 protos=[
1244 Proto("VkResult", "CreateMirSurfaceKHR",
1245 [Param("VkInstance", "instance"),
1246 Param("const VkMirSurfaceCreateInfoKHR*", "pCreateInfo"),
1247 Param("const VkAllocationCallbacks*", "pAllocator"),
1248 Param("VkSurfaceKHR*", "pSurface")]),
1249
1250 Proto("VkBool32", "GetPhysicalDeviceMirPresentationSupportKHR",
1251 [Param("VkPhysicalDevice", "physicalDevice"),
1252 Param("uint32_t", "queueFamilyIndex"),
1253 Param("MirConnection*", "connection")]),
1254 ],
1255)
1256
1257VK_KHR_android_surface = Extension(
1258 name="VK_KHR_android_surface",
1259 headers=["vulkan/vulkan.h"],
1260 objects=[],
1261 protos=[
1262 Proto("VkResult", "CreateAndroidSurfaceKHR",
1263 [Param("VkInstance", "instance"),
1264 Param("const VkAndroidSurfaceCreateInfoKHR*", "pCreateInfo"),
1265 Param("const VkAllocationCallbacks*", "pAllocator"),
1266 Param("VkSurfaceKHR*", "pSurface")]),
1267 ],
1268)
1269
1270VK_KHR_win32_surface = Extension(
1271 name="VK_KHR_win32_surface",
1272 headers=["vulkan/vulkan.h"],
1273 objects=[],
1274 protos=[
1275 Proto("VkResult", "CreateWin32SurfaceKHR",
1276 [Param("VkInstance", "instance"),
1277 Param("const VkWin32SurfaceCreateInfoKHR*", "pCreateInfo"),
1278 Param("const VkAllocationCallbacks*", "pAllocator"),
1279 Param("VkSurfaceKHR*", "pSurface")]),
1280
1281 Proto("VkBool32", "GetPhysicalDeviceWin32PresentationSupportKHR",
1282 [Param("VkPhysicalDevice", "physicalDevice"),
1283 Param("uint32_t", "queueFamilyIndex")]),
1284 ],
1285)
1286
1287VK_EXT_debug_report = Extension(
1288 name="VK_EXT_debug_report",
1289 headers=["vulkan/vulkan.h"],
1290 objects=[
1291 "VkDebugReportCallbackEXT",
1292 ],
1293 protos=[
1294 Proto("VkResult", "CreateDebugReportCallbackEXT",
1295 [Param("VkInstance", "instance"),
1296 Param("const VkDebugReportCallbackCreateInfoEXT*", "pCreateInfo"),
1297 Param("const VkAllocationCallbacks*", "pAllocator"),
1298 Param("VkDebugReportCallbackEXT*", "pCallback")]),
1299
1300 Proto("void", "DestroyDebugReportCallbackEXT",
1301 [Param("VkInstance", "instance"),
1302 Param("VkDebugReportCallbackEXT", "callback"),
1303 Param("const VkAllocationCallbacks*", "pAllocator")]),
1304
1305 Proto("void", "DebugReportMessageEXT",
1306 [Param("VkInstance", "instance"),
1307 Param("VkDebugReportFlagsEXT", "flags"),
1308 Param("VkDebugReportObjectTypeEXT", "objType"),
1309 Param("uint64_t", "object"),
1310 Param("size_t", "location"),
1311 Param("int32_t", "msgCode"),
1312 Param("const char *", "pLayerPrefix"),
1313 Param("const char *", "pMsg")]),
1314 ],
1315)
1316
1317VK_EXT_debug_marker = Extension(
1318 name="VK_EXT_debug_marker",
1319 headers=["vulkan/vulkan.h"],
1320 objects=[
1321 "VkDebugMarkerObjectNameInfoEXT",
1322 "VkDebugMarkerObjectTagInfoEXT",
1323 "VkDebugMarkerMarkerInfoEXT"
1324 ],
1325 protos=[
1326 Proto("VkResult", "DebugMarkerSetObjectTagEXT",
1327 [Param("VkDevice", "device"),
1328 Param("VkDebugMarkerObjectTagInfoEXT*", "pTagInfo")]),
1329
1330 Proto("VkResult", "DebugMarkerSetObjectNameEXT",
1331 [Param("VkDevice", "device"),
1332 Param("VkDebugMarkerObjectNameInfoEXT*", "pNameInfo")]),
1333
1334 Proto("void", "CmdDebugMarkerBeginEXT",
1335 [Param("VkCommandBuffer", "commandBuffer"),
1336 Param("VkDebugMarkerMarkerInfoEXT*", "pMarkerInfo")]),
1337
1338 Proto("void", "CmdDebugMarkerEndEXT",
1339 [Param("VkCommandBuffer", "commandBuffer")]),
1340
1341 Proto("void", "CmdDebugMarkerInsertEXT",
1342 [Param("VkCommandBuffer", "commandBuffer"),
1343 Param("VkDebugMarkerMarkerInfoEXT*", "pMarkerInfo")]),
1344 ],
1345)
1346
Mark Lobodzinskie86e1382015-11-24 15:50:44 -07001347import sys
Mark Lobodzinski2bdb5af2016-10-27 09:52:30 -06001348
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001349wsi_linux = ['Xcb', 'Xlib', 'Wayland', 'Mir', 'Display']
Mark Lobodzinskie3481c02016-11-16 14:53:26 -07001350
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001351# Set up platform-specific display servers
1352linux_display_servers = ['Xcb', 'Xlib', 'Wayland', 'Mir', 'Display']
1353win32_display_servers = ['Win32']
1354android_display_servers = ['Android']
Mark Lobodzinski2bdb5af2016-10-27 09:52:30 -06001355
1356# Define non-WSI platform-specific extensions
1357android_only_exts = []
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001358linux_only_exts = []
1359win32_only_exts = [VK_NV_external_memory_win32,
1360# VK_NV_win32_keyed_mutex,
1361 ]
1362
1363# Define platform-specific WSI extensions
1364android_wsi_exts = [VK_KHR_android_surface,
1365 ]
1366linux_wsi_exts = [VK_KHR_xlib_surface,
1367 VK_KHR_xcb_surface,
1368 VK_KHR_wayland_surface,
1369 VK_KHR_mir_surface,
1370 ]
1371win32_wsi_exts = [VK_KHR_win32_surface
1372 ]
Mark Lobodzinski2bdb5af2016-10-27 09:52:30 -06001373
1374# Define extensions common to all configurations
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001375common_exts = [VK_VERSION_1_0,
1376 VK_KHR_surface,
1377 VK_KHR_swapchain,
1378 VK_KHR_display_swapchain,
1379 ]
Mark Lobodzinski2bdb5af2016-10-27 09:52:30 -06001380
1381# Define extensions not exported by the loader
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001382non_exported_exts = [VK_NV_external_memory_capabilities,
1383 VK_AMD_draw_indirect_count,
1384 VK_EXT_debug_report,
1385 VK_EXT_debug_marker,
1386# VK_KHR_sampler_mirror_clamp_to_edge,
1387# VK_NV_glsl_shader,
1388# VK_IMG_filter_cubic,
1389# VK_AMD_rasterization_order,
1390# VK_AMD_shader_trinary_minmax,
1391# VK_AMD_shader_explicit_vertex_parameter,
1392# VK_AMD_gcn_shader,
1393# VK_NV_dedicated_allocation,
1394# VK_NV_external_memory,
1395# VK_EXT_validation_flags,
1396# VK_AMD_negative_viewport_height,
1397# VK_AMD_gpu_shader_half_float,
1398# VK_AMD_shader_ballot,
1399# VK_IMG_format_pvrtc,
1400 ]
1401non_android_exts = [VK_KHR_display,
1402 ]
Mark Lobodzinski2bdb5af2016-10-27 09:52:30 -06001403extensions = common_exts
1404extensions_all = non_exported_exts
1405
1406if sys.argv[1] in win32_display_servers:
1407 extensions += win32_wsi_exts
1408 extensions_all += extensions + win32_only_exts
1409elif sys.argv[1] in linux_display_servers:
1410 extensions += linux_wsi_exts
1411 extensions_all += extensions + linux_only_exts
1412elif sys.argv[1] in android_display_servers:
1413 extensions += android_wsi_exts
1414 extensions_all += extensions + android_only_exts
Mark Lobodzinski33f60e22016-10-27 09:48:53 -06001415else:
Mark Lobodzinski2bdb5af2016-10-27 09:52:30 -06001416 extensions += win32_wsi_exts + linux_wsi_exts + android_wsi_exts
1417 extensions_all += extensions + win32_only_exts + linux_only_exts + android_only_exts
Mark Lobodzinskie86e1382015-11-24 15:50:44 -07001418
Mark Lobodzinskic2d0c802016-11-17 10:20:12 -07001419object_dispatch_list = [
1420 "VkInstance",
1421 "VkPhysicalDevice",
1422 "VkDevice",
1423 "VkQueue",
1424 "VkCommandBuffer",
1425]
1426
1427object_non_dispatch_list = [
1428 "VkCommandPool",
1429 "VkFence",
1430 "VkDeviceMemory",
1431 "VkBuffer",
1432 "VkImage",
1433 "VkSemaphore",
1434 "VkEvent",
1435 "VkQueryPool",
1436 "VkBufferView",
1437 "VkImageView",
1438 "VkShaderModule",
1439 "VkPipelineCache",
1440 "VkPipelineLayout",
1441 "VkPipeline",
1442 "VkDescriptorSetLayout",
1443 "VkSampler",
1444 "VkDescriptorPool",
1445 "VkDescriptorSet",
1446 "VkRenderPass",
1447 "VkFramebuffer",
1448 "VkSwapchainKHR",
1449 "VkSurfaceKHR",
1450 "VkDebugReportCallbackEXT",
1451 "VkDisplayKHR",
1452 "VkDisplayModeKHR",
1453]
1454
Tobin Ehlisa30e7e52015-07-06 14:02:36 -06001455object_type_list = object_dispatch_list + object_non_dispatch_list
Tobin Ehlis7e65d752015-01-15 17:51:52 -07001456
Chia-I Wuc4f24e82015-01-01 08:46:31 +08001457headers = []
Chia-I Wue86d8ab2015-01-04 14:46:22 +08001458objects = []
Chia-I Wuc4f24e82015-01-01 08:46:31 +08001459protos = []
1460for ext in extensions:
1461 headers.extend(ext.headers)
Chia-I Wue86d8ab2015-01-04 14:46:22 +08001462 objects.extend(ext.objects)
Chia-I Wuc4f24e82015-01-01 08:46:31 +08001463 protos.extend(ext.protos)
Chia-I Wu6dee8b82014-09-23 10:37:23 +08001464
Chia-I Wu9a4ceb12015-01-01 14:45:58 +08001465proto_names = [proto.name for proto in protos]
Chia-I Wu900a2572014-08-01 14:44:16 +08001466
Mark Youngaa1aa3a2016-07-05 16:41:50 -06001467headers_all = []
1468objects_all = []
1469protos_all = []
1470for ext in extensions_all:
1471 headers_all.extend(ext.headers)
1472 objects_all.extend(ext.objects)
1473 protos_all.extend(ext.protos)
1474
1475proto_all_names = [proto.name for proto in protos_all]