blob: 57558550da19b20b6c87a454e3410c240dc153ae [file] [log] [blame]
Chia-I Wufb2559d2014-08-01 11:19:52 +08001"""XGL API description"""
2
3# Copyright (C) 2014 LunarG, Inc.
4#
5# Permission is hereby granted, free of charge, to any person obtaining a
6# copy of this software and associated documentation files (the "Software"),
7# to deal in the Software without restriction, including without limitation
8# the rights to use, copy, modify, merge, publish, distribute, sublicense,
9# and/or sell copies of the Software, and to permit persons to whom the
10# Software is furnished to do so, subject to the following conditions:
11#
12# The above copyright notice and this permission notice shall be included
13# in all copies or substantial portions of the Software.
14#
15# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21# DEALINGS IN THE SOFTWARE.
22
23class Param(object):
24 """A function parameter."""
25
26 def __init__(self, ty, name):
27 self.ty = ty
28 self.name = name
29
30 def c(self):
31 """Return the parameter in C."""
32 idx = self.ty.find("[")
33
34 # arrays have a different syntax
35 if idx >= 0:
36 return "%s %s%s" % (self.ty[:idx], self.name, self.ty[idx:])
37 else:
38 return "%s %s" % (self.ty, self.name)
39
Chia-I Wu509a4122015-01-04 14:08:46 +080040 def __repr__(self):
41 return "Param(\"%s\", \"%s\")" % (self.ty, self.name)
42
Chia-I Wufb2559d2014-08-01 11:19:52 +080043class Proto(object):
44 """A function prototype."""
45
Chia-I Wue442dc32015-01-01 09:31:15 +080046 def __init__(self, ret, name, params=[]):
Chia-I Wufb2559d2014-08-01 11:19:52 +080047 # the proto has only a param
Chia-I Wue442dc32015-01-01 09:31:15 +080048 if not isinstance(params, list):
49 params = [params]
Chia-I Wufb2559d2014-08-01 11:19:52 +080050
51 self.ret = ret
52 self.name = name
53 self.params = params
54
55 def c_params(self, need_type=True, need_name=True):
56 """Return the parameter list in C."""
57 if self.params and (need_type or need_name):
58 if need_type and need_name:
59 return ", ".join([param.c() for param in self.params])
60 elif need_type:
61 return ", ".join([param.ty for param in self.params])
62 else:
63 return ", ".join([param.name for param in self.params])
64 else:
65 return "void" if need_type else ""
66
67 def c_decl(self, name, attr="", typed=False, need_param_names=True):
68 """Return a named declaration in C."""
69 format_vals = (self.ret,
70 attr + " " if attr else "",
71 name,
72 self.c_params(need_name=need_param_names))
73
74 if typed:
75 return "%s (%s*%s)(%s)" % format_vals
76 else:
77 return "%s %s%s(%s)" % format_vals
78
Chia-I Wuaf3b5552015-01-04 12:00:01 +080079 def c_pretty_decl(self, name, attr=""):
80 """Return a named declaration in C, with xgl.h formatting."""
81 plist = []
82 for param in self.params:
83 idx = param.ty.find("[")
84 if idx < 0:
85 idx = len(param.ty)
86
87 pad = 44 - idx
88 if pad <= 0:
89 pad = 1
90
91 plist.append(" %s%s%s%s" % (param.ty[:idx],
92 " " * pad, param.name, param.ty[idx:]))
93
94 return "%s %s%s(\n%s)" % (self.ret,
95 attr + " " if attr else "",
96 name,
97 ",\n".join(plist))
98
Chia-I Wufb2559d2014-08-01 11:19:52 +080099 def c_typedef(self, suffix="", attr=""):
100 """Return the typedef for the prototype in C."""
101 return self.c_decl(self.name + suffix, attr=attr, typed=True)
102
103 def c_func(self, prefix="", attr=""):
104 """Return the prototype in C."""
105 return self.c_decl(prefix + self.name, attr=attr, typed=False)
106
107 def c_call(self):
108 """Return a call to the prototype in C."""
109 return "%s(%s)" % (self.name, self.c_params(need_type=False))
110
Chia-I Wu509a4122015-01-04 14:08:46 +0800111 def __repr__(self):
112 param_strs = []
113 for param in self.params:
114 param_strs.append(str(param))
115 param_str = " [%s]" % (",\n ".join(param_strs))
116
117 return "Proto(\"%s\", \"%s\",\n%s)" % \
118 (self.ret, self.name, param_str)
119
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800120class Extension(object):
Chia-I Wue86d8ab2015-01-04 14:46:22 +0800121 def __init__(self, name, headers, objects, protos):
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800122 self.name = name
123 self.headers = headers
Chia-I Wue86d8ab2015-01-04 14:46:22 +0800124 self.objects = objects
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800125 self.protos = protos
126
Chia-I Wu509a4122015-01-04 14:08:46 +0800127 def __repr__(self):
128 lines = []
129 lines.append("Extension(")
130 lines.append(" name=\"%s\"," % self.name)
131 lines.append(" headers=[\"%s\"]," %
132 "\", \"".join(self.headers))
133
134 lines.append(" objects=[")
135 for obj in self.objects:
136 lines.append(" \"%s\"," % obj)
137 lines.append(" ],")
138
139 lines.append(" protos=[")
140 for proto in self.protos:
141 param_lines = str(proto).splitlines()
142 param_lines[-1] += ",\n" if proto != self.protos[-1] else ","
143 for p in param_lines:
144 lines.append(" " + p)
145 lines.append(" ],")
146 lines.append(")")
147
148 return "\n".join(lines)
149
Chia-I Wufb2559d2014-08-01 11:19:52 +0800150# XGL core API
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800151core = Extension(
152 name="XGL_CORE",
Chia-I Wue442dc32015-01-01 09:31:15 +0800153 headers=["xgl.h", "xglDbg.h"],
Chia-I Wue86d8ab2015-01-04 14:46:22 +0800154 objects=[
155 "XGL_PHYSICAL_GPU",
156 "XGL_BASE_OBJECT",
157 "XGL_DEVICE",
158 "XGL_QUEUE",
159 "XGL_GPU_MEMORY",
160 "XGL_OBJECT",
161 "XGL_IMAGE",
162 "XGL_IMAGE_VIEW",
163 "XGL_COLOR_ATTACHMENT_VIEW",
164 "XGL_DEPTH_STENCIL_VIEW",
165 "XGL_SHADER",
166 "XGL_PIPELINE",
167 "XGL_PIPELINE_DELTA",
168 "XGL_SAMPLER",
169 "XGL_DESCRIPTOR_SET",
170 "XGL_STATE_OBJECT",
171 "XGL_VIEWPORT_STATE_OBJECT",
172 "XGL_RASTER_STATE_OBJECT",
173 "XGL_MSAA_STATE_OBJECT",
174 "XGL_COLOR_BLEND_STATE_OBJECT",
175 "XGL_DEPTH_STENCIL_STATE_OBJECT",
176 "XGL_CMD_BUFFER",
177 "XGL_FENCE",
178 "XGL_QUEUE_SEMAPHORE",
179 "XGL_EVENT",
180 "XGL_QUERY_POOL",
181 ],
Chia-I Wue442dc32015-01-01 09:31:15 +0800182 protos=[
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800183 Proto("XGL_RESULT", "InitAndEnumerateGpus",
Chia-I Wue442dc32015-01-01 09:31:15 +0800184 [Param("const XGL_APPLICATION_INFO*", "pAppInfo"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800185 Param("const XGL_ALLOC_CALLBACKS*", "pAllocCb"),
186 Param("XGL_UINT", "maxGpus"),
187 Param("XGL_UINT*", "pGpuCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800188 Param("XGL_PHYSICAL_GPU*", "pGpus")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800189
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800190 Proto("XGL_RESULT", "GetGpuInfo",
Chia-I Wue442dc32015-01-01 09:31:15 +0800191 [Param("XGL_PHYSICAL_GPU", "gpu"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800192 Param("XGL_PHYSICAL_GPU_INFO_TYPE", "infoType"),
193 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800194 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800195
Chia-I Wuf2ffc522015-01-04 14:51:06 +0800196 Proto("XGL_VOID*", "GetProcAddr",
197 [Param("XGL_PHYSICAL_GPU", "gpu"),
198 Param("const XGL_CHAR*", "pName")]),
199
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800200 Proto("XGL_RESULT", "CreateDevice",
Chia-I Wue442dc32015-01-01 09:31:15 +0800201 [Param("XGL_PHYSICAL_GPU", "gpu"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800202 Param("const XGL_DEVICE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800203 Param("XGL_DEVICE*", "pDevice")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800204
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800205 Proto("XGL_RESULT", "DestroyDevice",
Chia-I Wue442dc32015-01-01 09:31:15 +0800206 [Param("XGL_DEVICE", "device")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800207
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800208 Proto("XGL_RESULT", "GetExtensionSupport",
Chia-I Wue442dc32015-01-01 09:31:15 +0800209 [Param("XGL_PHYSICAL_GPU", "gpu"),
210 Param("const XGL_CHAR*", "pExtName")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800211
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800212 Proto("XGL_RESULT", "EnumerateLayers",
Chia-I Wue442dc32015-01-01 09:31:15 +0800213 [Param("XGL_PHYSICAL_GPU", "gpu"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800214 Param("XGL_SIZE", "maxLayerCount"),
215 Param("XGL_SIZE", "maxStringSize"),
216 Param("XGL_CHAR* const*", "pOutLayers"),
Chia-I Wuf2ffc522015-01-04 14:51:06 +0800217 Param("XGL_SIZE*", "pOutLayerCount"),
218 Param("XGL_VOID*", "pReserved")]),
Jon Ashburnf7bcf9b2014-10-15 15:30:23 -0600219
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800220 Proto("XGL_RESULT", "GetDeviceQueue",
Chia-I Wue442dc32015-01-01 09:31:15 +0800221 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800222 Param("XGL_QUEUE_TYPE", "queueType"),
223 Param("XGL_UINT", "queueIndex"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800224 Param("XGL_QUEUE*", "pQueue")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800225
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800226 Proto("XGL_RESULT", "QueueSubmit",
Chia-I Wue442dc32015-01-01 09:31:15 +0800227 [Param("XGL_QUEUE", "queue"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800228 Param("XGL_UINT", "cmdBufferCount"),
229 Param("const XGL_CMD_BUFFER*", "pCmdBuffers"),
230 Param("XGL_UINT", "memRefCount"),
231 Param("const XGL_MEMORY_REF*", "pMemRefs"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800232 Param("XGL_FENCE", "fence")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800233
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800234 Proto("XGL_RESULT", "QueueSetGlobalMemReferences",
Chia-I Wue442dc32015-01-01 09:31:15 +0800235 [Param("XGL_QUEUE", "queue"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800236 Param("XGL_UINT", "memRefCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800237 Param("const XGL_MEMORY_REF*", "pMemRefs")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800238
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800239 Proto("XGL_RESULT", "QueueWaitIdle",
Chia-I Wue442dc32015-01-01 09:31:15 +0800240 [Param("XGL_QUEUE", "queue")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800241
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800242 Proto("XGL_RESULT", "DeviceWaitIdle",
Chia-I Wue442dc32015-01-01 09:31:15 +0800243 [Param("XGL_DEVICE", "device")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800244
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800245 Proto("XGL_RESULT", "GetMemoryHeapCount",
Chia-I Wue442dc32015-01-01 09:31:15 +0800246 [Param("XGL_DEVICE", "device"),
247 Param("XGL_UINT*", "pCount")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800248
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800249 Proto("XGL_RESULT", "GetMemoryHeapInfo",
Chia-I Wue442dc32015-01-01 09:31:15 +0800250 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800251 Param("XGL_UINT", "heapId"),
252 Param("XGL_MEMORY_HEAP_INFO_TYPE", "infoType"),
253 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800254 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800255
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800256 Proto("XGL_RESULT", "AllocMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800257 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800258 Param("const XGL_MEMORY_ALLOC_INFO*", "pAllocInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800259 Param("XGL_GPU_MEMORY*", "pMem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800260
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800261 Proto("XGL_RESULT", "FreeMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800262 [Param("XGL_GPU_MEMORY", "mem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800263
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800264 Proto("XGL_RESULT", "SetMemoryPriority",
Chia-I Wue442dc32015-01-01 09:31:15 +0800265 [Param("XGL_GPU_MEMORY", "mem"),
266 Param("XGL_MEMORY_PRIORITY", "priority")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800267
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800268 Proto("XGL_RESULT", "MapMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800269 [Param("XGL_GPU_MEMORY", "mem"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800270 Param("XGL_FLAGS", "flags"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800271 Param("XGL_VOID**", "ppData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800272
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800273 Proto("XGL_RESULT", "UnmapMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800274 [Param("XGL_GPU_MEMORY", "mem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800275
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800276 Proto("XGL_RESULT", "PinSystemMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800277 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800278 Param("const XGL_VOID*", "pSysMem"),
279 Param("XGL_SIZE", "memSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800280 Param("XGL_GPU_MEMORY*", "pMem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800281
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800282 Proto("XGL_RESULT", "RemapVirtualMemoryPages",
Chia-I Wue442dc32015-01-01 09:31:15 +0800283 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800284 Param("XGL_UINT", "rangeCount"),
285 Param("const XGL_VIRTUAL_MEMORY_REMAP_RANGE*", "pRanges"),
286 Param("XGL_UINT", "preWaitSemaphoreCount"),
287 Param("const XGL_QUEUE_SEMAPHORE*", "pPreWaitSemaphores"),
288 Param("XGL_UINT", "postSignalSemaphoreCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800289 Param("const XGL_QUEUE_SEMAPHORE*", "pPostSignalSemaphores")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800290
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800291 Proto("XGL_RESULT", "GetMultiGpuCompatibility",
Chia-I Wue442dc32015-01-01 09:31:15 +0800292 [Param("XGL_PHYSICAL_GPU", "gpu0"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800293 Param("XGL_PHYSICAL_GPU", "gpu1"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800294 Param("XGL_GPU_COMPATIBILITY_INFO*", "pInfo")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800295
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800296 Proto("XGL_RESULT", "OpenSharedMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800297 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800298 Param("const XGL_MEMORY_OPEN_INFO*", "pOpenInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800299 Param("XGL_GPU_MEMORY*", "pMem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800300
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800301 Proto("XGL_RESULT", "OpenSharedQueueSemaphore",
Chia-I Wue442dc32015-01-01 09:31:15 +0800302 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800303 Param("const XGL_QUEUE_SEMAPHORE_OPEN_INFO*", "pOpenInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800304 Param("XGL_QUEUE_SEMAPHORE*", "pSemaphore")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800305
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800306 Proto("XGL_RESULT", "OpenPeerMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800307 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800308 Param("const XGL_PEER_MEMORY_OPEN_INFO*", "pOpenInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800309 Param("XGL_GPU_MEMORY*", "pMem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800310
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800311 Proto("XGL_RESULT", "OpenPeerImage",
Chia-I Wue442dc32015-01-01 09:31:15 +0800312 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800313 Param("const XGL_PEER_IMAGE_OPEN_INFO*", "pOpenInfo"),
314 Param("XGL_IMAGE*", "pImage"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800315 Param("XGL_GPU_MEMORY*", "pMem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800316
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800317 Proto("XGL_RESULT", "DestroyObject",
Chia-I Wue442dc32015-01-01 09:31:15 +0800318 [Param("XGL_OBJECT", "object")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800319
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800320 Proto("XGL_RESULT", "GetObjectInfo",
Chia-I Wue442dc32015-01-01 09:31:15 +0800321 [Param("XGL_BASE_OBJECT", "object"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800322 Param("XGL_OBJECT_INFO_TYPE", "infoType"),
323 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800324 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800325
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800326 Proto("XGL_RESULT", "BindObjectMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800327 [Param("XGL_OBJECT", "object"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800328 Param("XGL_GPU_MEMORY", "mem"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800329 Param("XGL_GPU_SIZE", "offset")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800330
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800331 Proto("XGL_RESULT", "CreateFence",
Chia-I Wue442dc32015-01-01 09:31:15 +0800332 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800333 Param("const XGL_FENCE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800334 Param("XGL_FENCE*", "pFence")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800335
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800336 Proto("XGL_RESULT", "GetFenceStatus",
Chia-I Wue442dc32015-01-01 09:31:15 +0800337 [Param("XGL_FENCE", "fence")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800338
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800339 Proto("XGL_RESULT", "WaitForFences",
Chia-I Wue442dc32015-01-01 09:31:15 +0800340 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800341 Param("XGL_UINT", "fenceCount"),
342 Param("const XGL_FENCE*", "pFences"),
343 Param("XGL_BOOL", "waitAll"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800344 Param("XGL_UINT64", "timeout")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800345
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800346 Proto("XGL_RESULT", "CreateQueueSemaphore",
Chia-I Wue442dc32015-01-01 09:31:15 +0800347 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800348 Param("const XGL_QUEUE_SEMAPHORE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800349 Param("XGL_QUEUE_SEMAPHORE*", "pSemaphore")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800350
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800351 Proto("XGL_RESULT", "SignalQueueSemaphore",
Chia-I Wue442dc32015-01-01 09:31:15 +0800352 [Param("XGL_QUEUE", "queue"),
353 Param("XGL_QUEUE_SEMAPHORE", "semaphore")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800354
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800355 Proto("XGL_RESULT", "WaitQueueSemaphore",
Chia-I Wue442dc32015-01-01 09:31:15 +0800356 [Param("XGL_QUEUE", "queue"),
357 Param("XGL_QUEUE_SEMAPHORE", "semaphore")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800358
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800359 Proto("XGL_RESULT", "CreateEvent",
Chia-I Wue442dc32015-01-01 09:31:15 +0800360 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800361 Param("const XGL_EVENT_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800362 Param("XGL_EVENT*", "pEvent")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800363
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800364 Proto("XGL_RESULT", "GetEventStatus",
Chia-I Wue442dc32015-01-01 09:31:15 +0800365 [Param("XGL_EVENT", "event")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800366
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800367 Proto("XGL_RESULT", "SetEvent",
Chia-I Wue442dc32015-01-01 09:31:15 +0800368 [Param("XGL_EVENT", "event")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800369
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800370 Proto("XGL_RESULT", "ResetEvent",
Chia-I Wue442dc32015-01-01 09:31:15 +0800371 [Param("XGL_EVENT", "event")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800372
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800373 Proto("XGL_RESULT", "CreateQueryPool",
Chia-I Wue442dc32015-01-01 09:31:15 +0800374 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800375 Param("const XGL_QUERY_POOL_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800376 Param("XGL_QUERY_POOL*", "pQueryPool")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800377
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800378 Proto("XGL_RESULT", "GetQueryPoolResults",
Chia-I Wue442dc32015-01-01 09:31:15 +0800379 [Param("XGL_QUERY_POOL", "queryPool"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800380 Param("XGL_UINT", "startQuery"),
381 Param("XGL_UINT", "queryCount"),
382 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800383 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800384
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800385 Proto("XGL_RESULT", "GetFormatInfo",
Chia-I Wue442dc32015-01-01 09:31:15 +0800386 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800387 Param("XGL_FORMAT", "format"),
388 Param("XGL_FORMAT_INFO_TYPE", "infoType"),
389 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800390 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800391
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800392 Proto("XGL_RESULT", "CreateImage",
Chia-I Wue442dc32015-01-01 09:31:15 +0800393 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800394 Param("const XGL_IMAGE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800395 Param("XGL_IMAGE*", "pImage")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800396
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800397 Proto("XGL_RESULT", "GetImageSubresourceInfo",
Chia-I Wue442dc32015-01-01 09:31:15 +0800398 [Param("XGL_IMAGE", "image"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800399 Param("const XGL_IMAGE_SUBRESOURCE*", "pSubresource"),
400 Param("XGL_SUBRESOURCE_INFO_TYPE", "infoType"),
401 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800402 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800403
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800404 Proto("XGL_RESULT", "CreateImageView",
Chia-I Wue442dc32015-01-01 09:31:15 +0800405 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800406 Param("const XGL_IMAGE_VIEW_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800407 Param("XGL_IMAGE_VIEW*", "pView")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800408
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800409 Proto("XGL_RESULT", "CreateColorAttachmentView",
Chia-I Wue442dc32015-01-01 09:31:15 +0800410 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800411 Param("const XGL_COLOR_ATTACHMENT_VIEW_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800412 Param("XGL_COLOR_ATTACHMENT_VIEW*", "pView")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800413
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800414 Proto("XGL_RESULT", "CreateDepthStencilView",
Chia-I Wue442dc32015-01-01 09:31:15 +0800415 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800416 Param("const XGL_DEPTH_STENCIL_VIEW_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800417 Param("XGL_DEPTH_STENCIL_VIEW*", "pView")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800418
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800419 Proto("XGL_RESULT", "CreateShader",
Chia-I Wue442dc32015-01-01 09:31:15 +0800420 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800421 Param("const XGL_SHADER_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800422 Param("XGL_SHADER*", "pShader")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800423
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800424 Proto("XGL_RESULT", "CreateGraphicsPipeline",
Chia-I Wue442dc32015-01-01 09:31:15 +0800425 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800426 Param("const XGL_GRAPHICS_PIPELINE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800427 Param("XGL_PIPELINE*", "pPipeline")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800428
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800429 Proto("XGL_RESULT", "CreateComputePipeline",
Chia-I Wue442dc32015-01-01 09:31:15 +0800430 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800431 Param("const XGL_COMPUTE_PIPELINE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800432 Param("XGL_PIPELINE*", "pPipeline")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800433
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800434 Proto("XGL_RESULT", "StorePipeline",
Chia-I Wue442dc32015-01-01 09:31:15 +0800435 [Param("XGL_PIPELINE", "pipeline"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800436 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800437 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800438
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800439 Proto("XGL_RESULT", "LoadPipeline",
Chia-I Wue442dc32015-01-01 09:31:15 +0800440 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800441 Param("XGL_SIZE", "dataSize"),
442 Param("const XGL_VOID*", "pData"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800443 Param("XGL_PIPELINE*", "pPipeline")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800444
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800445 Proto("XGL_RESULT", "CreatePipelineDelta",
Chia-I Wue442dc32015-01-01 09:31:15 +0800446 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800447 Param("XGL_PIPELINE", "p1"),
448 Param("XGL_PIPELINE", "p2"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800449 Param("XGL_PIPELINE_DELTA*", "delta")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800450
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800451 Proto("XGL_RESULT", "CreateSampler",
Chia-I Wue442dc32015-01-01 09:31:15 +0800452 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800453 Param("const XGL_SAMPLER_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800454 Param("XGL_SAMPLER*", "pSampler")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800455
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800456 Proto("XGL_RESULT", "CreateDescriptorSet",
Chia-I Wue442dc32015-01-01 09:31:15 +0800457 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800458 Param("const XGL_DESCRIPTOR_SET_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800459 Param("XGL_DESCRIPTOR_SET*", "pDescriptorSet")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800460
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800461 Proto("XGL_VOID", "BeginDescriptorSetUpdate",
Chia-I Wue442dc32015-01-01 09:31:15 +0800462 [Param("XGL_DESCRIPTOR_SET", "descriptorSet")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800463
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800464 Proto("XGL_VOID", "EndDescriptorSetUpdate",
Chia-I Wue442dc32015-01-01 09:31:15 +0800465 [Param("XGL_DESCRIPTOR_SET", "descriptorSet")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800466
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800467 Proto("XGL_VOID", "AttachSamplerDescriptors",
Chia-I Wue442dc32015-01-01 09:31:15 +0800468 [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800469 Param("XGL_UINT", "startSlot"),
470 Param("XGL_UINT", "slotCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800471 Param("const XGL_SAMPLER*", "pSamplers")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800472
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800473 Proto("XGL_VOID", "AttachImageViewDescriptors",
Chia-I Wue442dc32015-01-01 09:31:15 +0800474 [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800475 Param("XGL_UINT", "startSlot"),
476 Param("XGL_UINT", "slotCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800477 Param("const XGL_IMAGE_VIEW_ATTACH_INFO*", "pImageViews")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800478
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800479 Proto("XGL_VOID", "AttachMemoryViewDescriptors",
Chia-I Wue442dc32015-01-01 09:31:15 +0800480 [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800481 Param("XGL_UINT", "startSlot"),
482 Param("XGL_UINT", "slotCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800483 Param("const XGL_MEMORY_VIEW_ATTACH_INFO*", "pMemViews")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800484
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800485 Proto("XGL_VOID", "AttachNestedDescriptors",
Chia-I Wue442dc32015-01-01 09:31:15 +0800486 [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800487 Param("XGL_UINT", "startSlot"),
488 Param("XGL_UINT", "slotCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800489 Param("const XGL_DESCRIPTOR_SET_ATTACH_INFO*", "pNestedDescriptorSets")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800490
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800491 Proto("XGL_VOID", "ClearDescriptorSetSlots",
Chia-I Wue442dc32015-01-01 09:31:15 +0800492 [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800493 Param("XGL_UINT", "startSlot"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800494 Param("XGL_UINT", "slotCount")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800495
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800496 Proto("XGL_RESULT", "CreateViewportState",
Chia-I Wue442dc32015-01-01 09:31:15 +0800497 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800498 Param("const XGL_VIEWPORT_STATE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800499 Param("XGL_VIEWPORT_STATE_OBJECT*", "pState")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800500
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800501 Proto("XGL_RESULT", "CreateRasterState",
Chia-I Wue442dc32015-01-01 09:31:15 +0800502 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800503 Param("const XGL_RASTER_STATE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800504 Param("XGL_RASTER_STATE_OBJECT*", "pState")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800505
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800506 Proto("XGL_RESULT", "CreateMsaaState",
Chia-I Wue442dc32015-01-01 09:31:15 +0800507 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800508 Param("const XGL_MSAA_STATE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800509 Param("XGL_MSAA_STATE_OBJECT*", "pState")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800510
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800511 Proto("XGL_RESULT", "CreateColorBlendState",
Chia-I Wue442dc32015-01-01 09:31:15 +0800512 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800513 Param("const XGL_COLOR_BLEND_STATE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800514 Param("XGL_COLOR_BLEND_STATE_OBJECT*", "pState")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800515
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800516 Proto("XGL_RESULT", "CreateDepthStencilState",
Chia-I Wue442dc32015-01-01 09:31:15 +0800517 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800518 Param("const XGL_DEPTH_STENCIL_STATE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800519 Param("XGL_DEPTH_STENCIL_STATE_OBJECT*", "pState")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800520
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800521 Proto("XGL_RESULT", "CreateCommandBuffer",
Chia-I Wue442dc32015-01-01 09:31:15 +0800522 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800523 Param("const XGL_CMD_BUFFER_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800524 Param("XGL_CMD_BUFFER*", "pCmdBuffer")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800525
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800526 Proto("XGL_RESULT", "BeginCommandBuffer",
Chia-I Wue442dc32015-01-01 09:31:15 +0800527 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
528 Param("XGL_FLAGS", "flags")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800529
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800530 Proto("XGL_RESULT", "EndCommandBuffer",
Chia-I Wue442dc32015-01-01 09:31:15 +0800531 [Param("XGL_CMD_BUFFER", "cmdBuffer")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800532
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800533 Proto("XGL_RESULT", "ResetCommandBuffer",
Chia-I Wue442dc32015-01-01 09:31:15 +0800534 [Param("XGL_CMD_BUFFER", "cmdBuffer")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800535
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800536 Proto("XGL_VOID", "CmdBindPipeline",
Chia-I Wue442dc32015-01-01 09:31:15 +0800537 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800538 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800539 Param("XGL_PIPELINE", "pipeline")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800540
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800541 Proto("XGL_VOID", "CmdBindPipelineDelta",
Chia-I Wue442dc32015-01-01 09:31:15 +0800542 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800543 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800544 Param("XGL_PIPELINE_DELTA", "delta")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800545
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800546 Proto("XGL_VOID", "CmdBindStateObject",
Chia-I Wue442dc32015-01-01 09:31:15 +0800547 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800548 Param("XGL_STATE_BIND_POINT", "stateBindPoint"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800549 Param("XGL_STATE_OBJECT", "state")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800550
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800551 Proto("XGL_VOID", "CmdBindDescriptorSet",
Chia-I Wue442dc32015-01-01 09:31:15 +0800552 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800553 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
554 Param("XGL_UINT", "index"),
555 Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800556 Param("XGL_UINT", "slotOffset")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800557
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800558 Proto("XGL_VOID", "CmdBindDynamicMemoryView",
Chia-I Wue442dc32015-01-01 09:31:15 +0800559 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800560 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800561 Param("const XGL_MEMORY_VIEW_ATTACH_INFO*", "pMemView")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800562
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800563 Proto("XGL_VOID", "CmdBindVertexData",
Chia-I Wue442dc32015-01-01 09:31:15 +0800564 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800565 Param("XGL_GPU_MEMORY", "mem"),
566 Param("XGL_GPU_SIZE", "offset"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800567 Param("XGL_UINT", "binding")]),
Chia-I Wu7a42e122014-11-08 10:48:20 +0800568
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800569 Proto("XGL_VOID", "CmdBindIndexData",
Chia-I Wue442dc32015-01-01 09:31:15 +0800570 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800571 Param("XGL_GPU_MEMORY", "mem"),
572 Param("XGL_GPU_SIZE", "offset"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800573 Param("XGL_INDEX_TYPE", "indexType")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800574
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800575 Proto("XGL_VOID", "CmdBindAttachments",
Chia-I Wue442dc32015-01-01 09:31:15 +0800576 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800577 Param("XGL_UINT", "colorAttachmentCount"),
578 Param("const XGL_COLOR_ATTACHMENT_BIND_INFO*", "pColorAttachments"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800579 Param("const XGL_DEPTH_STENCIL_BIND_INFO*", "pDepthStencilAttachment")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800580
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800581 Proto("XGL_VOID", "CmdPrepareMemoryRegions",
Chia-I Wue442dc32015-01-01 09:31:15 +0800582 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800583 Param("XGL_UINT", "transitionCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800584 Param("const XGL_MEMORY_STATE_TRANSITION*", "pStateTransitions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800585
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800586 Proto("XGL_VOID", "CmdPrepareImages",
Chia-I Wue442dc32015-01-01 09:31:15 +0800587 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800588 Param("XGL_UINT", "transitionCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800589 Param("const XGL_IMAGE_STATE_TRANSITION*", "pStateTransitions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800590
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800591 Proto("XGL_VOID", "CmdDraw",
Chia-I Wue442dc32015-01-01 09:31:15 +0800592 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800593 Param("XGL_UINT", "firstVertex"),
594 Param("XGL_UINT", "vertexCount"),
595 Param("XGL_UINT", "firstInstance"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800596 Param("XGL_UINT", "instanceCount")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800597
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800598 Proto("XGL_VOID", "CmdDrawIndexed",
Chia-I Wue442dc32015-01-01 09:31:15 +0800599 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800600 Param("XGL_UINT", "firstIndex"),
601 Param("XGL_UINT", "indexCount"),
602 Param("XGL_INT", "vertexOffset"),
603 Param("XGL_UINT", "firstInstance"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800604 Param("XGL_UINT", "instanceCount")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800605
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800606 Proto("XGL_VOID", "CmdDrawIndirect",
Chia-I Wue442dc32015-01-01 09:31:15 +0800607 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800608 Param("XGL_GPU_MEMORY", "mem"),
609 Param("XGL_GPU_SIZE", "offset"),
610 Param("XGL_UINT32", "count"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800611 Param("XGL_UINT32", "stride")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800612
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800613 Proto("XGL_VOID", "CmdDrawIndexedIndirect",
Chia-I Wue442dc32015-01-01 09:31:15 +0800614 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800615 Param("XGL_GPU_MEMORY", "mem"),
616 Param("XGL_GPU_SIZE", "offset"),
617 Param("XGL_UINT32", "count"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800618 Param("XGL_UINT32", "stride")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800619
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800620 Proto("XGL_VOID", "CmdDispatch",
Chia-I Wue442dc32015-01-01 09:31:15 +0800621 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800622 Param("XGL_UINT", "x"),
623 Param("XGL_UINT", "y"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800624 Param("XGL_UINT", "z")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800625
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800626 Proto("XGL_VOID", "CmdDispatchIndirect",
Chia-I Wue442dc32015-01-01 09:31:15 +0800627 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800628 Param("XGL_GPU_MEMORY", "mem"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800629 Param("XGL_GPU_SIZE", "offset")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800630
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800631 Proto("XGL_VOID", "CmdCopyMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800632 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800633 Param("XGL_GPU_MEMORY", "srcMem"),
634 Param("XGL_GPU_MEMORY", "destMem"),
635 Param("XGL_UINT", "regionCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800636 Param("const XGL_MEMORY_COPY*", "pRegions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800637
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800638 Proto("XGL_VOID", "CmdCopyImage",
Chia-I Wue442dc32015-01-01 09:31:15 +0800639 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800640 Param("XGL_IMAGE", "srcImage"),
641 Param("XGL_IMAGE", "destImage"),
642 Param("XGL_UINT", "regionCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800643 Param("const XGL_IMAGE_COPY*", "pRegions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800644
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800645 Proto("XGL_VOID", "CmdCopyMemoryToImage",
Chia-I Wue442dc32015-01-01 09:31:15 +0800646 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800647 Param("XGL_GPU_MEMORY", "srcMem"),
648 Param("XGL_IMAGE", "destImage"),
649 Param("XGL_UINT", "regionCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800650 Param("const XGL_MEMORY_IMAGE_COPY*", "pRegions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800651
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800652 Proto("XGL_VOID", "CmdCopyImageToMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800653 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800654 Param("XGL_IMAGE", "srcImage"),
655 Param("XGL_GPU_MEMORY", "destMem"),
656 Param("XGL_UINT", "regionCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800657 Param("const XGL_MEMORY_IMAGE_COPY*", "pRegions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800658
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800659 Proto("XGL_VOID", "CmdCloneImageData",
Chia-I Wue442dc32015-01-01 09:31:15 +0800660 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800661 Param("XGL_IMAGE", "srcImage"),
662 Param("XGL_IMAGE_STATE", "srcImageState"),
663 Param("XGL_IMAGE", "destImage"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800664 Param("XGL_IMAGE_STATE", "destImageState")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800665
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800666 Proto("XGL_VOID", "CmdUpdateMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800667 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800668 Param("XGL_GPU_MEMORY", "destMem"),
669 Param("XGL_GPU_SIZE", "destOffset"),
670 Param("XGL_GPU_SIZE", "dataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800671 Param("const XGL_UINT32*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800672
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800673 Proto("XGL_VOID", "CmdFillMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800674 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800675 Param("XGL_GPU_MEMORY", "destMem"),
676 Param("XGL_GPU_SIZE", "destOffset"),
677 Param("XGL_GPU_SIZE", "fillSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800678 Param("XGL_UINT32", "data")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800679
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800680 Proto("XGL_VOID", "CmdClearColorImage",
Chia-I Wue442dc32015-01-01 09:31:15 +0800681 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800682 Param("XGL_IMAGE", "image"),
683 Param("const XGL_FLOAT[4]", "color"),
684 Param("XGL_UINT", "rangeCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800685 Param("const XGL_IMAGE_SUBRESOURCE_RANGE*", "pRanges")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800686
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800687 Proto("XGL_VOID", "CmdClearColorImageRaw",
Chia-I Wue442dc32015-01-01 09:31:15 +0800688 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800689 Param("XGL_IMAGE", "image"),
690 Param("const XGL_UINT32[4]", "color"),
691 Param("XGL_UINT", "rangeCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800692 Param("const XGL_IMAGE_SUBRESOURCE_RANGE*", "pRanges")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800693
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800694 Proto("XGL_VOID", "CmdClearDepthStencil",
Chia-I Wue442dc32015-01-01 09:31:15 +0800695 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800696 Param("XGL_IMAGE", "image"),
697 Param("XGL_FLOAT", "depth"),
698 Param("XGL_UINT32", "stencil"),
699 Param("XGL_UINT", "rangeCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800700 Param("const XGL_IMAGE_SUBRESOURCE_RANGE*", "pRanges")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800701
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800702 Proto("XGL_VOID", "CmdResolveImage",
Chia-I Wue442dc32015-01-01 09:31:15 +0800703 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800704 Param("XGL_IMAGE", "srcImage"),
705 Param("XGL_IMAGE", "destImage"),
706 Param("XGL_UINT", "rectCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800707 Param("const XGL_IMAGE_RESOLVE*", "pRects")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800708
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800709 Proto("XGL_VOID", "CmdSetEvent",
Chia-I Wue442dc32015-01-01 09:31:15 +0800710 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
711 Param("XGL_EVENT", "event")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800712
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800713 Proto("XGL_VOID", "CmdResetEvent",
Chia-I Wue442dc32015-01-01 09:31:15 +0800714 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
715 Param("XGL_EVENT", "event")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800716
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800717 Proto("XGL_VOID", "CmdMemoryAtomic",
Chia-I Wue442dc32015-01-01 09:31:15 +0800718 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800719 Param("XGL_GPU_MEMORY", "destMem"),
720 Param("XGL_GPU_SIZE", "destOffset"),
721 Param("XGL_UINT64", "srcData"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800722 Param("XGL_ATOMIC_OP", "atomicOp")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800723
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800724 Proto("XGL_VOID", "CmdBeginQuery",
Chia-I Wue442dc32015-01-01 09:31:15 +0800725 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800726 Param("XGL_QUERY_POOL", "queryPool"),
727 Param("XGL_UINT", "slot"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800728 Param("XGL_FLAGS", "flags")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800729
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800730 Proto("XGL_VOID", "CmdEndQuery",
Chia-I Wue442dc32015-01-01 09:31:15 +0800731 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800732 Param("XGL_QUERY_POOL", "queryPool"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800733 Param("XGL_UINT", "slot")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800734
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800735 Proto("XGL_VOID", "CmdResetQueryPool",
Chia-I Wue442dc32015-01-01 09:31:15 +0800736 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800737 Param("XGL_QUERY_POOL", "queryPool"),
738 Param("XGL_UINT", "startQuery"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800739 Param("XGL_UINT", "queryCount")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800740
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800741 Proto("XGL_VOID", "CmdWriteTimestamp",
Chia-I Wue442dc32015-01-01 09:31:15 +0800742 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800743 Param("XGL_TIMESTAMP_TYPE", "timestampType"),
744 Param("XGL_GPU_MEMORY", "destMem"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800745 Param("XGL_GPU_SIZE", "destOffset")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800746
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800747 Proto("XGL_VOID", "CmdInitAtomicCounters",
Chia-I Wue442dc32015-01-01 09:31:15 +0800748 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800749 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
750 Param("XGL_UINT", "startCounter"),
751 Param("XGL_UINT", "counterCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800752 Param("const XGL_UINT32*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800753
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800754 Proto("XGL_VOID", "CmdLoadAtomicCounters",
Chia-I Wue442dc32015-01-01 09:31:15 +0800755 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800756 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
757 Param("XGL_UINT", "startCounter"),
758 Param("XGL_UINT", "counterCount"),
759 Param("XGL_GPU_MEMORY", "srcMem"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800760 Param("XGL_GPU_SIZE", "srcOffset")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800761
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800762 Proto("XGL_VOID", "CmdSaveAtomicCounters",
Chia-I Wue442dc32015-01-01 09:31:15 +0800763 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800764 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
765 Param("XGL_UINT", "startCounter"),
766 Param("XGL_UINT", "counterCount"),
767 Param("XGL_GPU_MEMORY", "destMem"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800768 Param("XGL_GPU_SIZE", "destOffset")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800769
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800770 Proto("XGL_RESULT", "DbgSetValidationLevel",
Chia-I Wue442dc32015-01-01 09:31:15 +0800771 [Param("XGL_DEVICE", "device"),
772 Param("XGL_VALIDATION_LEVEL", "validationLevel")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800773
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800774 Proto("XGL_RESULT", "DbgRegisterMsgCallback",
Chia-I Wue442dc32015-01-01 09:31:15 +0800775 [Param("XGL_DBG_MSG_CALLBACK_FUNCTION", "pfnMsgCallback"),
776 Param("XGL_VOID*", "pUserData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800777
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800778 Proto("XGL_RESULT", "DbgUnregisterMsgCallback",
Chia-I Wue442dc32015-01-01 09:31:15 +0800779 [Param("XGL_DBG_MSG_CALLBACK_FUNCTION", "pfnMsgCallback")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800780
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800781 Proto("XGL_RESULT", "DbgSetMessageFilter",
Chia-I Wue442dc32015-01-01 09:31:15 +0800782 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800783 Param("XGL_INT", "msgCode"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800784 Param("XGL_DBG_MSG_FILTER", "filter")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800785
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800786 Proto("XGL_RESULT", "DbgSetObjectTag",
Chia-I Wue442dc32015-01-01 09:31:15 +0800787 [Param("XGL_BASE_OBJECT", "object"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800788 Param("XGL_SIZE", "tagSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800789 Param("const XGL_VOID*", "pTag")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800790
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800791 Proto("XGL_RESULT", "DbgSetGlobalOption",
Chia-I Wue442dc32015-01-01 09:31:15 +0800792 [Param("XGL_DBG_GLOBAL_OPTION", "dbgOption"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800793 Param("XGL_SIZE", "dataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800794 Param("const XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800795
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800796 Proto("XGL_RESULT", "DbgSetDeviceOption",
Chia-I Wue442dc32015-01-01 09:31:15 +0800797 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800798 Param("XGL_DBG_DEVICE_OPTION", "dbgOption"),
799 Param("XGL_SIZE", "dataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800800 Param("const XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800801
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800802 Proto("XGL_VOID", "CmdDbgMarkerBegin",
Chia-I Wue442dc32015-01-01 09:31:15 +0800803 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
804 Param("const XGL_CHAR*", "pMarker")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800805
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800806 Proto("XGL_VOID", "CmdDbgMarkerEnd",
Chia-I Wue442dc32015-01-01 09:31:15 +0800807 [Param("XGL_CMD_BUFFER", "cmdBuffer")]),
808 ],
Chia-I Wufb2559d2014-08-01 11:19:52 +0800809)
810
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800811wsi_x11 = Extension(
812 name="XGL_WSI_X11",
Chia-I Wue442dc32015-01-01 09:31:15 +0800813 headers=["xglWsiX11Ext.h"],
Chia-I Wue86d8ab2015-01-04 14:46:22 +0800814 objects=[],
Chia-I Wue442dc32015-01-01 09:31:15 +0800815 protos=[
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800816 Proto("XGL_RESULT", "WsiX11AssociateConnection",
Chia-I Wue442dc32015-01-01 09:31:15 +0800817 [Param("XGL_PHYSICAL_GPU", "gpu"),
818 Param("const XGL_WSI_X11_CONNECTION_INFO*", "pConnectionInfo")]),
Chia-I Wu6bdf0192014-09-13 13:36:06 +0800819
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800820 Proto("XGL_RESULT", "WsiX11GetMSC",
Chia-I Wue442dc32015-01-01 09:31:15 +0800821 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800822 Param("xcb_window_t", "window"),
823 Param("xcb_randr_crtc_t", "crtc"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800824 Param("XGL_UINT64*", "pMsc")]),
Chia-I Wu6dee8b82014-09-23 10:37:23 +0800825
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800826 Proto("XGL_RESULT", "WsiX11CreatePresentableImage",
Chia-I Wue442dc32015-01-01 09:31:15 +0800827 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800828 Param("const XGL_WSI_X11_PRESENTABLE_IMAGE_CREATE_INFO*", "pCreateInfo"),
829 Param("XGL_IMAGE*", "pImage"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800830 Param("XGL_GPU_MEMORY*", "pMem")]),
Chia-I Wu6dee8b82014-09-23 10:37:23 +0800831
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800832 Proto("XGL_RESULT", "WsiX11QueuePresent",
Chia-I Wue442dc32015-01-01 09:31:15 +0800833 [Param("XGL_QUEUE", "queue"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800834 Param("const XGL_WSI_X11_PRESENT_INFO*", "pPresentInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800835 Param("XGL_FENCE", "fence")]),
836 ],
Chia-I Wu6dee8b82014-09-23 10:37:23 +0800837)
838
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800839extensions = [core, wsi_x11]
840
841headers = []
Chia-I Wue86d8ab2015-01-04 14:46:22 +0800842objects = []
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800843protos = []
844for ext in extensions:
845 headers.extend(ext.headers)
Chia-I Wue86d8ab2015-01-04 14:46:22 +0800846 objects.extend(ext.objects)
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800847 protos.extend(ext.protos)
Chia-I Wu6dee8b82014-09-23 10:37:23 +0800848
Chia-I Wu9a4ceb12015-01-01 14:45:58 +0800849proto_names = [proto.name for proto in protos]
Chia-I Wu900a2572014-08-01 14:44:16 +0800850
Jon Ashburne05c8c62014-12-03 14:30:48 -0700851def does_function_create_object(name):
852 return name in (
853 "CreateDevice",
854 "GetDeviceQueue",
855 "AllocMemory",
856 "PinSystemMemory",
857 "OpenSharedMemory",
858 "OpenSharedQueueSemaphore",
859 "OpenPeerMemory",
860 "OpenPeerImage",
861 "CreateFence",
862 "CreateQueueSemaphore",
863 "CreateEvent",
864 "CreateQueryPool",
865 "CreateImage",
866 "CreateImageView",
867 "CreateColorAttachmentView",
868 "CreateDepthStencilView",
869 "CreateShader",
870 "CreateGraphicsPipeline",
871 "CreateComputePipeline",
872 "LoadPipeline",
873 "CreatePipelineDelta",
874 "CreateSampler",
875 "CreateDescriptorSet",
876 "CreateViewportState",
877 "CreateRasterState",
878 "CreateMsaaState",
879 "CreateColorBlendState",
880 "CreateDepthStencilState",
881 "CreateCommandBuffer",
882 "WsiX11CreatePresentableImage")
883
Jon Ashburnd38bfb12014-10-14 19:15:22 -0600884def is_name_dispatchable(name):
885 return name not in (
886 "GetProcAddr",
887 "InitAndEnumerateGpus",
Jon Ashburnf7bcf9b2014-10-15 15:30:23 -0600888 "EnumerateLayers",
Jon Ashburnd38bfb12014-10-14 19:15:22 -0600889 "DbgRegisterMsgCallback",
890 "DbgUnregisterMsgCallback",
891 "DbgSetGlobalOption")
892
Chia-I Wu900a2572014-08-01 14:44:16 +0800893def is_dispatchable(proto):
894 """Return true if the prototype is dispatchable.
895
896 That is, return true when the prototype takes a XGL_PHYSICAL_GPU or
897 XGL_BASE_OBJECT.
898 """
Jon Ashburnd38bfb12014-10-14 19:15:22 -0600899 return is_name_dispatchable(proto.name)
Chia-I Wu509a4122015-01-04 14:08:46 +0800900
901def parse_xgl_h(filename):
902 # read object and protoype typedefs
903 object_lines = []
904 proto_lines = []
905 with open(filename, "r") as fp:
906 for line in fp:
907 line = line.strip()
908 if line.startswith("XGL_DEFINE"):
909 begin = line.find("(") + 1
910 end = line.find(",")
911 # extract the object type
912 object_lines.append(line[begin:end])
913 if line.startswith("typedef") and line.endswith(");"):
914 # drop leading "typedef " and trailing ");"
915 proto_lines.append(line[8:-2])
916
917 # parse proto_lines to protos
918 protos = []
919 for line in proto_lines:
920 first, rest = line.split(" (XGLAPI *")
921 second, third = rest.split("Type)(")
922
923 # get the return type, no space before "*"
924 proto_ret = "*".join([t.rstrip() for t in first.split("*")])
925
926 # get the name
927 proto_name = second.strip()
928
929 # get the list of params
930 param_strs = third.split(", ")
931 params = []
932 for s in param_strs:
933 ty, name = s.rsplit(" ", 1)
934
935 # no space before "*"
936 ty = "*".join([t.rstrip() for t in ty.split("*")])
937 # attach [] to ty
938 idx = name.rfind("[")
939 if idx >= 0:
940 ty += name[idx:]
941 name = name[:idx]
942
943 params.append(Param(ty, name))
944
945 protos.append(Proto(proto_ret, proto_name, params))
946
947 # make them an extension and print
948 ext = Extension("XGL_CORE",
949 headers=["xgl.h", "xglDbg.h"],
950 objects=object_lines,
951 protos=protos)
952 print("core =", str(ext))
953
954 print("")
955 print("typedef struct _XGL_LAYER_DISPATCH_TABLE")
956 print("{")
957 for proto in ext.protos:
958 print(" %sType %s;" % (proto.name, proto.name))
959 print("} XGL_LAYER_DISPATCH_TABLE;")
960
961if __name__ == "__main__":
962 parse_xgl_h("include/xgl.h")