blob: 752a646c8a3cfda05daf75f25208cb961b7927cd [file] [log] [blame]
Mark Lobodzinskie86e1382015-11-24 15:50:44 -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.
4# 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):
28 """A function parameter."""
29
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
Chia-I Wua5d28fa2015-01-04 15:02:50 +080044 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):
67 """A function prototype."""
68
Chia-I Wue442dc32015-01-01 09:31:15 +080069 def __init__(self, ret, name, params=[]):
Chia-I Wufb2559d2014-08-01 11:19:52 +080070 # 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)
113
114 pad = 44 - idx
115 if pad <= 0:
116 pad = 1
117
118 plist.append(" %s%s%s%s" % (param.ty[:idx],
119 " " * pad, param.name, param.ty[idx:]))
120
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
140 def object_out_params(self):
Courtney Goeltzenleuchterd8e229c2015-04-08 15:36:08 -0600141 """Return the params that are simple VK objects and are outputs."""
Chia-I Wua5d28fa2015-01-04 15:02:50 +0800142 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
151 return "Proto(\"%s\", \"%s\",\n%s)" % \
152 (self.ret, self.name, param_str)
153
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
Courtney Goeltzenleuchterd8e229c2015-04-08 15:36:08 -0600162# VK core API
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800163core = Extension(
Courtney Goeltzenleuchterd8e229c2015-04-08 15:36:08 -0600164 name="VK_CORE",
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",
Chia-I Wuce805cb2015-10-26 18:50:46 +0800171 "VkSemaphore",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800172 "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",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600183 "VkPipelineLayout",
Chia-I Wuce805cb2015-10-26 18:50:46 +0800184 "VkRenderPass",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600185 "VkPipeline",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600186 "VkDescriptorSetLayout",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600187 "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",
Courtney Goeltzenleuchter95487bc2015-04-14 18:48:46 -0600195 [Param("const VkInstanceCreateInfo*", "pCreateInfo"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800196 Param("const VkAllocationCallbacks*", "pAllocator"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600197 Param("VkInstance*", "pInstance")]),
Jon Ashburn1beab2d2015-01-26 14:51:40 -0700198
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600199 Proto("void", "DestroyInstance",
Chia-I Wuf7458c52015-10-26 21:10:41 +0800200 [Param("VkInstance", "instance"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800201 Param("const VkAllocationCallbacks*", "pAllocator")]),
Jon Ashburn1beab2d2015-01-26 14:51:40 -0700202
Jon Ashburn83a64252015-04-15 11:31:12 -0600203 Proto("VkResult", "EnumeratePhysicalDevices",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600204 [Param("VkInstance", "instance"),
Jon Ashburn83a64252015-04-15 11:31:12 -0600205 Param("uint32_t*", "pPhysicalDeviceCount"),
Tony Barbourd1c35722015-04-16 15:59:00 -0600206 Param("VkPhysicalDevice*", "pPhysicalDevices")]),
Jon Ashburn1beab2d2015-01-26 14:51:40 -0700207
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600208 Proto("void", "GetPhysicalDeviceFeatures",
Chris Forbesbc0bb772015-06-21 22:55:02 +1200209 [Param("VkPhysicalDevice", "physicalDevice"),
210 Param("VkPhysicalDeviceFeatures*", "pFeatures")]),
211
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600212 Proto("void", "GetPhysicalDeviceFormatProperties",
Chris Forbesbc0bb772015-06-21 22:55:02 +1200213 [Param("VkPhysicalDevice", "physicalDevice"),
214 Param("VkFormat", "format"),
Jon Ashburnea65e492015-08-06 17:27:49 -0600215 Param("VkFormatProperties*", "pFormatProperties")]),
Chris Forbesbc0bb772015-06-21 22:55:02 +1200216
Chia-I Wu17241042015-10-31 00:31:16 +0800217 Proto("VkResult", "GetPhysicalDeviceImageFormatProperties",
Jon Ashburn42540ef2015-07-23 18:48:20 -0600218 [Param("VkPhysicalDevice", "physicalDevice"),
219 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"),
Jon Ashburn42540ef2015-07-23 18:48:20 -0600224 Param("VkImageFormatProperties*", "pImageFormatProperties")]),
225
Chia-I Wuce805cb2015-10-26 18:50:46 +0800226 Proto("void", "GetPhysicalDeviceProperties",
227 [Param("VkPhysicalDevice", "physicalDevice"),
228 Param("VkPhysicalDeviceProperties*", "pProperties")]),
229
230 Proto("void", "GetPhysicalDeviceQueueFamilyProperties",
231 [Param("VkPhysicalDevice", "physicalDevice"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800232 Param("uint32_t*", "pQueueFamilyPropertyCount"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800233 Param("VkQueueFamilyProperties*", "pQueueFamilyProperties")]),
234
235 Proto("void", "GetPhysicalDeviceMemoryProperties",
236 [Param("VkPhysicalDevice", "physicalDevice"),
237 Param("VkPhysicalDeviceMemoryProperties*", "pMemoryProperties")]),
238
Courtney Goeltzenleuchter2d3ba632015-07-12 14:35:22 -0600239 Proto("PFN_vkVoidFunction", "GetInstanceProcAddr",
Jon Ashburnb0fbe912015-05-06 10:15:07 -0600240 [Param("VkInstance", "instance"),
241 Param("const char*", "pName")]),
242
Courtney Goeltzenleuchter2d3ba632015-07-12 14:35:22 -0600243 Proto("PFN_vkVoidFunction", "GetDeviceProcAddr",
Jon Ashburn8d1b0b52015-05-18 13:20:15 -0600244 [Param("VkDevice", "device"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600245 Param("const char*", "pName")]),
Chia-I Wuf2ffc522015-01-04 14:51:06 +0800246
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600247 Proto("VkResult", "CreateDevice",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600248 [Param("VkPhysicalDevice", "physicalDevice"),
Courtney Goeltzenleuchter95487bc2015-04-14 18:48:46 -0600249 Param("const VkDeviceCreateInfo*", "pCreateInfo"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800250 Param("const VkAllocationCallbacks*", "pAllocator"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600251 Param("VkDevice*", "pDevice")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800252
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600253 Proto("void", "DestroyDevice",
Chia-I Wuf7458c52015-10-26 21:10:41 +0800254 [Param("VkDevice", "device"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800255 Param("const VkAllocationCallbacks*", "pAllocator")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800256
Courtney Goeltzenleuchter35985f62015-09-14 17:22:16 -0600257 Proto("VkResult", "EnumerateInstanceExtensionProperties",
Courtney Goeltzenleuchter110fdf92015-06-29 15:39:26 -0600258 [Param("const char*", "pLayerName"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800259 Param("uint32_t*", "pPropertyCount"),
Tony Barbour59a47322015-06-24 16:06:58 -0600260 Param("VkExtensionProperties*", "pProperties")]),
261
Courtney Goeltzenleuchter35985f62015-09-14 17:22:16 -0600262 Proto("VkResult", "EnumerateDeviceExtensionProperties",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600263 [Param("VkPhysicalDevice", "physicalDevice"),
264 Param("const char*", "pLayerName"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800265 Param("uint32_t*", "pPropertyCount"),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600266 Param("VkExtensionProperties*", "pProperties")]),
267
Courtney Goeltzenleuchter35985f62015-09-14 17:22:16 -0600268 Proto("VkResult", "EnumerateInstanceLayerProperties",
Chia-I Wud50a7d72015-10-26 20:48:51 +0800269 [Param("uint32_t*", "pPropertyCount"),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600270 Param("VkLayerProperties*", "pProperties")]),
271
Courtney Goeltzenleuchter35985f62015-09-14 17:22:16 -0600272 Proto("VkResult", "EnumerateDeviceLayerProperties",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600273 [Param("VkPhysicalDevice", "physicalDevice"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800274 Param("uint32_t*", "pPropertyCount"),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600275 Param("VkLayerProperties*", "pProperties")]),
Tobin Ehlis01939012015-04-16 12:51:37 -0600276
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600277 Proto("void", "GetDeviceQueue",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600278 [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"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600281 Param("VkQueue*", "pQueue")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800282
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600283 Proto("VkResult", "QueueSubmit",
284 [Param("VkQueue", "queue"),
Courtney Goeltzenleuchter646b9072015-10-20 18:04:07 -0600285 Param("uint32_t", "submitCount"),
Chia-I Wu40cf0ae2015-10-26 17:20:32 +0800286 Param("const VkSubmitInfo*", "pSubmits"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600287 Param("VkFence", "fence")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800288
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600289 Proto("VkResult", "QueueWaitIdle",
290 [Param("VkQueue", "queue")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800291
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600292 Proto("VkResult", "DeviceWaitIdle",
293 [Param("VkDevice", "device")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800294
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800295 Proto("VkResult", "AllocateMemory",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600296 [Param("VkDevice", "device"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800297 Param("const VkMemoryAllocateInfo*", "pAllocateInfo"),
298 Param("const VkAllocationCallbacks*", "pAllocator"),
299 Param("VkDeviceMemory*", "pMemory")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800300
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600301 Proto("void", "FreeMemory",
Mike Stroyanb050c682015-04-17 12:36:38 -0600302 [Param("VkDevice", "device"),
Chia-I Wubb7fad92015-10-27 17:53:18 +0800303 Param("VkDeviceMemory", "memory"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800304 Param("const VkAllocationCallbacks*", "pAllocator")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800305
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600306 Proto("VkResult", "MapMemory",
Mike Stroyanb050c682015-04-17 12:36:38 -0600307 [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 Lobodzinski17caf572015-01-29 08:55:56 -0600312 Param("void**", "ppData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800313
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600314 Proto("void", "UnmapMemory",
Mike Stroyanb050c682015-04-17 12:36:38 -0600315 [Param("VkDevice", "device"),
Chia-I Wubb7fad92015-10-27 17:53:18 +0800316 Param("VkDeviceMemory", "memory")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800317
Courtney Goeltzenleuchterf69f8a22015-04-29 17:16:21 -0600318 Proto("VkResult", "FlushMappedMemoryRanges",
Mike Stroyanb050c682015-04-17 12:36:38 -0600319 [Param("VkDevice", "device"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800320 Param("uint32_t", "memoryRangeCount"),
321 Param("const VkMappedMemoryRange*", "pMemoryRanges")]),
Courtney Goeltzenleuchterf69f8a22015-04-29 17:16:21 -0600322
323 Proto("VkResult", "InvalidateMappedMemoryRanges",
324 [Param("VkDevice", "device"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800325 Param("uint32_t", "memoryRangeCount"),
326 Param("const VkMappedMemoryRange*", "pMemoryRanges")]),
Tony Barbourb1250542015-04-16 19:23:13 -0600327
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600328 Proto("void", "GetDeviceMemoryCommitment",
Courtney Goeltzenleuchterfb71f222015-07-09 21:57:28 -0600329 [Param("VkDevice", "device"),
330 Param("VkDeviceMemory", "memory"),
331 Param("VkDeviceSize*", "pCommittedMemoryInBytes")]),
332
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600333 Proto("VkResult", "BindBufferMemory",
334 [Param("VkDevice", "device"),
335 Param("VkBuffer", "buffer"),
Chia-I Wubb7fad92015-10-27 17:53:18 +0800336 Param("VkDeviceMemory", "memory"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800337 Param("VkDeviceSize", "memoryOffset")]),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600338
339 Proto("VkResult", "BindImageMemory",
340 [Param("VkDevice", "device"),
341 Param("VkImage", "image"),
Chia-I Wubb7fad92015-10-27 17:53:18 +0800342 Param("VkDeviceMemory", "memory"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800343 Param("VkDeviceSize", "memoryOffset")]),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600344
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600345 Proto("void", "GetBufferMemoryRequirements",
Mike Stroyanb050c682015-04-17 12:36:38 -0600346 [Param("VkDevice", "device"),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600347 Param("VkBuffer", "buffer"),
Tony Barbour59a47322015-06-24 16:06:58 -0600348 Param("VkMemoryRequirements*", "pMemoryRequirements")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800349
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600350 Proto("void", "GetImageMemoryRequirements",
Mark Lobodzinski942b1722015-05-11 17:21:15 -0500351 [Param("VkDevice", "device"),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600352 Param("VkImage", "image"),
353 Param("VkMemoryRequirements*", "pMemoryRequirements")]),
354
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600355 Proto("void", "GetImageSparseMemoryRequirements",
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -0600356 [Param("VkDevice", "device"),
357 Param("VkImage", "image"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800358 Param("uint32_t*", "pSparseMemoryRequirementCount"),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600359 Param("VkSparseImageMemoryRequirements*", "pSparseMemoryRequirements")]),
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -0600360
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600361 Proto("void", "GetPhysicalDeviceSparseImageFormatProperties",
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -0600362 [Param("VkPhysicalDevice", "physicalDevice"),
363 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"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800368 Param("uint32_t*", "pPropertyCount"),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600369 Param("VkSparseImageFormatProperties*", "pProperties")]),
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -0600370
Chia-I Wu1ff4c3d2015-10-26 16:55:27 +0800371 Proto("VkResult", "QueueBindSparse",
Mark Lobodzinski40f7f402015-04-16 11:44:05 -0500372 [Param("VkQueue", "queue"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800373 Param("uint32_t", "bindInfoCount"),
Chia-I Wu1ff4c3d2015-10-26 16:55:27 +0800374 Param("const VkBindSparseInfo*", "pBindInfo"),
375 Param("VkFence", "fence")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800376
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600377 Proto("VkResult", "CreateFence",
378 [Param("VkDevice", "device"),
379 Param("const VkFenceCreateInfo*", "pCreateInfo"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800380 Param("const VkAllocationCallbacks*", "pAllocator"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600381 Param("VkFence*", "pFence")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800382
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600383 Proto("void", "DestroyFence",
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600384 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800385 Param("VkFence", "fence"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800386 Param("const VkAllocationCallbacks*", "pAllocator")]),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600387
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600388 Proto("VkResult", "ResetFences",
389 [Param("VkDevice", "device"),
Mark Lobodzinski148e1582015-04-07 16:07:57 -0500390 Param("uint32_t", "fenceCount"),
Courtney Goeltzenleuchter2bf8f902015-06-18 17:28:20 -0600391 Param("const VkFence*", "pFences")]),
Mark Lobodzinski148e1582015-04-07 16:07:57 -0500392
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600393 Proto("VkResult", "GetFenceStatus",
Mike Stroyanb050c682015-04-17 12:36:38 -0600394 [Param("VkDevice", "device"),
395 Param("VkFence", "fence")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800396
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600397 Proto("VkResult", "WaitForFences",
398 [Param("VkDevice", "device"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600399 Param("uint32_t", "fenceCount"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600400 Param("const VkFence*", "pFences"),
Courtney Goeltzenleuchtercd2a0992015-07-09 11:44:38 -0600401 Param("VkBool32", "waitAll"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600402 Param("uint64_t", "timeout")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800403
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600404 Proto("VkResult", "CreateSemaphore",
405 [Param("VkDevice", "device"),
406 Param("const VkSemaphoreCreateInfo*", "pCreateInfo"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800407 Param("const VkAllocationCallbacks*", "pAllocator"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600408 Param("VkSemaphore*", "pSemaphore")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800409
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600410 Proto("void", "DestroySemaphore",
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600411 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800412 Param("VkSemaphore", "semaphore"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800413 Param("const VkAllocationCallbacks*", "pAllocator")]),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600414
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600415 Proto("VkResult", "CreateEvent",
416 [Param("VkDevice", "device"),
417 Param("const VkEventCreateInfo*", "pCreateInfo"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800418 Param("const VkAllocationCallbacks*", "pAllocator"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600419 Param("VkEvent*", "pEvent")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800420
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600421 Proto("void", "DestroyEvent",
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600422 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800423 Param("VkEvent", "event"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800424 Param("const VkAllocationCallbacks*", "pAllocator")]),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600425
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600426 Proto("VkResult", "GetEventStatus",
Mike Stroyanb050c682015-04-17 12:36:38 -0600427 [Param("VkDevice", "device"),
428 Param("VkEvent", "event")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800429
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600430 Proto("VkResult", "SetEvent",
Mike Stroyanb050c682015-04-17 12:36:38 -0600431 [Param("VkDevice", "device"),
432 Param("VkEvent", "event")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800433
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600434 Proto("VkResult", "ResetEvent",
Mike Stroyanb050c682015-04-17 12:36:38 -0600435 [Param("VkDevice", "device"),
436 Param("VkEvent", "event")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800437
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600438 Proto("VkResult", "CreateQueryPool",
439 [Param("VkDevice", "device"),
440 Param("const VkQueryPoolCreateInfo*", "pCreateInfo"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800441 Param("const VkAllocationCallbacks*", "pAllocator"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600442 Param("VkQueryPool*", "pQueryPool")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800443
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600444 Proto("void", "DestroyQueryPool",
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600445 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800446 Param("VkQueryPool", "queryPool"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800447 Param("const VkAllocationCallbacks*", "pAllocator")]),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600448
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600449 Proto("VkResult", "GetQueryPoolResults",
Mike Stroyanb050c682015-04-17 12:36:38 -0600450 [Param("VkDevice", "device"),
451 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"),
Tony Barbourd1c35722015-04-16 15:59:00 -0600455 Param("void*", "pData"),
Chia-I Wuccc93a72015-10-26 18:36:20 +0800456 Param("VkDeviceSize", "stride"),
Tony Barbourd1c35722015-04-16 15:59:00 -0600457 Param("VkQueryResultFlags", "flags")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800458
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600459 Proto("VkResult", "CreateBuffer",
460 [Param("VkDevice", "device"),
Courtney Goeltzenleuchter95487bc2015-04-14 18:48:46 -0600461 Param("const VkBufferCreateInfo*", "pCreateInfo"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800462 Param("const VkAllocationCallbacks*", "pAllocator"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600463 Param("VkBuffer*", "pBuffer")]),
Chia-I Wu1a28fe02015-01-01 07:55:04 +0800464
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600465 Proto("void", "DestroyBuffer",
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600466 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800467 Param("VkBuffer", "buffer"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800468 Param("const VkAllocationCallbacks*", "pAllocator")]),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600469
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600470 Proto("VkResult", "CreateBufferView",
471 [Param("VkDevice", "device"),
Courtney Goeltzenleuchter95487bc2015-04-14 18:48:46 -0600472 Param("const VkBufferViewCreateInfo*", "pCreateInfo"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800473 Param("const VkAllocationCallbacks*", "pAllocator"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600474 Param("VkBufferView*", "pView")]),
Chia-I Wu1a28fe02015-01-01 07:55:04 +0800475
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600476 Proto("void", "DestroyBufferView",
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600477 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800478 Param("VkBufferView", "bufferView"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800479 Param("const VkAllocationCallbacks*", "pAllocator")]),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600480
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600481 Proto("VkResult", "CreateImage",
482 [Param("VkDevice", "device"),
483 Param("const VkImageCreateInfo*", "pCreateInfo"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800484 Param("const VkAllocationCallbacks*", "pAllocator"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600485 Param("VkImage*", "pImage")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800486
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600487 Proto("void", "DestroyImage",
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600488 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800489 Param("VkImage", "image"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800490 Param("const VkAllocationCallbacks*", "pAllocator")]),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600491
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -0600492 Proto("void", "GetImageSubresourceLayout",
Mike Stroyanb050c682015-04-17 12:36:38 -0600493 [Param("VkDevice", "device"),
494 Param("VkImage", "image"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600495 Param("const VkImageSubresource*", "pSubresource"),
Tony Barbour59a47322015-06-24 16:06:58 -0600496 Param("VkSubresourceLayout*", "pLayout")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800497
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600498 Proto("VkResult", "CreateImageView",
499 [Param("VkDevice", "device"),
500 Param("const VkImageViewCreateInfo*", "pCreateInfo"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800501 Param("const VkAllocationCallbacks*", "pAllocator"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600502 Param("VkImageView*", "pView")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800503
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600504 Proto("void", "DestroyImageView",
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600505 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800506 Param("VkImageView", "imageView"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800507 Param("const VkAllocationCallbacks*", "pAllocator")]),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600508
Courtney Goeltzenleuchter2d2cb682015-06-24 18:24:19 -0600509 Proto("VkResult", "CreateShaderModule",
510 [Param("VkDevice", "device"),
511 Param("const VkShaderModuleCreateInfo*", "pCreateInfo"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800512 Param("const VkAllocationCallbacks*", "pAllocator"),
Courtney Goeltzenleuchter2d2cb682015-06-24 18:24:19 -0600513 Param("VkShaderModule*", "pShaderModule")]),
514
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600515 Proto("void", "DestroyShaderModule",
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600516 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800517 Param("VkShaderModule", "shaderModule"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800518 Param("const VkAllocationCallbacks*", "pAllocator")]),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600519
Jon Ashburnc669cc62015-07-09 15:02:25 -0600520 Proto("VkResult", "CreatePipelineCache",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600521 [Param("VkDevice", "device"),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600522 Param("const VkPipelineCacheCreateInfo*", "pCreateInfo"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800523 Param("const VkAllocationCallbacks*", "pAllocator"),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600524 Param("VkPipelineCache*", "pPipelineCache")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800525
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600526 Proto("void", "DestroyPipelineCache",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600527 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800528 Param("VkPipelineCache", "pipelineCache"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800529 Param("const VkAllocationCallbacks*", "pAllocator")]),
Courtney Goeltzenleuchter0d40f152015-03-25 15:37:49 -0600530
Jon Ashburnc669cc62015-07-09 15:02:25 -0600531 Proto("VkResult", "GetPipelineCacheData",
Mike Stroyanb050c682015-04-17 12:36:38 -0600532 [Param("VkDevice", "device"),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600533 Param("VkPipelineCache", "pipelineCache"),
Chia-I Wub16facd2015-10-26 19:17:06 +0800534 Param("size_t*", "pDataSize"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600535 Param("void*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800536
Jon Ashburnc669cc62015-07-09 15:02:25 -0600537 Proto("VkResult", "MergePipelineCaches",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600538 [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"),
541 Param("const VkPipelineCache*", "pSrcCaches")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800542
Jon Ashburnc669cc62015-07-09 15:02:25 -0600543 Proto("VkResult", "CreateGraphicsPipelines",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600544 [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"),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600547 Param("const VkGraphicsPipelineCreateInfo*", "pCreateInfos"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800548 Param("const VkAllocationCallbacks*", "pAllocator"),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600549 Param("VkPipeline*", "pPipelines")]),
550
551 Proto("VkResult", "CreateComputePipelines",
552 [Param("VkDevice", "device"),
553 Param("VkPipelineCache", "pipelineCache"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800554 Param("uint32_t", "createInfoCount"),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600555 Param("const VkComputePipelineCreateInfo*", "pCreateInfos"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800556 Param("const VkAllocationCallbacks*", "pAllocator"),
Jon Ashburnc669cc62015-07-09 15:02:25 -0600557 Param("VkPipeline*", "pPipelines")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800558
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600559 Proto("void", "DestroyPipeline",
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600560 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800561 Param("VkPipeline", "pipeline"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800562 Param("const VkAllocationCallbacks*", "pAllocator")]),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600563
Mark Lobodzinski0fadf5f2015-04-17 14:11:39 -0500564 Proto("VkResult", "CreatePipelineLayout",
565 [Param("VkDevice", "device"),
566 Param("const VkPipelineLayoutCreateInfo*", "pCreateInfo"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800567 Param("const VkAllocationCallbacks*", "pAllocator"),
Mark Lobodzinski0fadf5f2015-04-17 14:11:39 -0500568 Param("VkPipelineLayout*", "pPipelineLayout")]),
569
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600570 Proto("void", "DestroyPipelineLayout",
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600571 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800572 Param("VkPipelineLayout", "pipelineLayout"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800573 Param("const VkAllocationCallbacks*", "pAllocator")]),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600574
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600575 Proto("VkResult", "CreateSampler",
576 [Param("VkDevice", "device"),
577 Param("const VkSamplerCreateInfo*", "pCreateInfo"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800578 Param("const VkAllocationCallbacks*", "pAllocator"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600579 Param("VkSampler*", "pSampler")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800580
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600581 Proto("void", "DestroySampler",
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600582 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800583 Param("VkSampler", "sampler"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800584 Param("const VkAllocationCallbacks*", "pAllocator")]),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600585
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600586 Proto("VkResult", "CreateDescriptorSetLayout",
587 [Param("VkDevice", "device"),
588 Param("const VkDescriptorSetLayoutCreateInfo*", "pCreateInfo"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800589 Param("const VkAllocationCallbacks*", "pAllocator"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600590 Param("VkDescriptorSetLayout*", "pSetLayout")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800591
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600592 Proto("void", "DestroyDescriptorSetLayout",
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600593 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800594 Param("VkDescriptorSetLayout", "descriptorSetLayout"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800595 Param("const VkAllocationCallbacks*", "pAllocator")]),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600596
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600597 Proto("VkResult", "CreateDescriptorPool",
598 [Param("VkDevice", "device"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600599 Param("const VkDescriptorPoolCreateInfo*", "pCreateInfo"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800600 Param("const VkAllocationCallbacks*", "pAllocator"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600601 Param("VkDescriptorPool*", "pDescriptorPool")]),
Chia-I Wu11078b02015-01-04 16:27:24 +0800602
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600603 Proto("void", "DestroyDescriptorPool",
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600604 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800605 Param("VkDescriptorPool", "descriptorPool"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800606 Param("const VkAllocationCallbacks*", "pAllocator")]),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600607
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600608 Proto("VkResult", "ResetDescriptorPool",
Mike Stroyanb050c682015-04-17 12:36:38 -0600609 [Param("VkDevice", "device"),
Courtney Goeltzenleuchterbee18a92015-10-23 14:21:05 -0600610 Param("VkDescriptorPool", "descriptorPool"),
611 Param("VkDescriptorPoolResetFlags", "flags")]),
Chia-I Wu11078b02015-01-04 16:27:24 +0800612
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800613 Proto("VkResult", "AllocateDescriptorSets",
Mike Stroyanb050c682015-04-17 12:36:38 -0600614 [Param("VkDevice", "device"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800615 Param("const VkDescriptorSetAllocateInfo*", "pAllocateInfo"),
Cody Northrop1e4f8022015-08-03 12:47:29 -0600616 Param("VkDescriptorSet*", "pDescriptorSets")]),
Chia-I Wu11078b02015-01-04 16:27:24 +0800617
Tony Barbour34ec6922015-07-10 10:50:45 -0600618 Proto("VkResult", "FreeDescriptorSets",
619 [Param("VkDevice", "device"),
620 Param("VkDescriptorPool", "descriptorPool"),
Chia-I Wud50a7d72015-10-26 20:48:51 +0800621 Param("uint32_t", "descriptorSetCount"),
Tony Barbour34ec6922015-07-10 10:50:45 -0600622 Param("const VkDescriptorSet*", "pDescriptorSets")]),
623
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600624 Proto("void", "UpdateDescriptorSets",
Mike Stroyanb050c682015-04-17 12:36:38 -0600625 [Param("VkDevice", "device"),
Chia-I Wu40cf0ae2015-10-26 17:20:32 +0800626 Param("uint32_t", "descriptorWriteCount"),
Chia-I Wu9d00ed72015-05-25 16:27:55 +0800627 Param("const VkWriteDescriptorSet*", "pDescriptorWrites"),
Chia-I Wu40cf0ae2015-10-26 17:20:32 +0800628 Param("uint32_t", "descriptorCopyCount"),
Chia-I Wu9d00ed72015-05-25 16:27:55 +0800629 Param("const VkCopyDescriptorSet*", "pDescriptorCopies")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800630
Chia-I Wuce805cb2015-10-26 18:50:46 +0800631 Proto("VkResult", "CreateFramebuffer",
632 [Param("VkDevice", "device"),
633 Param("const VkFramebufferCreateInfo*", "pCreateInfo"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800634 Param("const VkAllocationCallbacks*", "pAllocator"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800635 Param("VkFramebuffer*", "pFramebuffer")]),
636
637 Proto("void", "DestroyFramebuffer",
638 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800639 Param("VkFramebuffer", "framebuffer"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800640 Param("const VkAllocationCallbacks*", "pAllocator")]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800641
642 Proto("VkResult", "CreateRenderPass",
643 [Param("VkDevice", "device"),
644 Param("const VkRenderPassCreateInfo*", "pCreateInfo"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800645 Param("const VkAllocationCallbacks*", "pAllocator"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800646 Param("VkRenderPass*", "pRenderPass")]),
647
648 Proto("void", "DestroyRenderPass",
649 [Param("VkDevice", "device"),
Chia-I Wuf7458c52015-10-26 21:10:41 +0800650 Param("VkRenderPass", "renderPass"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800651 Param("const VkAllocationCallbacks*", "pAllocator")]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800652
653 Proto("void", "GetRenderAreaGranularity",
654 [Param("VkDevice", "device"),
655 Param("VkRenderPass", "renderPass"),
656 Param("VkExtent2D*", "pGranularity")]),
657
Cody Northrope62183e2015-07-09 18:08:05 -0600658 Proto("VkResult", "CreateCommandPool",
659 [Param("VkDevice", "device"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800660 Param("const VkCommandPoolCreateInfo*", "pCreateInfo"),
661 Param("const VkAllocationCallbacks*", "pAllocator"),
662 Param("VkCommandPool*", "pCommandPool")]),
Cody Northrope62183e2015-07-09 18:08:05 -0600663
Mark Lobodzinski2141f652015-09-07 13:59:43 -0600664 Proto("void", "DestroyCommandPool",
Cody Northrope62183e2015-07-09 18:08:05 -0600665 [Param("VkDevice", "device"),
Chia-I Wuaed8ca92015-10-27 18:59:16 +0800666 Param("VkCommandPool", "commandPool"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800667 Param("const VkAllocationCallbacks*", "pAllocator")]),
Cody Northrope62183e2015-07-09 18:08:05 -0600668
669 Proto("VkResult", "ResetCommandPool",
670 [Param("VkDevice", "device"),
Chia-I Wuaed8ca92015-10-27 18:59:16 +0800671 Param("VkCommandPool", "commandPool"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800672 Param("VkCommandPoolResetFlags", "flags")]),
Cody Northrope62183e2015-07-09 18:08:05 -0600673
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800674 Proto("VkResult", "AllocateCommandBuffers",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600675 [Param("VkDevice", "device"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800676 Param("const VkCommandBufferAllocateInfo*", "pAllocateInfo"),
677 Param("VkCommandBuffer*", "pCommandBuffers")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800678
Courtney Goeltzenleuchterbee18a92015-10-23 14:21:05 -0600679 Proto("void", "FreeCommandBuffers",
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600680 [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"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800683 Param("const VkCommandBuffer*", "pCommandBuffers")]),
Tony Barbour1d2cd3f2015-07-03 10:33:54 -0600684
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600685 Proto("VkResult", "BeginCommandBuffer",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800686 [Param("VkCommandBuffer", "commandBuffer"),
687 Param("const VkCommandBufferBeginInfo*", "pBeginInfo")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800688
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600689 Proto("VkResult", "EndCommandBuffer",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800690 [Param("VkCommandBuffer", "commandBuffer")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800691
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600692 Proto("VkResult", "ResetCommandBuffer",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800693 [Param("VkCommandBuffer", "commandBuffer"),
694 Param("VkCommandBufferResetFlags", "flags")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800695
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600696 Proto("void", "CmdBindPipeline",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800697 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600698 Param("VkPipelineBindPoint", "pipelineBindPoint"),
699 Param("VkPipeline", "pipeline")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800700
Chia-I Wuce805cb2015-10-26 18:50:46 +0800701 Proto("void", "CmdSetViewport",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800702 [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"),
705 Param("const VkViewport*", "pViewports")]),
706
707 Proto("void", "CmdSetScissor",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800708 [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"),
711 Param("const VkRect2D*", "pScissors")]),
712
713 Proto("void", "CmdSetLineWidth",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800714 [Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800715 Param("float", "lineWidth")]),
716
717 Proto("void", "CmdSetDepthBias",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800718 [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"),
Chia-I Wud8c946a2015-10-26 19:08:09 +0800721 Param("float", "depthBiasSlopeFactor")]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800722
723 Proto("void", "CmdSetBlendConstants",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800724 [Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wu2bfb33c2015-10-26 17:24:52 +0800725 Param("const float[4]", "blendConstants")]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800726
727 Proto("void", "CmdSetDepthBounds",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800728 [Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800729 Param("float", "minDepthBounds"),
730 Param("float", "maxDepthBounds")]),
731
732 Proto("void", "CmdSetStencilCompareMask",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800733 [Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800734 Param("VkStencilFaceFlags", "faceMask"),
Chia-I Wu1b99bb22015-10-27 19:25:11 +0800735 Param("uint32_t", "compareMask")]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800736
737 Proto("void", "CmdSetStencilWriteMask",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800738 [Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800739 Param("VkStencilFaceFlags", "faceMask"),
Chia-I Wu1b99bb22015-10-27 19:25:11 +0800740 Param("uint32_t", "writeMask")]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800741
742 Proto("void", "CmdSetStencilReference",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800743 [Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800744 Param("VkStencilFaceFlags", "faceMask"),
Chia-I Wu1b99bb22015-10-27 19:25:11 +0800745 Param("uint32_t", "reference")]),
Chia-I Wuce805cb2015-10-26 18:50:46 +0800746
Chia-I Wu53f07d72015-03-28 15:23:55 +0800747 Proto("void", "CmdBindDescriptorSets",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800748 [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"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600753 Param("const VkDescriptorSet*", "pDescriptorSets"),
Cody Northropd4c1a502015-04-16 13:41:56 -0600754 Param("uint32_t", "dynamicOffsetCount"),
755 Param("const uint32_t*", "pDynamicOffsets")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800756
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600757 Proto("void", "CmdBindIndexBuffer",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800758 [Param("VkCommandBuffer", "commandBuffer"),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600759 Param("VkBuffer", "buffer"),
760 Param("VkDeviceSize", "offset"),
761 Param("VkIndexType", "indexType")]),
762
Courtney Goeltzenleuchterf68ad722015-04-16 13:38:46 -0600763 Proto("void", "CmdBindVertexBuffers",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800764 [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"),
767 Param("const VkBuffer*", "pBuffers"),
Tony Barbourd1c35722015-04-16 15:59:00 -0600768 Param("const VkDeviceSize*", "pOffsets")]),
769
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600770 Proto("void", "CmdDraw",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800771 [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"),
775 Param("uint32_t", "firstInstance")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800776
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600777 Proto("void", "CmdDrawIndexed",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800778 [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"),
Courtney Goeltzenleuchter08c26372015-09-23 12:31:50 -0600783 Param("uint32_t", "firstInstance")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800784
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600785 Proto("void", "CmdDrawIndirect",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800786 [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 Lobodzinski17caf572015-01-29 08:55:56 -0600790 Param("uint32_t", "stride")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800791
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600792 Proto("void", "CmdDrawIndexedIndirect",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800793 [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 Lobodzinski17caf572015-01-29 08:55:56 -0600797 Param("uint32_t", "stride")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800798
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600799 Proto("void", "CmdDispatch",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800800 [Param("VkCommandBuffer", "commandBuffer"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600801 Param("uint32_t", "x"),
802 Param("uint32_t", "y"),
803 Param("uint32_t", "z")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800804
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600805 Proto("void", "CmdDispatchIndirect",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800806 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600807 Param("VkBuffer", "buffer"),
Tony Barbourd1c35722015-04-16 15:59:00 -0600808 Param("VkDeviceSize", "offset")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800809
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600810 Proto("void", "CmdCopyBuffer",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800811 [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"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600815 Param("const VkBufferCopy*", "pRegions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800816
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600817 Proto("void", "CmdCopyImage",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800818 [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"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600824 Param("const VkImageCopy*", "pRegions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800825
Courtney Goeltzenleuchter89299fa2015-03-08 17:02:18 -0600826 Proto("void", "CmdBlitImage",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800827 [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 Lobodzinskiee5eef12015-05-22 14:43:25 -0500833 Param("const VkImageBlit*", "pRegions"),
Chia-I Wub99df442015-10-26 16:49:32 +0800834 Param("VkFilter", "filter")]),
Courtney Goeltzenleuchter89299fa2015-03-08 17:02:18 -0600835
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600836 Proto("void", "CmdCopyBufferToImage",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800837 [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"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600842 Param("const VkBufferImageCopy*", "pRegions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800843
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600844 Proto("void", "CmdCopyImageToBuffer",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800845 [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"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600850 Param("const VkBufferImageCopy*", "pRegions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800851
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600852 Proto("void", "CmdUpdateBuffer",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800853 [Param("VkCommandBuffer", "commandBuffer"),
854 Param("VkBuffer", "dstBuffer"),
855 Param("VkDeviceSize", "dstOffset"),
Tony Barbourd1c35722015-04-16 15:59:00 -0600856 Param("VkDeviceSize", "dataSize"),
Karl Schultzee344492016-07-11 15:09:57 -0600857 Param("const void*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800858
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600859 Proto("void", "CmdFillBuffer",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800860 [Param("VkCommandBuffer", "commandBuffer"),
861 Param("VkBuffer", "dstBuffer"),
862 Param("VkDeviceSize", "dstOffset"),
Chia-I Wu2bfb33c2015-10-26 17:24:52 +0800863 Param("VkDeviceSize", "size"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600864 Param("uint32_t", "data")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800865
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600866 Proto("void", "CmdClearColorImage",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800867 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600868 Param("VkImage", "image"),
869 Param("VkImageLayout", "imageLayout"),
Chris Forbesf0796e12015-06-24 14:34:53 +1200870 Param("const VkClearColorValue*", "pColor"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600871 Param("uint32_t", "rangeCount"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600872 Param("const VkImageSubresourceRange*", "pRanges")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800873
Chris Forbesd9be82b2015-06-22 17:21:59 +1200874 Proto("void", "CmdClearDepthStencilImage",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800875 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600876 Param("VkImage", "image"),
877 Param("VkImageLayout", "imageLayout"),
Courtney Goeltzenleuchter45df9e12015-09-15 18:03:22 -0600878 Param("const VkClearDepthStencilValue*", "pDepthStencil"),
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600879 Param("uint32_t", "rangeCount"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600880 Param("const VkImageSubresourceRange*", "pRanges")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800881
Courtney Goeltzenleuchterc9323e02015-10-15 16:51:05 -0600882 Proto("void", "CmdClearAttachments",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800883 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterc9323e02015-10-15 16:51:05 -0600884 Param("uint32_t", "attachmentCount"),
885 Param("const VkClearAttachment*", "pAttachments"),
Chris Forbesd9be82b2015-06-22 17:21:59 +1200886 Param("uint32_t", "rectCount"),
Courtney Goeltzenleuchter4ca43f62015-10-15 18:22:08 -0600887 Param("const VkClearRect*", "pRects")]),
Chris Forbesd9be82b2015-06-22 17:21:59 +1200888
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600889 Proto("void", "CmdResolveImage",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800890 [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"),
896 Param("const VkImageResolve*", "pRegions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800897
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600898 Proto("void", "CmdSetEvent",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800899 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600900 Param("VkEvent", "event"),
Tony Barbour0b2cfb22015-06-29 16:20:35 -0600901 Param("VkPipelineStageFlags", "stageMask")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800902
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600903 Proto("void", "CmdResetEvent",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800904 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600905 Param("VkEvent", "event"),
Tony Barbour0b2cfb22015-06-29 16:20:35 -0600906 Param("VkPipelineStageFlags", "stageMask")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800907
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600908 Proto("void", "CmdWaitEvents",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800909 [Param("VkCommandBuffer", "commandBuffer"),
Tony Barbourd1c35722015-04-16 15:59:00 -0600910 Param("uint32_t", "eventCount"),
911 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"),
Jon Ashburnf19916e2016-01-11 13:12:43 -0700915 Param("const VkMemoryBarrier*", "pMemoryBarriers"),
916 Param("uint32_t", "bufferMemoryBarrierCount"),
917 Param("const VkBufferMemoryBarrier*", "pBufferMemoryBarriers"),
918 Param("uint32_t", "imageMemoryBarrierCount"),
919 Param("const VkImageMemoryBarrier*", "pImageMemoryBarriers")]),
Mike Stroyanfb80d5f2014-12-04 11:08:39 +0000920
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600921 Proto("void", "CmdPipelineBarrier",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800922 [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"),
Jon Ashburnf19916e2016-01-11 13:12:43 -0700927 Param("const VkMemoryBarrier*", "pMemoryBarriers"),
928 Param("uint32_t", "bufferMemoryBarrierCount"),
929 Param("const VkBufferMemoryBarrier*", "pBufferMemoryBarriers"),
930 Param("uint32_t", "imageMemoryBarrierCount"),
931 Param("const VkImageMemoryBarrier*", "pImageMemoryBarriers")]),
Mike Stroyanfb80d5f2014-12-04 11:08:39 +0000932
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600933 Proto("void", "CmdBeginQuery",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800934 [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"),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600937 Param("VkQueryControlFlags", "flags")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800938
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600939 Proto("void", "CmdEndQuery",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800940 [Param("VkCommandBuffer", "commandBuffer"),
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600941 Param("VkQueryPool", "queryPool"),
Jon Ashburnf19916e2016-01-11 13:12:43 -0700942 Param("uint32_t", "query")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800943
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600944 Proto("void", "CmdResetQueryPool",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800945 [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 Lobodzinski17caf572015-01-29 08:55:56 -0600948 Param("uint32_t", "queryCount")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800949
Mark Lobodzinski17caf572015-01-29 08:55:56 -0600950 Proto("void", "CmdWriteTimestamp",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800951 [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"),
Jon Ashburnf19916e2016-01-11 13:12:43 -0700954 Param("uint32_t", "query")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800955
Courtney Goeltzenleuchter1dbc8e22015-04-15 18:21:13 -0600956 Proto("void", "CmdCopyQueryPoolResults",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800957 [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"),
Tobin Ehlisa30e7e52015-07-06 14:02:36 -0600964 Param("VkQueryResultFlags", "flags")]),
Courtney Goeltzenleuchter1dbc8e22015-04-15 18:21:13 -0600965
Chia-I Wuce805cb2015-10-26 18:50:46 +0800966 Proto("void", "CmdPushConstants",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800967 [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"),
Chia-I Wuce9b1772015-11-12 06:09:22 +0800972 Param("const void*", "pValues")]),
Courtney Goeltzenleuchtera97e2ea2015-07-27 13:47:08 -0600973
Jon Ashburne13f1982015-02-02 09:58:11 -0700974 Proto("void", "CmdBeginRenderPass",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800975 [Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wu08accc62015-07-07 11:50:03 +0800976 Param("const VkRenderPassBeginInfo*", "pRenderPassBegin"),
Chia-I Wu1b99bb22015-10-27 19:25:11 +0800977 Param("VkSubpassContents", "contents")]),
Chia-I Wu08accc62015-07-07 11:50:03 +0800978
979 Proto("void", "CmdNextSubpass",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800980 [Param("VkCommandBuffer", "commandBuffer"),
Chia-I Wu1b99bb22015-10-27 19:25:11 +0800981 Param("VkSubpassContents", "contents")]),
Jon Ashburne13f1982015-02-02 09:58:11 -0700982
983 Proto("void", "CmdEndRenderPass",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800984 [Param("VkCommandBuffer", "commandBuffer")]),
Chia-I Wu0b50a1c2015-06-26 15:34:39 +0800985
986 Proto("void", "CmdExecuteCommands",
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800987 [Param("VkCommandBuffer", "commandBuffer"),
Jon Ashburnf19916e2016-01-11 13:12:43 -0700988 Param("uint32_t", "commandBufferCount"),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800989 Param("const VkCommandBuffer*", "pCommandBuffers")]),
Chia-I Wue442dc32015-01-01 09:31:15 +0800990 ],
Chia-I Wufb2559d2014-08-01 11:19:52 +0800991)
992
Mark Lobodzinskid8de64c2016-09-29 15:35:07 -0600993ext_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",
999 [Param("VkCommandBuffer", "commandBuffer"),
1000 Param("VkBuffer", "buffer"),
1001 Param("VkDeviceSize", "offset"),
1002 Param("VkBuffer", "countBuffer"),
1003 Param("VkDeviceSize", "countBufferOffset"),
1004 Param("uint32_t", "maxDrawCount"),
1005 Param("uint32_t", "stride")]),
1006
1007 Proto("void", "CmdDrawIndexedIndirectCountAMD",
1008 [Param("VkCommandBuffer", "commandBuffer"),
1009 Param("VkBuffer", "buffer"),
1010 Param("VkDeviceSize", "offset"),
1011 Param("VkBuffer", "countBuffer"),
1012 Param("VkDeviceSize", "countBufferOffset"),
1013 Param("uint32_t", "maxDrawCount"),
1014 Param("uint32_t", "stride")]),
1015 ],
1016)
1017
1018ext_nv_external_memory_capabilities = Extension(
1019 name="VK_NV_external_memory_capabilities",
1020 headers=["vulkan/vulkan.h"],
1021 objects=[],
1022 protos=[
1023 Proto("VkResult", "GetPhysicalDeviceExternalImageFormatPropertiesNV",
1024 [Param("VkPhysicalDevice", "physicalDevice"),
1025 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 Lobodzinski4c57a732016-08-29 11:56:02 -06001031 Param("VkExternalImageFormatPropertiesNV*", "pExternalImageFormatProperties")]),
1032 ],
1033)
1034
1035ext_nv_external_memory_win32 = Extension(
1036 name="VK_NV_external_memory_win32",
1037 headers=["vulkan/vulkan.h"],
1038 objects=[],
1039 ifdef="VK_USE_PLATFORM_WIN32_KHR",
1040 protos=[
1041 Proto("VkResult", "GetMemoryWin32HandleNV",
1042 [Param("VkDevice", "device"),
1043 Param("VkDeviceMemory", "memory"),
1044 Param("VkExternalMemoryHandleTypeFlagsNV", "handleType"),
1045 Param("HANDLE*", "pHandle")]),
1046 ],
1047)
1048
Jon Ashburn9380b672015-11-23 18:23:29 -07001049ext_khr_surface = Extension(
Ian Elliottf3284702015-10-29 16:35:06 -06001050 name="VK_KHR_surface",
1051 headers=["vulkan/vulkan.h"],
Jon Ashburn9380b672015-11-23 18:23:29 -07001052 objects=["vkSurfaceKHR"],
Chia-I Wue442dc32015-01-01 09:31:15 +08001053 protos=[
Jon Ashburn9380b672015-11-23 18:23:29 -07001054 Proto("void", "DestroySurfaceKHR",
1055 [Param("VkInstance", "instance"),
1056 Param("VkSurfaceKHR", "surface"),
1057 Param("const VkAllocationCallbacks*", "pAllocator")]),
1058
Ian Elliott7e40db92015-08-21 15:09:33 -06001059 Proto("VkResult", "GetPhysicalDeviceSurfaceSupportKHR",
Ian Elliott1064fe32015-07-06 14:31:32 -06001060 [Param("VkPhysicalDevice", "physicalDevice"),
Jon Ashburnea65e492015-08-06 17:27:49 -06001061 Param("uint32_t", "queueFamilyIndex"),
Ian Elliottf3284702015-10-29 16:35:06 -06001062 Param("VkSurfaceKHR", "surface"),
Ian Elliott1064fe32015-07-06 14:31:32 -06001063 Param("VkBool32*", "pSupported")]),
Ian Elliottf3284702015-10-29 16:35:06 -06001064
1065 Proto("VkResult", "GetPhysicalDeviceSurfaceCapabilitiesKHR",
1066 [Param("VkPhysicalDevice", "physicalDevice"),
Mark Lobodzinski0e393752016-05-04 09:19:54 -06001067 Param("VkSurfaceKHR", "surface"),
Ian Elliottf3284702015-10-29 16:35:06 -06001068 Param("VkSurfaceCapabilitiesKHR*", "pSurfaceCapabilities")]),
1069
1070 Proto("VkResult", "GetPhysicalDeviceSurfaceFormatsKHR",
1071 [Param("VkPhysicalDevice", "physicalDevice"),
Mark Lobodzinski0e393752016-05-04 09:19:54 -06001072 Param("VkSurfaceKHR", "surface"),
1073 Param("uint32_t*", "pSurfaceFormatCount"),
Ian Elliottf3284702015-10-29 16:35:06 -06001074 Param("VkSurfaceFormatKHR*", "pSurfaceFormats")]),
1075
1076 Proto("VkResult", "GetPhysicalDeviceSurfacePresentModesKHR",
1077 [Param("VkPhysicalDevice", "physicalDevice"),
Mark Lobodzinski0e393752016-05-04 09:19:54 -06001078 Param("VkSurfaceKHR", "surface"),
1079 Param("uint32_t*", "pPresentModeCount"),
Ian Elliottf3284702015-10-29 16:35:06 -06001080 Param("VkPresentModeKHR*", "pPresentModes")]),
Ian Elliott1064fe32015-07-06 14:31:32 -06001081 ],
1082)
1083
Petros Bantolas2b40be72016-04-15 11:02:59 +01001084ext_khr_display = Extension(
1085 name="VK_KHR_display",
1086 headers=["vulkan/vulkan.h"],
1087 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 ],
1130)
1131
Ian Elliott7e40db92015-08-21 15:09:33 -06001132ext_khr_device_swapchain = Extension(
Ian Elliottf3284702015-10-29 16:35:06 -06001133 name="VK_KHR_swapchain",
1134 headers=["vulkan/vulkan.h"],
Ian Elliott7e40db92015-08-21 15:09:33 -06001135 objects=["VkSwapchainKHR"],
Ian Elliott1064fe32015-07-06 14:31:32 -06001136 protos=[
Ian Elliott7e40db92015-08-21 15:09:33 -06001137 Proto("VkResult", "CreateSwapchainKHR",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06001138 [Param("VkDevice", "device"),
Ian Elliott7e40db92015-08-21 15:09:33 -06001139 Param("const VkSwapchainCreateInfoKHR*", "pCreateInfo"),
Ian Elliott05846062015-11-20 14:13:17 -07001140 Param("const VkAllocationCallbacks*", "pAllocator"),
Ian Elliott7e40db92015-08-21 15:09:33 -06001141 Param("VkSwapchainKHR*", "pSwapchain")]),
Chia-I Wu6dee8b82014-09-23 10:37:23 +08001142
Ian Elliottf3284702015-10-29 16:35:06 -06001143 Proto("void", "DestroySwapchainKHR",
Ian Elliott1064fe32015-07-06 14:31:32 -06001144 [Param("VkDevice", "device"),
Ian Elliott05846062015-11-20 14:13:17 -07001145 Param("VkSwapchainKHR", "swapchain"),
1146 Param("const VkAllocationCallbacks*", "pAllocator")]),
Chia-I Wu6dee8b82014-09-23 10:37:23 +08001147
Ian Elliott7e40db92015-08-21 15:09:33 -06001148 Proto("VkResult", "GetSwapchainImagesKHR",
Ian Elliott1064fe32015-07-06 14:31:32 -06001149 [Param("VkDevice", "device"),
Mark Lobodzinski0e393752016-05-04 09:19:54 -06001150 Param("VkSwapchainKHR", "swapchain"),
1151 Param("uint32_t*", "pSwapchainImageCount"),
Ian Elliott7e40db92015-08-21 15:09:33 -06001152 Param("VkImage*", "pSwapchainImages")]),
Chia-I Wuf8693382015-04-16 22:02:10 +08001153
Ian Elliott7e40db92015-08-21 15:09:33 -06001154 Proto("VkResult", "AcquireNextImageKHR",
Ian Elliott1064fe32015-07-06 14:31:32 -06001155 [Param("VkDevice", "device"),
Ian Elliott7e40db92015-08-21 15:09:33 -06001156 Param("VkSwapchainKHR", "swapchain"),
Ian Elliott1064fe32015-07-06 14:31:32 -06001157 Param("uint64_t", "timeout"),
1158 Param("VkSemaphore", "semaphore"),
Ian Elliott05846062015-11-20 14:13:17 -07001159 Param("VkFence", "fence"),
Ian Elliott1064fe32015-07-06 14:31:32 -06001160 Param("uint32_t*", "pImageIndex")]),
1161
Ian Elliott7e40db92015-08-21 15:09:33 -06001162 Proto("VkResult", "QueuePresentKHR",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06001163 [Param("VkQueue", "queue"),
Ian Elliott05846062015-11-20 14:13:17 -07001164 Param("const VkPresentInfoKHR*", "pPresentInfo")]),
Chia-I Wue442dc32015-01-01 09:31:15 +08001165 ],
Chia-I Wu6dee8b82014-09-23 10:37:23 +08001166)
Mark Lobodzinski3077be02015-11-24 14:03:18 -07001167
Mark Young1a867442016-07-01 15:18:27 -06001168ext_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
Mark Lobodzinski3077be02015-11-24 14:03:18 -07001182ext_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"),
Ian Elliottf6b168c2015-12-11 15:03:05 -07001189 Param("const VkXcbSurfaceCreateInfoKHR*", "pCreateInfo"),
Mark Lobodzinski3077be02015-11-24 14:03:18 -07001190 Param("const VkAllocationCallbacks*", "pAllocator"),
1191 Param("VkSurfaceKHR*", "pSurface")]),
1192
1193 Proto("VkBool32", "GetPhysicalDeviceXcbPresentationSupportKHR",
Mark Lobodzinskie86e1382015-11-24 15:50:44 -07001194 [Param("VkPhysicalDevice", "physicalDevice"),
1195 Param("uint32_t", "queueFamilyIndex"),
1196 Param("xcb_connection_t*", "connection"),
1197 Param("xcb_visualid_t", "visual_id")]),
Mark Lobodzinski3077be02015-11-24 14:03:18 -07001198 ],
1199)
Mun, Gwan-gyeongbd4dd592016-02-22 09:43:09 +09001200ext_khr_xlib_surface = Extension(
1201 name="VK_KHR_xlib_surface",
1202 headers=["vulkan/vulkan.h"],
1203 objects=[],
David Hubbardbb623952016-08-19 13:30:06 -06001204 ifdef="VK_USE_PLATFORM_XLIB_KHR",
Mun, Gwan-gyeongbd4dd592016-02-22 09:43:09 +09001205 protos=[
1206 Proto("VkResult", "CreateXlibSurfaceKHR",
1207 [Param("VkInstance", "instance"),
1208 Param("const VkXlibSurfaceCreateInfoKHR*", "pCreateInfo"),
1209 Param("const VkAllocationCallbacks*", "pAllocator"),
1210 Param("VkSurfaceKHR*", "pSurface")]),
1211
1212 Proto("VkBool32", "GetPhysicalDeviceXlibPresentationSupportKHR",
1213 [Param("VkPhysicalDevice", "physicalDevice"),
1214 Param("uint32_t", "queueFamilyIndex"),
1215 Param("Display*", "dpy"),
1216 Param("VisualID", "visualID")]),
1217 ],
1218)
1219ext_khr_wayland_surface = Extension(
1220 name="VK_KHR_wayland_surface",
1221 headers=["vulkan/vulkan.h"],
1222 objects=[],
1223 protos=[
1224 Proto("VkResult", "CreateWaylandSurfaceKHR",
1225 [Param("VkInstance", "instance"),
1226 Param("const VkWaylandSurfaceCreateInfoKHR*", "pCreateInfo"),
1227 Param("const VkAllocationCallbacks*", "pAllocator"),
1228 Param("VkSurfaceKHR*", "pSurface")]),
1229
1230 Proto("VkBool32", "GetPhysicalDeviceWaylandPresentationSupportKHR",
1231 [Param("VkPhysicalDevice", "physicalDevice"),
1232 Param("uint32_t", "queueFamilyIndex"),
1233 Param("struct wl_display*", "display")]),
1234 ],
1235)
1236ext_khr_mir_surface = Extension(
1237 name="VK_KHR_mir_surface",
1238 headers=["vulkan/vulkan.h"],
1239 objects=[],
1240 protos=[
1241 Proto("VkResult", "CreateMirSurfaceKHR",
1242 [Param("VkInstance", "instance"),
1243 Param("const VkMirSurfaceCreateInfoKHR*", "pCreateInfo"),
1244 Param("const VkAllocationCallbacks*", "pAllocator"),
1245 Param("VkSurfaceKHR*", "pSurface")]),
1246
1247 Proto("VkBool32", "GetPhysicalDeviceMirPresentationSupportKHR",
1248 [Param("VkPhysicalDevice", "physicalDevice"),
1249 Param("uint32_t", "queueFamilyIndex"),
1250 Param("MirConnection*", "connection")]),
1251 ],
1252)
Courtney Goeltzenleuchter5a0f2832016-02-11 11:44:04 -07001253ext_khr_android_surface = Extension(
1254 name="VK_KHR_android_surface",
1255 headers=["vulkan/vulkan.h"],
1256 objects=[],
1257 protos=[
1258 Proto("VkResult", "CreateAndroidSurfaceKHR",
1259 [Param("VkInstance", "instance"),
1260 Param("const VkAndroidSurfaceCreateInfoKHR*", "pCreateInfo"),
1261 Param("const VkAllocationCallbacks*", "pAllocator"),
1262 Param("VkSurfaceKHR*", "pSurface")]),
1263 ],
1264)
Mark Lobodzinski3077be02015-11-24 14:03:18 -07001265ext_khr_win32_surface = Extension(
1266 name="VK_KHR_win32_surface",
1267 headers=["vulkan/vulkan.h"],
1268 objects=[],
1269 protos=[
1270 Proto("VkResult", "CreateWin32SurfaceKHR",
1271 [Param("VkInstance", "instance"),
Ian Elliottf6b168c2015-12-11 15:03:05 -07001272 Param("const VkWin32SurfaceCreateInfoKHR*", "pCreateInfo"),
Mark Lobodzinski3077be02015-11-24 14:03:18 -07001273 Param("const VkAllocationCallbacks*", "pAllocator"),
1274 Param("VkSurfaceKHR*", "pSurface")]),
1275
1276 Proto("VkBool32", "GetPhysicalDeviceWin32PresentationSupportKHR",
Mark Lobodzinskie86e1382015-11-24 15:50:44 -07001277 [Param("VkPhysicalDevice", "physicalDevice"),
1278 Param("uint32_t", "queueFamilyIndex")]),
Mark Lobodzinski3077be02015-11-24 14:03:18 -07001279 ],
1280)
Mark Young1a867442016-07-01 15:18:27 -06001281ext_debug_report = Extension(
Courtney Goeltzenleuchter7415d5a2015-12-09 15:48:16 -07001282 name="VK_EXT_debug_report",
Mark Lobodzinski510e20d2016-02-11 09:26:16 -07001283 headers=["vulkan/vulkan.h"],
Jon Ashburnea65e492015-08-06 17:27:49 -06001284 objects=[
Courtney Goeltzenleuchter7415d5a2015-12-09 15:48:16 -07001285 "VkDebugReportCallbackEXT",
Jon Ashburnea65e492015-08-06 17:27:49 -06001286 ],
1287 protos=[
Courtney Goeltzenleuchter7415d5a2015-12-09 15:48:16 -07001288 Proto("VkResult", "CreateDebugReportCallbackEXT",
Jon Ashburnea65e492015-08-06 17:27:49 -06001289 [Param("VkInstance", "instance"),
Courtney Goeltzenleuchter7415d5a2015-12-09 15:48:16 -07001290 Param("const VkDebugReportCallbackCreateInfoEXT*", "pCreateInfo"),
Courtney Goeltzenleuchter05854bf2015-11-30 12:13:14 -07001291 Param("const VkAllocationCallbacks*", "pAllocator"),
Courtney Goeltzenleuchter7415d5a2015-12-09 15:48:16 -07001292 Param("VkDebugReportCallbackEXT*", "pCallback")]),
Jon Ashburnea65e492015-08-06 17:27:49 -06001293
Courtney Goeltzenleuchter7415d5a2015-12-09 15:48:16 -07001294 Proto("void", "DestroyDebugReportCallbackEXT",
Jon Ashburnea65e492015-08-06 17:27:49 -06001295 [Param("VkInstance", "instance"),
Courtney Goeltzenleuchter7415d5a2015-12-09 15:48:16 -07001296 Param("VkDebugReportCallbackEXT", "callback"),
Courtney Goeltzenleuchter05854bf2015-11-30 12:13:14 -07001297 Param("const VkAllocationCallbacks*", "pAllocator")]),
Courtney Goeltzenleuchter822e8d72015-11-30 15:28:25 -07001298
Courtney Goeltzenleuchter7415d5a2015-12-09 15:48:16 -07001299 Proto("void", "DebugReportMessageEXT",
Courtney Goeltzenleuchter822e8d72015-11-30 15:28:25 -07001300 [Param("VkInstance", "instance"),
Courtney Goeltzenleuchter7415d5a2015-12-09 15:48:16 -07001301 Param("VkDebugReportFlagsEXT", "flags"),
1302 Param("VkDebugReportObjectTypeEXT", "objType"),
Courtney Goeltzenleuchter822e8d72015-11-30 15:28:25 -07001303 Param("uint64_t", "object"),
1304 Param("size_t", "location"),
1305 Param("int32_t", "msgCode"),
1306 Param("const char *", "pLayerPrefix"),
1307 Param("const char *", "pMsg")]),
Jon Ashburnea65e492015-08-06 17:27:49 -06001308 ],
1309)
Mark Young1a867442016-07-01 15:18:27 -06001310ext_debug_marker = Extension(
1311 name="VK_EXT_debug_marker",
1312 headers=["vulkan/vulkan.h"],
1313 objects=[
1314 "VkDebugMarkerObjectNameInfoEXT",
1315 "VkDebugMarkerObjectTagInfoEXT",
1316 "VkDebugMarkerMarkerInfoEXT"
1317 ],
1318 protos=[
1319 Proto("VkResult", "DebugMarkerSetObjectTagEXT",
1320 [Param("VkDevice", "device"),
1321 Param("VkDebugMarkerObjectTagInfoEXT*", "pTagInfo")]),
1322
1323 Proto("VkResult", "DebugMarkerSetObjectNameEXT",
1324 [Param("VkDevice", "device"),
1325 Param("VkDebugMarkerObjectNameInfoEXT*", "pNameInfo")]),
1326
1327 Proto("void", "CmdDebugMarkerBeginEXT",
1328 [Param("VkCommandBuffer", "commandBuffer"),
1329 Param("VkDebugMarkerMarkerInfoEXT*", "pMarkerInfo")]),
1330
1331 Proto("void", "CmdDebugMarkerEndEXT",
Arda Coskunses4e20c8e2016-09-07 23:41:07 -06001332 [Param("VkCommandBuffer", "commandBuffer")]),
Mark Young1a867442016-07-01 15:18:27 -06001333
1334 Proto("void", "CmdDebugMarkerInsertEXT",
1335 [Param("VkCommandBuffer", "commandBuffer"),
1336 Param("VkDebugMarkerMarkerInfoEXT*", "pMarkerInfo")]),
1337 ],
1338)
Mark Lobodzinskie86e1382015-11-24 15:50:44 -07001339
1340import sys
Mun, Gwan-gyeongbd4dd592016-02-22 09:43:09 +09001341
David Pinedo9848ed52016-07-21 10:56:27 -06001342if sys.argv[1] == 'AllPlatforms':
Mark Young1a867442016-07-01 15:18:27 -06001343 extensions = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_win32_surface, ext_khr_xcb_surface,
1344 ext_khr_xlib_surface, ext_khr_wayland_surface, ext_khr_mir_surface, ext_khr_display,
Mark Young35159af2016-09-07 08:50:32 -06001345 ext_khr_android_surface, ext_khr_display_swapchain]
Mark Young1a867442016-07-01 15:18:27 -06001346 extensions_all = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_win32_surface,
1347 ext_khr_xcb_surface, ext_khr_xlib_surface, ext_khr_wayland_surface, ext_khr_mir_surface,
Mark Lobodzinskid8de64c2016-09-29 15:35:07 -06001348 ext_khr_display, ext_khr_android_surface, ext_amd_draw_indirect_count,
Mark Young1a867442016-07-01 15:18:27 -06001349 ext_nv_external_memory_capabilities, ext_nv_external_memory_win32,
1350 ext_khr_display_swapchain, ext_debug_report, ext_debug_marker]
Mun, Gwan-gyeongbd4dd592016-02-22 09:43:09 +09001351else :
David Pinedo9848ed52016-07-21 10:56:27 -06001352 if len(sys.argv) > 3:
Mark Younge459d172016-09-06 14:45:06 -06001353 if (sys.platform.startswith('win32') or sys.platform.startswith('msys')) and sys.argv[1] != 'Android':
Mark Young1a867442016-07-01 15:18:27 -06001354 extensions = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_win32_surface,
Mark Young35159af2016-09-07 08:50:32 -06001355 ext_khr_display, ext_khr_display_swapchain]
Mark Young1a867442016-07-01 15:18:27 -06001356 extensions_all = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_win32_surface,
Mark Lobodzinskid8de64c2016-09-29 15:35:07 -06001357 ext_khr_display, ext_amd_draw_indirect_count,
Mark Young1a867442016-07-01 15:18:27 -06001358 ext_nv_external_memory_capabilities, ext_nv_external_memory_win32,
1359 ext_khr_display_swapchain, ext_debug_report, ext_debug_marker]
David Pinedo9848ed52016-07-21 10:56:27 -06001360 elif sys.platform.startswith('linux') and sys.argv[1] != 'Android':
Mark Young1a867442016-07-01 15:18:27 -06001361 extensions = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_xcb_surface,
1362 ext_khr_xlib_surface, ext_khr_wayland_surface, ext_khr_mir_surface, ext_khr_display,
Mark Young1a867442016-07-01 15:18:27 -06001363 ext_khr_display_swapchain]
1364 extensions_all = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_xcb_surface,
1365 ext_khr_xlib_surface, ext_khr_wayland_surface, ext_khr_mir_surface,
Mark Lobodzinskid8de64c2016-09-29 15:35:07 -06001366 ext_khr_display, ext_amd_draw_indirect_count,
Mark Young1a867442016-07-01 15:18:27 -06001367 ext_nv_external_memory_capabilities, ext_khr_display_swapchain,
1368 ext_debug_report, ext_debug_marker]
David Pinedo9848ed52016-07-21 10:56:27 -06001369 else: # android
Mark Young1a867442016-07-01 15:18:27 -06001370 extensions = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_android_surface,
Mark Young1a867442016-07-01 15:18:27 -06001371 ext_khr_display_swapchain]
1372 extensions_all = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_android_surface,
Mark Lobodzinskid8de64c2016-09-29 15:35:07 -06001373 ext_amd_draw_indirect_count, ext_nv_external_memory_capabilities,
Mark Young1a867442016-07-01 15:18:27 -06001374 ext_khr_display_swapchain, ext_debug_report, ext_debug_marker]
David Pinedo9848ed52016-07-21 10:56:27 -06001375 else :
Mark Younge459d172016-09-06 14:45:06 -06001376 if sys.argv[1] == 'Win32' or sys.argv[1] == 'msys':
Mark Young1a867442016-07-01 15:18:27 -06001377 extensions = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_win32_surface,
Mark Young35159af2016-09-07 08:50:32 -06001378 ext_khr_display, ext_khr_display_swapchain]
Mark Young1a867442016-07-01 15:18:27 -06001379 extensions_all = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_win32_surface,
Mark Lobodzinskid8de64c2016-09-29 15:35:07 -06001380 ext_khr_display, ext_amd_draw_indirect_count,
Mark Young1a867442016-07-01 15:18:27 -06001381 ext_nv_external_memory_capabilities, ext_nv_external_memory_win32,
1382 ext_khr_display_swapchain, ext_debug_report, ext_debug_marker]
David Pinedo9848ed52016-07-21 10:56:27 -06001383 elif sys.argv[1] == 'Android':
Mark Young1a867442016-07-01 15:18:27 -06001384 extensions = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_android_surface,
Mark Young1a867442016-07-01 15:18:27 -06001385 ext_khr_display_swapchain]
1386 extensions_all = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_android_surface,
Mark Lobodzinskid8de64c2016-09-29 15:35:07 -06001387 ext_amd_draw_indirect_count, ext_nv_external_memory_capabilities,
Mark Young1a867442016-07-01 15:18:27 -06001388 ext_khr_display_swapchain, ext_debug_report, ext_debug_marker]
David Pinedo9848ed52016-07-21 10:56:27 -06001389 elif sys.argv[1] == 'Xcb' or sys.argv[1] == 'Xlib' or sys.argv[1] == 'Wayland' or sys.argv[1] == 'Mir' or sys.argv[1] == 'Display':
Mark Young1a867442016-07-01 15:18:27 -06001390 extensions = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_xcb_surface,
1391 ext_khr_xlib_surface, ext_khr_wayland_surface, ext_khr_mir_surface,
Mark Young35159af2016-09-07 08:50:32 -06001392 ext_khr_display, ext_khr_display_swapchain]
Mark Young1a867442016-07-01 15:18:27 -06001393 extensions_all = [core, ext_khr_surface, ext_khr_device_swapchain, ext_khr_xcb_surface,
1394 ext_khr_xlib_surface, ext_khr_wayland_surface, ext_khr_mir_surface,
Mark Lobodzinskid8de64c2016-09-29 15:35:07 -06001395 ext_khr_display, ext_amd_draw_indirect_count,
Mark Young1a867442016-07-01 15:18:27 -06001396 ext_nv_external_memory_capabilities, ext_khr_display_swapchain,
1397 ext_debug_report, ext_debug_marker]
David Pinedo9848ed52016-07-21 10:56:27 -06001398 else:
1399 print('Error: Undefined DisplayServer')
1400 extensions = []
1401 extensions_all = []
Mark Lobodzinskie86e1382015-11-24 15:50:44 -07001402
Tobin Ehlisa30e7e52015-07-06 14:02:36 -06001403object_dispatch_list = [
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06001404 "VkInstance",
Tony Barbourd1c35722015-04-16 15:59:00 -06001405 "VkPhysicalDevice",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -06001406 "VkDevice",
1407 "VkQueue",
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001408 "VkCommandBuffer",
Tobin Ehlis7e65d752015-01-15 17:51:52 -07001409]
1410
Tobin Ehlisa30e7e52015-07-06 14:02:36 -06001411object_non_dispatch_list = [
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001412 "VkCommandPool",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06001413 "VkFence",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -06001414 "VkDeviceMemory",
1415 "VkBuffer",
1416 "VkImage",
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06001417 "VkSemaphore",
1418 "VkEvent",
1419 "VkQueryPool",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -06001420 "VkBufferView",
1421 "VkImageView",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -06001422 "VkShaderModule",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -06001423 "VkPipelineCache",
1424 "VkPipelineLayout",
1425 "VkPipeline",
1426 "VkDescriptorSetLayout",
1427 "VkSampler",
1428 "VkDescriptorPool",
1429 "VkDescriptorSet",
Tobin Ehlisa30e7e52015-07-06 14:02:36 -06001430 "VkRenderPass",
1431 "VkFramebuffer",
Ian Elliott7e40db92015-08-21 15:09:33 -06001432 "VkSwapchainKHR",
Jon Ashburn9380b672015-11-23 18:23:29 -07001433 "VkSurfaceKHR",
Courtney Goeltzenleuchter7415d5a2015-12-09 15:48:16 -07001434 "VkDebugReportCallbackEXT",
Jon Ashburn5e026df2016-06-15 08:19:07 -06001435 "VkDisplayKHR",
1436 "VkDisplayModeKHR",
Tobin Ehlis7e65d752015-01-15 17:51:52 -07001437]
1438
Tobin Ehlisa30e7e52015-07-06 14:02:36 -06001439object_type_list = object_dispatch_list + object_non_dispatch_list
Tobin Ehlis7e65d752015-01-15 17:51:52 -07001440
Chia-I Wuc4f24e82015-01-01 08:46:31 +08001441headers = []
Chia-I Wue86d8ab2015-01-04 14:46:22 +08001442objects = []
Chia-I Wuc4f24e82015-01-01 08:46:31 +08001443protos = []
1444for ext in extensions:
1445 headers.extend(ext.headers)
Chia-I Wue86d8ab2015-01-04 14:46:22 +08001446 objects.extend(ext.objects)
Chia-I Wuc4f24e82015-01-01 08:46:31 +08001447 protos.extend(ext.protos)
Chia-I Wu6dee8b82014-09-23 10:37:23 +08001448
Chia-I Wu9a4ceb12015-01-01 14:45:58 +08001449proto_names = [proto.name for proto in protos]
Chia-I Wu900a2572014-08-01 14:44:16 +08001450
Mark Youngaa1aa3a2016-07-05 16:41:50 -06001451headers_all = []
1452objects_all = []
1453protos_all = []
1454for ext in extensions_all:
1455 headers_all.extend(ext.headers)
1456 objects_all.extend(ext.objects)
1457 protos_all.extend(ext.protos)
1458
1459proto_all_names = [proto.name for proto in protos_all]