blob: 872261128916e3fcce9acf15aadad8029f893510 [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
40class Proto(object):
41 """A function prototype."""
42
Chia-I Wue442dc32015-01-01 09:31:15 +080043 def __init__(self, ret, name, params=[]):
Chia-I Wufb2559d2014-08-01 11:19:52 +080044 # the proto has only a param
Chia-I Wue442dc32015-01-01 09:31:15 +080045 if not isinstance(params, list):
46 params = [params]
Chia-I Wufb2559d2014-08-01 11:19:52 +080047
48 self.ret = ret
49 self.name = name
50 self.params = params
51
52 def c_params(self, need_type=True, need_name=True):
53 """Return the parameter list in C."""
54 if self.params and (need_type or need_name):
55 if need_type and need_name:
56 return ", ".join([param.c() for param in self.params])
57 elif need_type:
58 return ", ".join([param.ty for param in self.params])
59 else:
60 return ", ".join([param.name for param in self.params])
61 else:
62 return "void" if need_type else ""
63
64 def c_decl(self, name, attr="", typed=False, need_param_names=True):
65 """Return a named declaration in C."""
66 format_vals = (self.ret,
67 attr + " " if attr else "",
68 name,
69 self.c_params(need_name=need_param_names))
70
71 if typed:
72 return "%s (%s*%s)(%s)" % format_vals
73 else:
74 return "%s %s%s(%s)" % format_vals
75
Chia-I Wuaf3b5552015-01-04 12:00:01 +080076 def c_pretty_decl(self, name, attr=""):
77 """Return a named declaration in C, with xgl.h formatting."""
78 plist = []
79 for param in self.params:
80 idx = param.ty.find("[")
81 if idx < 0:
82 idx = len(param.ty)
83
84 pad = 44 - idx
85 if pad <= 0:
86 pad = 1
87
88 plist.append(" %s%s%s%s" % (param.ty[:idx],
89 " " * pad, param.name, param.ty[idx:]))
90
91 return "%s %s%s(\n%s)" % (self.ret,
92 attr + " " if attr else "",
93 name,
94 ",\n".join(plist))
95
Chia-I Wufb2559d2014-08-01 11:19:52 +080096 def c_typedef(self, suffix="", attr=""):
97 """Return the typedef for the prototype in C."""
98 return self.c_decl(self.name + suffix, attr=attr, typed=True)
99
100 def c_func(self, prefix="", attr=""):
101 """Return the prototype in C."""
102 return self.c_decl(prefix + self.name, attr=attr, typed=False)
103
104 def c_call(self):
105 """Return a call to the prototype in C."""
106 return "%s(%s)" % (self.name, self.c_params(need_type=False))
107
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800108class Extension(object):
109 def __init__(self, name, headers, protos):
110 self.name = name
111 self.headers = headers
112 self.protos = protos
113
Chia-I Wufb2559d2014-08-01 11:19:52 +0800114# XGL core API
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800115core = Extension(
116 name="XGL_CORE",
Chia-I Wue442dc32015-01-01 09:31:15 +0800117 headers=["xgl.h", "xglDbg.h"],
118 protos=[
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800119 Proto("XGL_VOID *", "GetProcAddr",
Chia-I Wue442dc32015-01-01 09:31:15 +0800120 [Param("XGL_PHYSICAL_GPU", "gpu"),
121 Param("const XGL_CHAR*", "pName")]),
Jon Ashburnd38bfb12014-10-14 19:15:22 -0600122
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800123 Proto("XGL_RESULT", "InitAndEnumerateGpus",
Chia-I Wue442dc32015-01-01 09:31:15 +0800124 [Param("const XGL_APPLICATION_INFO*", "pAppInfo"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800125 Param("const XGL_ALLOC_CALLBACKS*", "pAllocCb"),
126 Param("XGL_UINT", "maxGpus"),
127 Param("XGL_UINT*", "pGpuCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800128 Param("XGL_PHYSICAL_GPU*", "pGpus")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800129
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800130 Proto("XGL_RESULT", "GetGpuInfo",
Chia-I Wue442dc32015-01-01 09:31:15 +0800131 [Param("XGL_PHYSICAL_GPU", "gpu"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800132 Param("XGL_PHYSICAL_GPU_INFO_TYPE", "infoType"),
133 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800134 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800135
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800136 Proto("XGL_RESULT", "CreateDevice",
Chia-I Wue442dc32015-01-01 09:31:15 +0800137 [Param("XGL_PHYSICAL_GPU", "gpu"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800138 Param("const XGL_DEVICE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800139 Param("XGL_DEVICE*", "pDevice")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800140
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800141 Proto("XGL_RESULT", "DestroyDevice",
Chia-I Wue442dc32015-01-01 09:31:15 +0800142 [Param("XGL_DEVICE", "device")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800143
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800144 Proto("XGL_RESULT", "GetExtensionSupport",
Chia-I Wue442dc32015-01-01 09:31:15 +0800145 [Param("XGL_PHYSICAL_GPU", "gpu"),
146 Param("const XGL_CHAR*", "pExtName")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800147
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800148 Proto("XGL_RESULT", "EnumerateLayers",
Chia-I Wue442dc32015-01-01 09:31:15 +0800149 [Param("XGL_PHYSICAL_GPU", "gpu"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800150 Param("XGL_SIZE", "maxLayerCount"),
151 Param("XGL_SIZE", "maxStringSize"),
152 Param("XGL_CHAR* const*", "pOutLayers"),
153 Param("XGL_SIZE *", "pOutLayerCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800154 Param("XGL_VOID *", "pReserved")]),
Jon Ashburnf7bcf9b2014-10-15 15:30:23 -0600155
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800156 Proto("XGL_RESULT", "GetDeviceQueue",
Chia-I Wue442dc32015-01-01 09:31:15 +0800157 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800158 Param("XGL_QUEUE_TYPE", "queueType"),
159 Param("XGL_UINT", "queueIndex"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800160 Param("XGL_QUEUE*", "pQueue")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800161
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800162 Proto("XGL_RESULT", "QueueSubmit",
Chia-I Wue442dc32015-01-01 09:31:15 +0800163 [Param("XGL_QUEUE", "queue"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800164 Param("XGL_UINT", "cmdBufferCount"),
165 Param("const XGL_CMD_BUFFER*", "pCmdBuffers"),
166 Param("XGL_UINT", "memRefCount"),
167 Param("const XGL_MEMORY_REF*", "pMemRefs"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800168 Param("XGL_FENCE", "fence")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800169
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800170 Proto("XGL_RESULT", "QueueSetGlobalMemReferences",
Chia-I Wue442dc32015-01-01 09:31:15 +0800171 [Param("XGL_QUEUE", "queue"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800172 Param("XGL_UINT", "memRefCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800173 Param("const XGL_MEMORY_REF*", "pMemRefs")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800174
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800175 Proto("XGL_RESULT", "QueueWaitIdle",
Chia-I Wue442dc32015-01-01 09:31:15 +0800176 [Param("XGL_QUEUE", "queue")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800177
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800178 Proto("XGL_RESULT", "DeviceWaitIdle",
Chia-I Wue442dc32015-01-01 09:31:15 +0800179 [Param("XGL_DEVICE", "device")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800180
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800181 Proto("XGL_RESULT", "GetMemoryHeapCount",
Chia-I Wue442dc32015-01-01 09:31:15 +0800182 [Param("XGL_DEVICE", "device"),
183 Param("XGL_UINT*", "pCount")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800184
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800185 Proto("XGL_RESULT", "GetMemoryHeapInfo",
Chia-I Wue442dc32015-01-01 09:31:15 +0800186 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800187 Param("XGL_UINT", "heapId"),
188 Param("XGL_MEMORY_HEAP_INFO_TYPE", "infoType"),
189 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800190 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800191
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800192 Proto("XGL_RESULT", "AllocMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800193 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800194 Param("const XGL_MEMORY_ALLOC_INFO*", "pAllocInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800195 Param("XGL_GPU_MEMORY*", "pMem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800196
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800197 Proto("XGL_RESULT", "FreeMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800198 [Param("XGL_GPU_MEMORY", "mem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800199
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800200 Proto("XGL_RESULT", "SetMemoryPriority",
Chia-I Wue442dc32015-01-01 09:31:15 +0800201 [Param("XGL_GPU_MEMORY", "mem"),
202 Param("XGL_MEMORY_PRIORITY", "priority")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800203
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800204 Proto("XGL_RESULT", "MapMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800205 [Param("XGL_GPU_MEMORY", "mem"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800206 Param("XGL_FLAGS", "flags"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800207 Param("XGL_VOID**", "ppData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800208
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800209 Proto("XGL_RESULT", "UnmapMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800210 [Param("XGL_GPU_MEMORY", "mem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800211
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800212 Proto("XGL_RESULT", "PinSystemMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800213 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800214 Param("const XGL_VOID*", "pSysMem"),
215 Param("XGL_SIZE", "memSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800216 Param("XGL_GPU_MEMORY*", "pMem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800217
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800218 Proto("XGL_RESULT", "RemapVirtualMemoryPages",
Chia-I Wue442dc32015-01-01 09:31:15 +0800219 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800220 Param("XGL_UINT", "rangeCount"),
221 Param("const XGL_VIRTUAL_MEMORY_REMAP_RANGE*", "pRanges"),
222 Param("XGL_UINT", "preWaitSemaphoreCount"),
223 Param("const XGL_QUEUE_SEMAPHORE*", "pPreWaitSemaphores"),
224 Param("XGL_UINT", "postSignalSemaphoreCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800225 Param("const XGL_QUEUE_SEMAPHORE*", "pPostSignalSemaphores")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800226
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800227 Proto("XGL_RESULT", "GetMultiGpuCompatibility",
Chia-I Wue442dc32015-01-01 09:31:15 +0800228 [Param("XGL_PHYSICAL_GPU", "gpu0"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800229 Param("XGL_PHYSICAL_GPU", "gpu1"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800230 Param("XGL_GPU_COMPATIBILITY_INFO*", "pInfo")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800231
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800232 Proto("XGL_RESULT", "OpenSharedMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800233 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800234 Param("const XGL_MEMORY_OPEN_INFO*", "pOpenInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800235 Param("XGL_GPU_MEMORY*", "pMem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800236
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800237 Proto("XGL_RESULT", "OpenSharedQueueSemaphore",
Chia-I Wue442dc32015-01-01 09:31:15 +0800238 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800239 Param("const XGL_QUEUE_SEMAPHORE_OPEN_INFO*", "pOpenInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800240 Param("XGL_QUEUE_SEMAPHORE*", "pSemaphore")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800241
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800242 Proto("XGL_RESULT", "OpenPeerMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800243 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800244 Param("const XGL_PEER_MEMORY_OPEN_INFO*", "pOpenInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800245 Param("XGL_GPU_MEMORY*", "pMem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800246
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800247 Proto("XGL_RESULT", "OpenPeerImage",
Chia-I Wue442dc32015-01-01 09:31:15 +0800248 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800249 Param("const XGL_PEER_IMAGE_OPEN_INFO*", "pOpenInfo"),
250 Param("XGL_IMAGE*", "pImage"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800251 Param("XGL_GPU_MEMORY*", "pMem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800252
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800253 Proto("XGL_RESULT", "DestroyObject",
Chia-I Wue442dc32015-01-01 09:31:15 +0800254 [Param("XGL_OBJECT", "object")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800255
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800256 Proto("XGL_RESULT", "GetObjectInfo",
Chia-I Wue442dc32015-01-01 09:31:15 +0800257 [Param("XGL_BASE_OBJECT", "object"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800258 Param("XGL_OBJECT_INFO_TYPE", "infoType"),
259 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800260 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800261
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800262 Proto("XGL_RESULT", "BindObjectMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800263 [Param("XGL_OBJECT", "object"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800264 Param("XGL_GPU_MEMORY", "mem"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800265 Param("XGL_GPU_SIZE", "offset")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800266
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800267 Proto("XGL_RESULT", "CreateFence",
Chia-I Wue442dc32015-01-01 09:31:15 +0800268 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800269 Param("const XGL_FENCE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800270 Param("XGL_FENCE*", "pFence")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800271
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800272 Proto("XGL_RESULT", "GetFenceStatus",
Chia-I Wue442dc32015-01-01 09:31:15 +0800273 [Param("XGL_FENCE", "fence")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800274
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800275 Proto("XGL_RESULT", "WaitForFences",
Chia-I Wue442dc32015-01-01 09:31:15 +0800276 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800277 Param("XGL_UINT", "fenceCount"),
278 Param("const XGL_FENCE*", "pFences"),
279 Param("XGL_BOOL", "waitAll"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800280 Param("XGL_UINT64", "timeout")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800281
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800282 Proto("XGL_RESULT", "CreateQueueSemaphore",
Chia-I Wue442dc32015-01-01 09:31:15 +0800283 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800284 Param("const XGL_QUEUE_SEMAPHORE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800285 Param("XGL_QUEUE_SEMAPHORE*", "pSemaphore")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800286
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800287 Proto("XGL_RESULT", "SignalQueueSemaphore",
Chia-I Wue442dc32015-01-01 09:31:15 +0800288 [Param("XGL_QUEUE", "queue"),
289 Param("XGL_QUEUE_SEMAPHORE", "semaphore")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800290
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800291 Proto("XGL_RESULT", "WaitQueueSemaphore",
Chia-I Wue442dc32015-01-01 09:31:15 +0800292 [Param("XGL_QUEUE", "queue"),
293 Param("XGL_QUEUE_SEMAPHORE", "semaphore")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800294
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800295 Proto("XGL_RESULT", "CreateEvent",
Chia-I Wue442dc32015-01-01 09:31:15 +0800296 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800297 Param("const XGL_EVENT_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800298 Param("XGL_EVENT*", "pEvent")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800299
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800300 Proto("XGL_RESULT", "GetEventStatus",
Chia-I Wue442dc32015-01-01 09:31:15 +0800301 [Param("XGL_EVENT", "event")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800302
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800303 Proto("XGL_RESULT", "SetEvent",
Chia-I Wue442dc32015-01-01 09:31:15 +0800304 [Param("XGL_EVENT", "event")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800305
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800306 Proto("XGL_RESULT", "ResetEvent",
Chia-I Wue442dc32015-01-01 09:31:15 +0800307 [Param("XGL_EVENT", "event")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800308
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800309 Proto("XGL_RESULT", "CreateQueryPool",
Chia-I Wue442dc32015-01-01 09:31:15 +0800310 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800311 Param("const XGL_QUERY_POOL_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800312 Param("XGL_QUERY_POOL*", "pQueryPool")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800313
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800314 Proto("XGL_RESULT", "GetQueryPoolResults",
Chia-I Wue442dc32015-01-01 09:31:15 +0800315 [Param("XGL_QUERY_POOL", "queryPool"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800316 Param("XGL_UINT", "startQuery"),
317 Param("XGL_UINT", "queryCount"),
318 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800319 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800320
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800321 Proto("XGL_RESULT", "GetFormatInfo",
Chia-I Wue442dc32015-01-01 09:31:15 +0800322 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800323 Param("XGL_FORMAT", "format"),
324 Param("XGL_FORMAT_INFO_TYPE", "infoType"),
325 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800326 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800327
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800328 Proto("XGL_RESULT", "CreateImage",
Chia-I Wue442dc32015-01-01 09:31:15 +0800329 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800330 Param("const XGL_IMAGE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800331 Param("XGL_IMAGE*", "pImage")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800332
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800333 Proto("XGL_RESULT", "GetImageSubresourceInfo",
Chia-I Wue442dc32015-01-01 09:31:15 +0800334 [Param("XGL_IMAGE", "image"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800335 Param("const XGL_IMAGE_SUBRESOURCE*", "pSubresource"),
336 Param("XGL_SUBRESOURCE_INFO_TYPE", "infoType"),
337 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800338 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800339
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800340 Proto("XGL_RESULT", "CreateImageView",
Chia-I Wue442dc32015-01-01 09:31:15 +0800341 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800342 Param("const XGL_IMAGE_VIEW_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800343 Param("XGL_IMAGE_VIEW*", "pView")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800344
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800345 Proto("XGL_RESULT", "CreateColorAttachmentView",
Chia-I Wue442dc32015-01-01 09:31:15 +0800346 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800347 Param("const XGL_COLOR_ATTACHMENT_VIEW_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800348 Param("XGL_COLOR_ATTACHMENT_VIEW*", "pView")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800349
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800350 Proto("XGL_RESULT", "CreateDepthStencilView",
Chia-I Wue442dc32015-01-01 09:31:15 +0800351 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800352 Param("const XGL_DEPTH_STENCIL_VIEW_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800353 Param("XGL_DEPTH_STENCIL_VIEW*", "pView")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800354
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800355 Proto("XGL_RESULT", "CreateShader",
Chia-I Wue442dc32015-01-01 09:31:15 +0800356 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800357 Param("const XGL_SHADER_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800358 Param("XGL_SHADER*", "pShader")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800359
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800360 Proto("XGL_RESULT", "CreateGraphicsPipeline",
Chia-I Wue442dc32015-01-01 09:31:15 +0800361 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800362 Param("const XGL_GRAPHICS_PIPELINE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800363 Param("XGL_PIPELINE*", "pPipeline")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800364
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800365 Proto("XGL_RESULT", "CreateComputePipeline",
Chia-I Wue442dc32015-01-01 09:31:15 +0800366 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800367 Param("const XGL_COMPUTE_PIPELINE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800368 Param("XGL_PIPELINE*", "pPipeline")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800369
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800370 Proto("XGL_RESULT", "StorePipeline",
Chia-I Wue442dc32015-01-01 09:31:15 +0800371 [Param("XGL_PIPELINE", "pipeline"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800372 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800373 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800374
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800375 Proto("XGL_RESULT", "LoadPipeline",
Chia-I Wue442dc32015-01-01 09:31:15 +0800376 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800377 Param("XGL_SIZE", "dataSize"),
378 Param("const XGL_VOID*", "pData"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800379 Param("XGL_PIPELINE*", "pPipeline")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800380
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800381 Proto("XGL_RESULT", "CreatePipelineDelta",
Chia-I Wue442dc32015-01-01 09:31:15 +0800382 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800383 Param("XGL_PIPELINE", "p1"),
384 Param("XGL_PIPELINE", "p2"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800385 Param("XGL_PIPELINE_DELTA*", "delta")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800386
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800387 Proto("XGL_RESULT", "CreateSampler",
Chia-I Wue442dc32015-01-01 09:31:15 +0800388 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800389 Param("const XGL_SAMPLER_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800390 Param("XGL_SAMPLER*", "pSampler")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800391
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800392 Proto("XGL_RESULT", "CreateDescriptorSet",
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_DESCRIPTOR_SET_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800395 Param("XGL_DESCRIPTOR_SET*", "pDescriptorSet")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800396
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800397 Proto("XGL_VOID", "BeginDescriptorSetUpdate",
Chia-I Wue442dc32015-01-01 09:31:15 +0800398 [Param("XGL_DESCRIPTOR_SET", "descriptorSet")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800399
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800400 Proto("XGL_VOID", "EndDescriptorSetUpdate",
Chia-I Wue442dc32015-01-01 09:31:15 +0800401 [Param("XGL_DESCRIPTOR_SET", "descriptorSet")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800402
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800403 Proto("XGL_VOID", "AttachSamplerDescriptors",
Chia-I Wue442dc32015-01-01 09:31:15 +0800404 [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800405 Param("XGL_UINT", "startSlot"),
406 Param("XGL_UINT", "slotCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800407 Param("const XGL_SAMPLER*", "pSamplers")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800408
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800409 Proto("XGL_VOID", "AttachImageViewDescriptors",
Chia-I Wue442dc32015-01-01 09:31:15 +0800410 [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800411 Param("XGL_UINT", "startSlot"),
412 Param("XGL_UINT", "slotCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800413 Param("const XGL_IMAGE_VIEW_ATTACH_INFO*", "pImageViews")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800414
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800415 Proto("XGL_VOID", "AttachMemoryViewDescriptors",
Chia-I Wue442dc32015-01-01 09:31:15 +0800416 [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800417 Param("XGL_UINT", "startSlot"),
418 Param("XGL_UINT", "slotCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800419 Param("const XGL_MEMORY_VIEW_ATTACH_INFO*", "pMemViews")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800420
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800421 Proto("XGL_VOID", "AttachNestedDescriptors",
Chia-I Wue442dc32015-01-01 09:31:15 +0800422 [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800423 Param("XGL_UINT", "startSlot"),
424 Param("XGL_UINT", "slotCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800425 Param("const XGL_DESCRIPTOR_SET_ATTACH_INFO*", "pNestedDescriptorSets")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800426
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800427 Proto("XGL_VOID", "ClearDescriptorSetSlots",
Chia-I Wue442dc32015-01-01 09:31:15 +0800428 [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800429 Param("XGL_UINT", "startSlot"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800430 Param("XGL_UINT", "slotCount")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800431
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800432 Proto("XGL_RESULT", "CreateViewportState",
Chia-I Wue442dc32015-01-01 09:31:15 +0800433 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800434 Param("const XGL_VIEWPORT_STATE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800435 Param("XGL_VIEWPORT_STATE_OBJECT*", "pState")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800436
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800437 Proto("XGL_RESULT", "CreateRasterState",
Chia-I Wue442dc32015-01-01 09:31:15 +0800438 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800439 Param("const XGL_RASTER_STATE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800440 Param("XGL_RASTER_STATE_OBJECT*", "pState")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800441
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800442 Proto("XGL_RESULT", "CreateMsaaState",
Chia-I Wue442dc32015-01-01 09:31:15 +0800443 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800444 Param("const XGL_MSAA_STATE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800445 Param("XGL_MSAA_STATE_OBJECT*", "pState")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800446
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800447 Proto("XGL_RESULT", "CreateColorBlendState",
Chia-I Wue442dc32015-01-01 09:31:15 +0800448 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800449 Param("const XGL_COLOR_BLEND_STATE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800450 Param("XGL_COLOR_BLEND_STATE_OBJECT*", "pState")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800451
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800452 Proto("XGL_RESULT", "CreateDepthStencilState",
Chia-I Wue442dc32015-01-01 09:31:15 +0800453 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800454 Param("const XGL_DEPTH_STENCIL_STATE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800455 Param("XGL_DEPTH_STENCIL_STATE_OBJECT*", "pState")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800456
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800457 Proto("XGL_RESULT", "CreateCommandBuffer",
Chia-I Wue442dc32015-01-01 09:31:15 +0800458 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800459 Param("const XGL_CMD_BUFFER_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800460 Param("XGL_CMD_BUFFER*", "pCmdBuffer")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800461
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800462 Proto("XGL_RESULT", "BeginCommandBuffer",
Chia-I Wue442dc32015-01-01 09:31:15 +0800463 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
464 Param("XGL_FLAGS", "flags")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800465
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800466 Proto("XGL_RESULT", "EndCommandBuffer",
Chia-I Wue442dc32015-01-01 09:31:15 +0800467 [Param("XGL_CMD_BUFFER", "cmdBuffer")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800468
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800469 Proto("XGL_RESULT", "ResetCommandBuffer",
Chia-I Wue442dc32015-01-01 09:31:15 +0800470 [Param("XGL_CMD_BUFFER", "cmdBuffer")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800471
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800472 Proto("XGL_VOID", "CmdBindPipeline",
Chia-I Wue442dc32015-01-01 09:31:15 +0800473 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800474 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800475 Param("XGL_PIPELINE", "pipeline")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800476
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800477 Proto("XGL_VOID", "CmdBindPipelineDelta",
Chia-I Wue442dc32015-01-01 09:31:15 +0800478 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800479 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800480 Param("XGL_PIPELINE_DELTA", "delta")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800481
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800482 Proto("XGL_VOID", "CmdBindStateObject",
Chia-I Wue442dc32015-01-01 09:31:15 +0800483 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800484 Param("XGL_STATE_BIND_POINT", "stateBindPoint"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800485 Param("XGL_STATE_OBJECT", "state")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800486
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800487 Proto("XGL_VOID", "CmdBindDescriptorSet",
Chia-I Wue442dc32015-01-01 09:31:15 +0800488 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800489 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
490 Param("XGL_UINT", "index"),
491 Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800492 Param("XGL_UINT", "slotOffset")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800493
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800494 Proto("XGL_VOID", "CmdBindDynamicMemoryView",
Chia-I Wue442dc32015-01-01 09:31:15 +0800495 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800496 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800497 Param("const XGL_MEMORY_VIEW_ATTACH_INFO*", "pMemView")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800498
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800499 Proto("XGL_VOID", "CmdBindVertexData",
Chia-I Wue442dc32015-01-01 09:31:15 +0800500 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800501 Param("XGL_GPU_MEMORY", "mem"),
502 Param("XGL_GPU_SIZE", "offset"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800503 Param("XGL_UINT", "binding")]),
Chia-I Wu7a42e122014-11-08 10:48:20 +0800504
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800505 Proto("XGL_VOID", "CmdBindIndexData",
Chia-I Wue442dc32015-01-01 09:31:15 +0800506 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800507 Param("XGL_GPU_MEMORY", "mem"),
508 Param("XGL_GPU_SIZE", "offset"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800509 Param("XGL_INDEX_TYPE", "indexType")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800510
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800511 Proto("XGL_VOID", "CmdBindAttachments",
Chia-I Wue442dc32015-01-01 09:31:15 +0800512 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800513 Param("XGL_UINT", "colorAttachmentCount"),
514 Param("const XGL_COLOR_ATTACHMENT_BIND_INFO*", "pColorAttachments"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800515 Param("const XGL_DEPTH_STENCIL_BIND_INFO*", "pDepthStencilAttachment")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800516
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800517 Proto("XGL_VOID", "CmdPrepareMemoryRegions",
Chia-I Wue442dc32015-01-01 09:31:15 +0800518 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800519 Param("XGL_UINT", "transitionCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800520 Param("const XGL_MEMORY_STATE_TRANSITION*", "pStateTransitions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800521
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800522 Proto("XGL_VOID", "CmdPrepareImages",
Chia-I Wue442dc32015-01-01 09:31:15 +0800523 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800524 Param("XGL_UINT", "transitionCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800525 Param("const XGL_IMAGE_STATE_TRANSITION*", "pStateTransitions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800526
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800527 Proto("XGL_VOID", "CmdDraw",
Chia-I Wue442dc32015-01-01 09:31:15 +0800528 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800529 Param("XGL_UINT", "firstVertex"),
530 Param("XGL_UINT", "vertexCount"),
531 Param("XGL_UINT", "firstInstance"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800532 Param("XGL_UINT", "instanceCount")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800533
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800534 Proto("XGL_VOID", "CmdDrawIndexed",
Chia-I Wue442dc32015-01-01 09:31:15 +0800535 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800536 Param("XGL_UINT", "firstIndex"),
537 Param("XGL_UINT", "indexCount"),
538 Param("XGL_INT", "vertexOffset"),
539 Param("XGL_UINT", "firstInstance"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800540 Param("XGL_UINT", "instanceCount")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800541
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800542 Proto("XGL_VOID", "CmdDrawIndirect",
Chia-I Wue442dc32015-01-01 09:31:15 +0800543 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800544 Param("XGL_GPU_MEMORY", "mem"),
545 Param("XGL_GPU_SIZE", "offset"),
546 Param("XGL_UINT32", "count"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800547 Param("XGL_UINT32", "stride")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800548
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800549 Proto("XGL_VOID", "CmdDrawIndexedIndirect",
Chia-I Wue442dc32015-01-01 09:31:15 +0800550 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800551 Param("XGL_GPU_MEMORY", "mem"),
552 Param("XGL_GPU_SIZE", "offset"),
553 Param("XGL_UINT32", "count"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800554 Param("XGL_UINT32", "stride")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800555
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800556 Proto("XGL_VOID", "CmdDispatch",
Chia-I Wue442dc32015-01-01 09:31:15 +0800557 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800558 Param("XGL_UINT", "x"),
559 Param("XGL_UINT", "y"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800560 Param("XGL_UINT", "z")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800561
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800562 Proto("XGL_VOID", "CmdDispatchIndirect",
Chia-I Wue442dc32015-01-01 09:31:15 +0800563 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800564 Param("XGL_GPU_MEMORY", "mem"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800565 Param("XGL_GPU_SIZE", "offset")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800566
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800567 Proto("XGL_VOID", "CmdCopyMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800568 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800569 Param("XGL_GPU_MEMORY", "srcMem"),
570 Param("XGL_GPU_MEMORY", "destMem"),
571 Param("XGL_UINT", "regionCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800572 Param("const XGL_MEMORY_COPY*", "pRegions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800573
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800574 Proto("XGL_VOID", "CmdCopyImage",
Chia-I Wue442dc32015-01-01 09:31:15 +0800575 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800576 Param("XGL_IMAGE", "srcImage"),
577 Param("XGL_IMAGE", "destImage"),
578 Param("XGL_UINT", "regionCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800579 Param("const XGL_IMAGE_COPY*", "pRegions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800580
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800581 Proto("XGL_VOID", "CmdCopyMemoryToImage",
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_GPU_MEMORY", "srcMem"),
584 Param("XGL_IMAGE", "destImage"),
585 Param("XGL_UINT", "regionCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800586 Param("const XGL_MEMORY_IMAGE_COPY*", "pRegions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800587
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800588 Proto("XGL_VOID", "CmdCopyImageToMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800589 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800590 Param("XGL_IMAGE", "srcImage"),
591 Param("XGL_GPU_MEMORY", "destMem"),
592 Param("XGL_UINT", "regionCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800593 Param("const XGL_MEMORY_IMAGE_COPY*", "pRegions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800594
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800595 Proto("XGL_VOID", "CmdCloneImageData",
Chia-I Wue442dc32015-01-01 09:31:15 +0800596 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800597 Param("XGL_IMAGE", "srcImage"),
598 Param("XGL_IMAGE_STATE", "srcImageState"),
599 Param("XGL_IMAGE", "destImage"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800600 Param("XGL_IMAGE_STATE", "destImageState")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800601
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800602 Proto("XGL_VOID", "CmdUpdateMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800603 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800604 Param("XGL_GPU_MEMORY", "destMem"),
605 Param("XGL_GPU_SIZE", "destOffset"),
606 Param("XGL_GPU_SIZE", "dataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800607 Param("const XGL_UINT32*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800608
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800609 Proto("XGL_VOID", "CmdFillMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800610 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800611 Param("XGL_GPU_MEMORY", "destMem"),
612 Param("XGL_GPU_SIZE", "destOffset"),
613 Param("XGL_GPU_SIZE", "fillSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800614 Param("XGL_UINT32", "data")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800615
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800616 Proto("XGL_VOID", "CmdClearColorImage",
Chia-I Wue442dc32015-01-01 09:31:15 +0800617 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800618 Param("XGL_IMAGE", "image"),
619 Param("const XGL_FLOAT[4]", "color"),
620 Param("XGL_UINT", "rangeCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800621 Param("const XGL_IMAGE_SUBRESOURCE_RANGE*", "pRanges")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800622
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800623 Proto("XGL_VOID", "CmdClearColorImageRaw",
Chia-I Wue442dc32015-01-01 09:31:15 +0800624 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800625 Param("XGL_IMAGE", "image"),
626 Param("const XGL_UINT32[4]", "color"),
627 Param("XGL_UINT", "rangeCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800628 Param("const XGL_IMAGE_SUBRESOURCE_RANGE*", "pRanges")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800629
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800630 Proto("XGL_VOID", "CmdClearDepthStencil",
Chia-I Wue442dc32015-01-01 09:31:15 +0800631 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800632 Param("XGL_IMAGE", "image"),
633 Param("XGL_FLOAT", "depth"),
634 Param("XGL_UINT32", "stencil"),
635 Param("XGL_UINT", "rangeCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800636 Param("const XGL_IMAGE_SUBRESOURCE_RANGE*", "pRanges")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800637
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800638 Proto("XGL_VOID", "CmdResolveImage",
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", "rectCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800643 Param("const XGL_IMAGE_RESOLVE*", "pRects")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800644
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800645 Proto("XGL_VOID", "CmdSetEvent",
Chia-I Wue442dc32015-01-01 09:31:15 +0800646 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
647 Param("XGL_EVENT", "event")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800648
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800649 Proto("XGL_VOID", "CmdResetEvent",
Chia-I Wue442dc32015-01-01 09:31:15 +0800650 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
651 Param("XGL_EVENT", "event")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800652
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800653 Proto("XGL_VOID", "CmdMemoryAtomic",
Chia-I Wue442dc32015-01-01 09:31:15 +0800654 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800655 Param("XGL_GPU_MEMORY", "destMem"),
656 Param("XGL_GPU_SIZE", "destOffset"),
657 Param("XGL_UINT64", "srcData"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800658 Param("XGL_ATOMIC_OP", "atomicOp")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800659
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800660 Proto("XGL_VOID", "CmdBeginQuery",
Chia-I Wue442dc32015-01-01 09:31:15 +0800661 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800662 Param("XGL_QUERY_POOL", "queryPool"),
663 Param("XGL_UINT", "slot"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800664 Param("XGL_FLAGS", "flags")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800665
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800666 Proto("XGL_VOID", "CmdEndQuery",
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_QUERY_POOL", "queryPool"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800669 Param("XGL_UINT", "slot")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800670
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800671 Proto("XGL_VOID", "CmdResetQueryPool",
Chia-I Wue442dc32015-01-01 09:31:15 +0800672 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800673 Param("XGL_QUERY_POOL", "queryPool"),
674 Param("XGL_UINT", "startQuery"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800675 Param("XGL_UINT", "queryCount")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800676
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800677 Proto("XGL_VOID", "CmdWriteTimestamp",
Chia-I Wue442dc32015-01-01 09:31:15 +0800678 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800679 Param("XGL_TIMESTAMP_TYPE", "timestampType"),
680 Param("XGL_GPU_MEMORY", "destMem"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800681 Param("XGL_GPU_SIZE", "destOffset")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800682
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800683 Proto("XGL_VOID", "CmdInitAtomicCounters",
Chia-I Wue442dc32015-01-01 09:31:15 +0800684 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800685 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
686 Param("XGL_UINT", "startCounter"),
687 Param("XGL_UINT", "counterCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800688 Param("const XGL_UINT32*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800689
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800690 Proto("XGL_VOID", "CmdLoadAtomicCounters",
Chia-I Wue442dc32015-01-01 09:31:15 +0800691 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800692 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
693 Param("XGL_UINT", "startCounter"),
694 Param("XGL_UINT", "counterCount"),
695 Param("XGL_GPU_MEMORY", "srcMem"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800696 Param("XGL_GPU_SIZE", "srcOffset")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800697
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800698 Proto("XGL_VOID", "CmdSaveAtomicCounters",
Chia-I Wue442dc32015-01-01 09:31:15 +0800699 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800700 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
701 Param("XGL_UINT", "startCounter"),
702 Param("XGL_UINT", "counterCount"),
703 Param("XGL_GPU_MEMORY", "destMem"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800704 Param("XGL_GPU_SIZE", "destOffset")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800705
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800706 Proto("XGL_RESULT", "DbgSetValidationLevel",
Chia-I Wue442dc32015-01-01 09:31:15 +0800707 [Param("XGL_DEVICE", "device"),
708 Param("XGL_VALIDATION_LEVEL", "validationLevel")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800709
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800710 Proto("XGL_RESULT", "DbgRegisterMsgCallback",
Chia-I Wue442dc32015-01-01 09:31:15 +0800711 [Param("XGL_DBG_MSG_CALLBACK_FUNCTION", "pfnMsgCallback"),
712 Param("XGL_VOID*", "pUserData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800713
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800714 Proto("XGL_RESULT", "DbgUnregisterMsgCallback",
Chia-I Wue442dc32015-01-01 09:31:15 +0800715 [Param("XGL_DBG_MSG_CALLBACK_FUNCTION", "pfnMsgCallback")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800716
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800717 Proto("XGL_RESULT", "DbgSetMessageFilter",
Chia-I Wue442dc32015-01-01 09:31:15 +0800718 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800719 Param("XGL_INT", "msgCode"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800720 Param("XGL_DBG_MSG_FILTER", "filter")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800721
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800722 Proto("XGL_RESULT", "DbgSetObjectTag",
Chia-I Wue442dc32015-01-01 09:31:15 +0800723 [Param("XGL_BASE_OBJECT", "object"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800724 Param("XGL_SIZE", "tagSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800725 Param("const XGL_VOID*", "pTag")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800726
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800727 Proto("XGL_RESULT", "DbgSetGlobalOption",
Chia-I Wue442dc32015-01-01 09:31:15 +0800728 [Param("XGL_DBG_GLOBAL_OPTION", "dbgOption"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800729 Param("XGL_SIZE", "dataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800730 Param("const XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800731
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800732 Proto("XGL_RESULT", "DbgSetDeviceOption",
Chia-I Wue442dc32015-01-01 09:31:15 +0800733 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800734 Param("XGL_DBG_DEVICE_OPTION", "dbgOption"),
735 Param("XGL_SIZE", "dataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800736 Param("const XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800737
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800738 Proto("XGL_VOID", "CmdDbgMarkerBegin",
Chia-I Wue442dc32015-01-01 09:31:15 +0800739 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
740 Param("const XGL_CHAR*", "pMarker")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800741
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800742 Proto("XGL_VOID", "CmdDbgMarkerEnd",
Chia-I Wue442dc32015-01-01 09:31:15 +0800743 [Param("XGL_CMD_BUFFER", "cmdBuffer")]),
744 ],
Chia-I Wufb2559d2014-08-01 11:19:52 +0800745)
746
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800747wsi_x11 = Extension(
748 name="XGL_WSI_X11",
Chia-I Wue442dc32015-01-01 09:31:15 +0800749 headers=["xglWsiX11Ext.h"],
750 protos=[
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800751 Proto("XGL_RESULT", "WsiX11AssociateConnection",
Chia-I Wue442dc32015-01-01 09:31:15 +0800752 [Param("XGL_PHYSICAL_GPU", "gpu"),
753 Param("const XGL_WSI_X11_CONNECTION_INFO*", "pConnectionInfo")]),
Chia-I Wu6bdf0192014-09-13 13:36:06 +0800754
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800755 Proto("XGL_RESULT", "WsiX11GetMSC",
Chia-I Wue442dc32015-01-01 09:31:15 +0800756 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800757 Param("xcb_window_t", "window"),
758 Param("xcb_randr_crtc_t", "crtc"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800759 Param("XGL_UINT64*", "pMsc")]),
Chia-I Wu6dee8b82014-09-23 10:37:23 +0800760
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800761 Proto("XGL_RESULT", "WsiX11CreatePresentableImage",
Chia-I Wue442dc32015-01-01 09:31:15 +0800762 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800763 Param("const XGL_WSI_X11_PRESENTABLE_IMAGE_CREATE_INFO*", "pCreateInfo"),
764 Param("XGL_IMAGE*", "pImage"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800765 Param("XGL_GPU_MEMORY*", "pMem")]),
Chia-I Wu6dee8b82014-09-23 10:37:23 +0800766
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800767 Proto("XGL_RESULT", "WsiX11QueuePresent",
Chia-I Wue442dc32015-01-01 09:31:15 +0800768 [Param("XGL_QUEUE", "queue"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800769 Param("const XGL_WSI_X11_PRESENT_INFO*", "pPresentInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800770 Param("XGL_FENCE", "fence")]),
771 ],
Chia-I Wu6dee8b82014-09-23 10:37:23 +0800772)
773
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800774extensions = [core, wsi_x11]
775
776headers = []
777protos = []
778for ext in extensions:
779 headers.extend(ext.headers)
780 protos.extend(ext.protos)
Chia-I Wu6dee8b82014-09-23 10:37:23 +0800781
Chia-I Wu9a4ceb12015-01-01 14:45:58 +0800782proto_names = [proto.name for proto in protos]
Chia-I Wu900a2572014-08-01 14:44:16 +0800783
Jon Ashburne05c8c62014-12-03 14:30:48 -0700784def does_function_create_object(name):
785 return name in (
786 "CreateDevice",
787 "GetDeviceQueue",
788 "AllocMemory",
789 "PinSystemMemory",
790 "OpenSharedMemory",
791 "OpenSharedQueueSemaphore",
792 "OpenPeerMemory",
793 "OpenPeerImage",
794 "CreateFence",
795 "CreateQueueSemaphore",
796 "CreateEvent",
797 "CreateQueryPool",
798 "CreateImage",
799 "CreateImageView",
800 "CreateColorAttachmentView",
801 "CreateDepthStencilView",
802 "CreateShader",
803 "CreateGraphicsPipeline",
804 "CreateComputePipeline",
805 "LoadPipeline",
806 "CreatePipelineDelta",
807 "CreateSampler",
808 "CreateDescriptorSet",
809 "CreateViewportState",
810 "CreateRasterState",
811 "CreateMsaaState",
812 "CreateColorBlendState",
813 "CreateDepthStencilState",
814 "CreateCommandBuffer",
815 "WsiX11CreatePresentableImage")
816
Jon Ashburnd38bfb12014-10-14 19:15:22 -0600817def is_name_dispatchable(name):
818 return name not in (
819 "GetProcAddr",
820 "InitAndEnumerateGpus",
Jon Ashburnf7bcf9b2014-10-15 15:30:23 -0600821 "EnumerateLayers",
Jon Ashburnd38bfb12014-10-14 19:15:22 -0600822 "DbgRegisterMsgCallback",
823 "DbgUnregisterMsgCallback",
824 "DbgSetGlobalOption")
825
Chia-I Wu900a2572014-08-01 14:44:16 +0800826def is_dispatchable(proto):
827 """Return true if the prototype is dispatchable.
828
829 That is, return true when the prototype takes a XGL_PHYSICAL_GPU or
830 XGL_BASE_OBJECT.
831 """
Jon Ashburnd38bfb12014-10-14 19:15:22 -0600832 return is_name_dispatchable(proto.name)