blob: 36d844483fb046ec1132b4461d97402d3cfed864 [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
76 def c_typedef(self, suffix="", attr=""):
77 """Return the typedef for the prototype in C."""
78 return self.c_decl(self.name + suffix, attr=attr, typed=True)
79
80 def c_func(self, prefix="", attr=""):
81 """Return the prototype in C."""
82 return self.c_decl(prefix + self.name, attr=attr, typed=False)
83
84 def c_call(self):
85 """Return a call to the prototype in C."""
86 return "%s(%s)" % (self.name, self.c_params(need_type=False))
87
Chia-I Wuc4f24e82015-01-01 08:46:31 +080088class Extension(object):
89 def __init__(self, name, headers, protos):
90 self.name = name
91 self.headers = headers
92 self.protos = protos
93
Chia-I Wufb2559d2014-08-01 11:19:52 +080094# XGL core API
Chia-I Wuc4f24e82015-01-01 08:46:31 +080095core = Extension(
96 name="XGL_CORE",
Chia-I Wue442dc32015-01-01 09:31:15 +080097 headers=["xgl.h", "xglDbg.h"],
98 protos=[
Chia-I Wuc4f24e82015-01-01 08:46:31 +080099 Proto("XGL_VOID *", "GetProcAddr",
Chia-I Wue442dc32015-01-01 09:31:15 +0800100 [Param("XGL_PHYSICAL_GPU", "gpu"),
101 Param("const XGL_CHAR*", "pName")]),
Jon Ashburnd38bfb12014-10-14 19:15:22 -0600102
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800103 Proto("XGL_RESULT", "InitAndEnumerateGpus",
Chia-I Wue442dc32015-01-01 09:31:15 +0800104 [Param("const XGL_APPLICATION_INFO*", "pAppInfo"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800105 Param("const XGL_ALLOC_CALLBACKS*", "pAllocCb"),
106 Param("XGL_UINT", "maxGpus"),
107 Param("XGL_UINT*", "pGpuCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800108 Param("XGL_PHYSICAL_GPU*", "pGpus")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800109
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800110 Proto("XGL_RESULT", "GetGpuInfo",
Chia-I Wue442dc32015-01-01 09:31:15 +0800111 [Param("XGL_PHYSICAL_GPU", "gpu"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800112 Param("XGL_PHYSICAL_GPU_INFO_TYPE", "infoType"),
113 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800114 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800115
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800116 Proto("XGL_RESULT", "CreateDevice",
Chia-I Wue442dc32015-01-01 09:31:15 +0800117 [Param("XGL_PHYSICAL_GPU", "gpu"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800118 Param("const XGL_DEVICE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800119 Param("XGL_DEVICE*", "pDevice")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800120
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800121 Proto("XGL_RESULT", "DestroyDevice",
Chia-I Wue442dc32015-01-01 09:31:15 +0800122 [Param("XGL_DEVICE", "device")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800123
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800124 Proto("XGL_RESULT", "GetExtensionSupport",
Chia-I Wue442dc32015-01-01 09:31:15 +0800125 [Param("XGL_PHYSICAL_GPU", "gpu"),
126 Param("const XGL_CHAR*", "pExtName")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800127
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800128 Proto("XGL_RESULT", "EnumerateLayers",
Chia-I Wue442dc32015-01-01 09:31:15 +0800129 [Param("XGL_PHYSICAL_GPU", "gpu"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800130 Param("XGL_SIZE", "maxLayerCount"),
131 Param("XGL_SIZE", "maxStringSize"),
132 Param("XGL_CHAR* const*", "pOutLayers"),
133 Param("XGL_SIZE *", "pOutLayerCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800134 Param("XGL_VOID *", "pReserved")]),
Jon Ashburnf7bcf9b2014-10-15 15:30:23 -0600135
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800136 Proto("XGL_RESULT", "GetDeviceQueue",
Chia-I Wue442dc32015-01-01 09:31:15 +0800137 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800138 Param("XGL_QUEUE_TYPE", "queueType"),
139 Param("XGL_UINT", "queueIndex"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800140 Param("XGL_QUEUE*", "pQueue")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800141
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800142 Proto("XGL_RESULT", "QueueSubmit",
Chia-I Wue442dc32015-01-01 09:31:15 +0800143 [Param("XGL_QUEUE", "queue"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800144 Param("XGL_UINT", "cmdBufferCount"),
145 Param("const XGL_CMD_BUFFER*", "pCmdBuffers"),
146 Param("XGL_UINT", "memRefCount"),
147 Param("const XGL_MEMORY_REF*", "pMemRefs"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800148 Param("XGL_FENCE", "fence")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800149
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800150 Proto("XGL_RESULT", "QueueSetGlobalMemReferences",
Chia-I Wue442dc32015-01-01 09:31:15 +0800151 [Param("XGL_QUEUE", "queue"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800152 Param("XGL_UINT", "memRefCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800153 Param("const XGL_MEMORY_REF*", "pMemRefs")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800154
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800155 Proto("XGL_RESULT", "QueueWaitIdle",
Chia-I Wue442dc32015-01-01 09:31:15 +0800156 [Param("XGL_QUEUE", "queue")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800157
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800158 Proto("XGL_RESULT", "DeviceWaitIdle",
Chia-I Wue442dc32015-01-01 09:31:15 +0800159 [Param("XGL_DEVICE", "device")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800160
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800161 Proto("XGL_RESULT", "GetMemoryHeapCount",
Chia-I Wue442dc32015-01-01 09:31:15 +0800162 [Param("XGL_DEVICE", "device"),
163 Param("XGL_UINT*", "pCount")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800164
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800165 Proto("XGL_RESULT", "GetMemoryHeapInfo",
Chia-I Wue442dc32015-01-01 09:31:15 +0800166 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800167 Param("XGL_UINT", "heapId"),
168 Param("XGL_MEMORY_HEAP_INFO_TYPE", "infoType"),
169 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800170 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800171
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800172 Proto("XGL_RESULT", "AllocMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800173 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800174 Param("const XGL_MEMORY_ALLOC_INFO*", "pAllocInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800175 Param("XGL_GPU_MEMORY*", "pMem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800176
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800177 Proto("XGL_RESULT", "FreeMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800178 [Param("XGL_GPU_MEMORY", "mem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800179
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800180 Proto("XGL_RESULT", "SetMemoryPriority",
Chia-I Wue442dc32015-01-01 09:31:15 +0800181 [Param("XGL_GPU_MEMORY", "mem"),
182 Param("XGL_MEMORY_PRIORITY", "priority")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800183
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800184 Proto("XGL_RESULT", "MapMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800185 [Param("XGL_GPU_MEMORY", "mem"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800186 Param("XGL_FLAGS", "flags"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800187 Param("XGL_VOID**", "ppData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800188
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800189 Proto("XGL_RESULT", "UnmapMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800190 [Param("XGL_GPU_MEMORY", "mem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800191
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800192 Proto("XGL_RESULT", "PinSystemMemory",
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_VOID*", "pSysMem"),
195 Param("XGL_SIZE", "memSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800196 Param("XGL_GPU_MEMORY*", "pMem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800197
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800198 Proto("XGL_RESULT", "RemapVirtualMemoryPages",
Chia-I Wue442dc32015-01-01 09:31:15 +0800199 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800200 Param("XGL_UINT", "rangeCount"),
201 Param("const XGL_VIRTUAL_MEMORY_REMAP_RANGE*", "pRanges"),
202 Param("XGL_UINT", "preWaitSemaphoreCount"),
203 Param("const XGL_QUEUE_SEMAPHORE*", "pPreWaitSemaphores"),
204 Param("XGL_UINT", "postSignalSemaphoreCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800205 Param("const XGL_QUEUE_SEMAPHORE*", "pPostSignalSemaphores")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800206
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800207 Proto("XGL_RESULT", "GetMultiGpuCompatibility",
Chia-I Wue442dc32015-01-01 09:31:15 +0800208 [Param("XGL_PHYSICAL_GPU", "gpu0"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800209 Param("XGL_PHYSICAL_GPU", "gpu1"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800210 Param("XGL_GPU_COMPATIBILITY_INFO*", "pInfo")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800211
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800212 Proto("XGL_RESULT", "OpenSharedMemory",
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_MEMORY_OPEN_INFO*", "pOpenInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800215 Param("XGL_GPU_MEMORY*", "pMem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800216
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800217 Proto("XGL_RESULT", "OpenSharedQueueSemaphore",
Chia-I Wue442dc32015-01-01 09:31:15 +0800218 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800219 Param("const XGL_QUEUE_SEMAPHORE_OPEN_INFO*", "pOpenInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800220 Param("XGL_QUEUE_SEMAPHORE*", "pSemaphore")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800221
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800222 Proto("XGL_RESULT", "OpenPeerMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800223 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800224 Param("const XGL_PEER_MEMORY_OPEN_INFO*", "pOpenInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800225 Param("XGL_GPU_MEMORY*", "pMem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800226
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800227 Proto("XGL_RESULT", "OpenPeerImage",
Chia-I Wue442dc32015-01-01 09:31:15 +0800228 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800229 Param("const XGL_PEER_IMAGE_OPEN_INFO*", "pOpenInfo"),
230 Param("XGL_IMAGE*", "pImage"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800231 Param("XGL_GPU_MEMORY*", "pMem")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800232
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800233 Proto("XGL_RESULT", "DestroyObject",
Chia-I Wue442dc32015-01-01 09:31:15 +0800234 [Param("XGL_OBJECT", "object")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800235
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800236 Proto("XGL_RESULT", "GetObjectInfo",
Chia-I Wue442dc32015-01-01 09:31:15 +0800237 [Param("XGL_BASE_OBJECT", "object"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800238 Param("XGL_OBJECT_INFO_TYPE", "infoType"),
239 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800240 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800241
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800242 Proto("XGL_RESULT", "BindObjectMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800243 [Param("XGL_OBJECT", "object"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800244 Param("XGL_GPU_MEMORY", "mem"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800245 Param("XGL_GPU_SIZE", "offset")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800246
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800247 Proto("XGL_RESULT", "CreateFence",
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_FENCE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800250 Param("XGL_FENCE*", "pFence")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800251
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800252 Proto("XGL_RESULT", "GetFenceStatus",
Chia-I Wue442dc32015-01-01 09:31:15 +0800253 [Param("XGL_FENCE", "fence")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800254
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800255 Proto("XGL_RESULT", "WaitForFences",
Chia-I Wue442dc32015-01-01 09:31:15 +0800256 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800257 Param("XGL_UINT", "fenceCount"),
258 Param("const XGL_FENCE*", "pFences"),
259 Param("XGL_BOOL", "waitAll"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800260 Param("XGL_UINT64", "timeout")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800261
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800262 Proto("XGL_RESULT", "CreateQueueSemaphore",
Chia-I Wue442dc32015-01-01 09:31:15 +0800263 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800264 Param("const XGL_QUEUE_SEMAPHORE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800265 Param("XGL_QUEUE_SEMAPHORE*", "pSemaphore")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800266
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800267 Proto("XGL_RESULT", "SignalQueueSemaphore",
Chia-I Wue442dc32015-01-01 09:31:15 +0800268 [Param("XGL_QUEUE", "queue"),
269 Param("XGL_QUEUE_SEMAPHORE", "semaphore")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800270
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800271 Proto("XGL_RESULT", "WaitQueueSemaphore",
Chia-I Wue442dc32015-01-01 09:31:15 +0800272 [Param("XGL_QUEUE", "queue"),
273 Param("XGL_QUEUE_SEMAPHORE", "semaphore")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800274
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800275 Proto("XGL_RESULT", "CreateEvent",
Chia-I Wue442dc32015-01-01 09:31:15 +0800276 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800277 Param("const XGL_EVENT_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800278 Param("XGL_EVENT*", "pEvent")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800279
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800280 Proto("XGL_RESULT", "GetEventStatus",
Chia-I Wue442dc32015-01-01 09:31:15 +0800281 [Param("XGL_EVENT", "event")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800282
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800283 Proto("XGL_RESULT", "SetEvent",
Chia-I Wue442dc32015-01-01 09:31:15 +0800284 [Param("XGL_EVENT", "event")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800285
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800286 Proto("XGL_RESULT", "ResetEvent",
Chia-I Wue442dc32015-01-01 09:31:15 +0800287 [Param("XGL_EVENT", "event")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800288
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800289 Proto("XGL_RESULT", "CreateQueryPool",
Chia-I Wue442dc32015-01-01 09:31:15 +0800290 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800291 Param("const XGL_QUERY_POOL_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800292 Param("XGL_QUERY_POOL*", "pQueryPool")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800293
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800294 Proto("XGL_RESULT", "GetQueryPoolResults",
Chia-I Wue442dc32015-01-01 09:31:15 +0800295 [Param("XGL_QUERY_POOL", "queryPool"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800296 Param("XGL_UINT", "startQuery"),
297 Param("XGL_UINT", "queryCount"),
298 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800299 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800300
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800301 Proto("XGL_RESULT", "GetFormatInfo",
Chia-I Wue442dc32015-01-01 09:31:15 +0800302 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800303 Param("XGL_FORMAT", "format"),
304 Param("XGL_FORMAT_INFO_TYPE", "infoType"),
305 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800306 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800307
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800308 Proto("XGL_RESULT", "CreateImage",
Chia-I Wue442dc32015-01-01 09:31:15 +0800309 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800310 Param("const XGL_IMAGE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800311 Param("XGL_IMAGE*", "pImage")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800312
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800313 Proto("XGL_RESULT", "GetImageSubresourceInfo",
Chia-I Wue442dc32015-01-01 09:31:15 +0800314 [Param("XGL_IMAGE", "image"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800315 Param("const XGL_IMAGE_SUBRESOURCE*", "pSubresource"),
316 Param("XGL_SUBRESOURCE_INFO_TYPE", "infoType"),
317 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800318 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800319
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800320 Proto("XGL_RESULT", "CreateImageView",
Chia-I Wue442dc32015-01-01 09:31:15 +0800321 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800322 Param("const XGL_IMAGE_VIEW_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800323 Param("XGL_IMAGE_VIEW*", "pView")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800324
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800325 Proto("XGL_RESULT", "CreateColorAttachmentView",
Chia-I Wue442dc32015-01-01 09:31:15 +0800326 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800327 Param("const XGL_COLOR_ATTACHMENT_VIEW_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800328 Param("XGL_COLOR_ATTACHMENT_VIEW*", "pView")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800329
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800330 Proto("XGL_RESULT", "CreateDepthStencilView",
Chia-I Wue442dc32015-01-01 09:31:15 +0800331 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800332 Param("const XGL_DEPTH_STENCIL_VIEW_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800333 Param("XGL_DEPTH_STENCIL_VIEW*", "pView")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800334
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800335 Proto("XGL_RESULT", "CreateShader",
Chia-I Wue442dc32015-01-01 09:31:15 +0800336 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800337 Param("const XGL_SHADER_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800338 Param("XGL_SHADER*", "pShader")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800339
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800340 Proto("XGL_RESULT", "CreateGraphicsPipeline",
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_GRAPHICS_PIPELINE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800343 Param("XGL_PIPELINE*", "pPipeline")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800344
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800345 Proto("XGL_RESULT", "CreateComputePipeline",
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_COMPUTE_PIPELINE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800348 Param("XGL_PIPELINE*", "pPipeline")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800349
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800350 Proto("XGL_RESULT", "StorePipeline",
Chia-I Wue442dc32015-01-01 09:31:15 +0800351 [Param("XGL_PIPELINE", "pipeline"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800352 Param("XGL_SIZE*", "pDataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800353 Param("XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800354
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800355 Proto("XGL_RESULT", "LoadPipeline",
Chia-I Wue442dc32015-01-01 09:31:15 +0800356 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800357 Param("XGL_SIZE", "dataSize"),
358 Param("const XGL_VOID*", "pData"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800359 Param("XGL_PIPELINE*", "pPipeline")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800360
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800361 Proto("XGL_RESULT", "CreatePipelineDelta",
Chia-I Wue442dc32015-01-01 09:31:15 +0800362 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800363 Param("XGL_PIPELINE", "p1"),
364 Param("XGL_PIPELINE", "p2"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800365 Param("XGL_PIPELINE_DELTA*", "delta")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800366
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800367 Proto("XGL_RESULT", "CreateSampler",
Chia-I Wue442dc32015-01-01 09:31:15 +0800368 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800369 Param("const XGL_SAMPLER_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800370 Param("XGL_SAMPLER*", "pSampler")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800371
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800372 Proto("XGL_RESULT", "CreateDescriptorSet",
Chia-I Wue442dc32015-01-01 09:31:15 +0800373 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800374 Param("const XGL_DESCRIPTOR_SET_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800375 Param("XGL_DESCRIPTOR_SET*", "pDescriptorSet")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800376
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800377 Proto("XGL_VOID", "BeginDescriptorSetUpdate",
Chia-I Wue442dc32015-01-01 09:31:15 +0800378 [Param("XGL_DESCRIPTOR_SET", "descriptorSet")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800379
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800380 Proto("XGL_VOID", "EndDescriptorSetUpdate",
Chia-I Wue442dc32015-01-01 09:31:15 +0800381 [Param("XGL_DESCRIPTOR_SET", "descriptorSet")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800382
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800383 Proto("XGL_VOID", "AttachSamplerDescriptors",
Chia-I Wue442dc32015-01-01 09:31:15 +0800384 [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800385 Param("XGL_UINT", "startSlot"),
386 Param("XGL_UINT", "slotCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800387 Param("const XGL_SAMPLER*", "pSamplers")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800388
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800389 Proto("XGL_VOID", "AttachImageViewDescriptors",
Chia-I Wue442dc32015-01-01 09:31:15 +0800390 [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800391 Param("XGL_UINT", "startSlot"),
392 Param("XGL_UINT", "slotCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800393 Param("const XGL_IMAGE_VIEW_ATTACH_INFO*", "pImageViews")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800394
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800395 Proto("XGL_VOID", "AttachMemoryViewDescriptors",
Chia-I Wue442dc32015-01-01 09:31:15 +0800396 [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800397 Param("XGL_UINT", "startSlot"),
398 Param("XGL_UINT", "slotCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800399 Param("const XGL_MEMORY_VIEW_ATTACH_INFO*", "pMemViews")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800400
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800401 Proto("XGL_VOID", "AttachNestedDescriptors",
Chia-I Wue442dc32015-01-01 09:31:15 +0800402 [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800403 Param("XGL_UINT", "startSlot"),
404 Param("XGL_UINT", "slotCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800405 Param("const XGL_DESCRIPTOR_SET_ATTACH_INFO*", "pNestedDescriptorSets")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800406
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800407 Proto("XGL_VOID", "ClearDescriptorSetSlots",
Chia-I Wue442dc32015-01-01 09:31:15 +0800408 [Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800409 Param("XGL_UINT", "startSlot"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800410 Param("XGL_UINT", "slotCount")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800411
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800412 Proto("XGL_RESULT", "CreateViewportState",
Chia-I Wue442dc32015-01-01 09:31:15 +0800413 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800414 Param("const XGL_VIEWPORT_STATE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800415 Param("XGL_VIEWPORT_STATE_OBJECT*", "pState")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800416
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800417 Proto("XGL_RESULT", "CreateRasterState",
Chia-I Wue442dc32015-01-01 09:31:15 +0800418 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800419 Param("const XGL_RASTER_STATE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800420 Param("XGL_RASTER_STATE_OBJECT*", "pState")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800421
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800422 Proto("XGL_RESULT", "CreateMsaaState",
Chia-I Wue442dc32015-01-01 09:31:15 +0800423 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800424 Param("const XGL_MSAA_STATE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800425 Param("XGL_MSAA_STATE_OBJECT*", "pState")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800426
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800427 Proto("XGL_RESULT", "CreateColorBlendState",
Chia-I Wue442dc32015-01-01 09:31:15 +0800428 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800429 Param("const XGL_COLOR_BLEND_STATE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800430 Param("XGL_COLOR_BLEND_STATE_OBJECT*", "pState")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800431
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800432 Proto("XGL_RESULT", "CreateDepthStencilState",
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_DEPTH_STENCIL_STATE_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800435 Param("XGL_DEPTH_STENCIL_STATE_OBJECT*", "pState")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800436
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800437 Proto("XGL_RESULT", "CreateCommandBuffer",
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_CMD_BUFFER_CREATE_INFO*", "pCreateInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800440 Param("XGL_CMD_BUFFER*", "pCmdBuffer")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800441
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800442 Proto("XGL_RESULT", "BeginCommandBuffer",
Chia-I Wue442dc32015-01-01 09:31:15 +0800443 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
444 Param("XGL_FLAGS", "flags")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800445
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800446 Proto("XGL_RESULT", "EndCommandBuffer",
Chia-I Wue442dc32015-01-01 09:31:15 +0800447 [Param("XGL_CMD_BUFFER", "cmdBuffer")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800448
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800449 Proto("XGL_RESULT", "ResetCommandBuffer",
Chia-I Wue442dc32015-01-01 09:31:15 +0800450 [Param("XGL_CMD_BUFFER", "cmdBuffer")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800451
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800452 Proto("XGL_VOID", "CmdBindPipeline",
Chia-I Wue442dc32015-01-01 09:31:15 +0800453 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800454 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800455 Param("XGL_PIPELINE", "pipeline")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800456
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800457 Proto("XGL_VOID", "CmdBindPipelineDelta",
Chia-I Wue442dc32015-01-01 09:31:15 +0800458 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800459 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800460 Param("XGL_PIPELINE_DELTA", "delta")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800461
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800462 Proto("XGL_VOID", "CmdBindStateObject",
Chia-I Wue442dc32015-01-01 09:31:15 +0800463 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800464 Param("XGL_STATE_BIND_POINT", "stateBindPoint"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800465 Param("XGL_STATE_OBJECT", "state")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800466
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800467 Proto("XGL_VOID", "CmdBindDescriptorSet",
Chia-I Wue442dc32015-01-01 09:31:15 +0800468 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800469 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
470 Param("XGL_UINT", "index"),
471 Param("XGL_DESCRIPTOR_SET", "descriptorSet"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800472 Param("XGL_UINT", "slotOffset")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800473
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800474 Proto("XGL_VOID", "CmdBindDynamicMemoryView",
Chia-I Wue442dc32015-01-01 09:31:15 +0800475 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800476 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800477 Param("const XGL_MEMORY_VIEW_ATTACH_INFO*", "pMemView")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800478
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800479 Proto("XGL_VOID", "CmdBindVertexData",
Chia-I Wue442dc32015-01-01 09:31:15 +0800480 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800481 Param("XGL_GPU_MEMORY", "mem"),
482 Param("XGL_GPU_SIZE", "offset"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800483 Param("XGL_UINT", "binding")]),
Chia-I Wu7a42e122014-11-08 10:48:20 +0800484
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800485 Proto("XGL_VOID", "CmdBindIndexData",
Chia-I Wue442dc32015-01-01 09:31:15 +0800486 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800487 Param("XGL_GPU_MEMORY", "mem"),
488 Param("XGL_GPU_SIZE", "offset"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800489 Param("XGL_INDEX_TYPE", "indexType")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800490
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800491 Proto("XGL_VOID", "CmdBindAttachments",
Chia-I Wue442dc32015-01-01 09:31:15 +0800492 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800493 Param("XGL_UINT", "colorAttachmentCount"),
494 Param("const XGL_COLOR_ATTACHMENT_BIND_INFO*", "pColorAttachments"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800495 Param("const XGL_DEPTH_STENCIL_BIND_INFO*", "pDepthStencilAttachment")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800496
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800497 Proto("XGL_VOID", "CmdPrepareMemoryRegions",
Chia-I Wue442dc32015-01-01 09:31:15 +0800498 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800499 Param("XGL_UINT", "transitionCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800500 Param("const XGL_MEMORY_STATE_TRANSITION*", "pStateTransitions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800501
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800502 Proto("XGL_VOID", "CmdPrepareImages",
Chia-I Wue442dc32015-01-01 09:31:15 +0800503 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800504 Param("XGL_UINT", "transitionCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800505 Param("const XGL_IMAGE_STATE_TRANSITION*", "pStateTransitions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800506
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800507 Proto("XGL_VOID", "CmdDraw",
Chia-I Wue442dc32015-01-01 09:31:15 +0800508 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800509 Param("XGL_UINT", "firstVertex"),
510 Param("XGL_UINT", "vertexCount"),
511 Param("XGL_UINT", "firstInstance"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800512 Param("XGL_UINT", "instanceCount")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800513
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800514 Proto("XGL_VOID", "CmdDrawIndexed",
Chia-I Wue442dc32015-01-01 09:31:15 +0800515 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800516 Param("XGL_UINT", "firstIndex"),
517 Param("XGL_UINT", "indexCount"),
518 Param("XGL_INT", "vertexOffset"),
519 Param("XGL_UINT", "firstInstance"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800520 Param("XGL_UINT", "instanceCount")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800521
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800522 Proto("XGL_VOID", "CmdDrawIndirect",
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_GPU_MEMORY", "mem"),
525 Param("XGL_GPU_SIZE", "offset"),
526 Param("XGL_UINT32", "count"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800527 Param("XGL_UINT32", "stride")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800528
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800529 Proto("XGL_VOID", "CmdDrawIndexedIndirect",
Chia-I Wue442dc32015-01-01 09:31:15 +0800530 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800531 Param("XGL_GPU_MEMORY", "mem"),
532 Param("XGL_GPU_SIZE", "offset"),
533 Param("XGL_UINT32", "count"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800534 Param("XGL_UINT32", "stride")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800535
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800536 Proto("XGL_VOID", "CmdDispatch",
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_UINT", "x"),
539 Param("XGL_UINT", "y"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800540 Param("XGL_UINT", "z")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800541
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800542 Proto("XGL_VOID", "CmdDispatchIndirect",
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"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800545 Param("XGL_GPU_SIZE", "offset")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800546
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800547 Proto("XGL_VOID", "CmdCopyMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800548 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800549 Param("XGL_GPU_MEMORY", "srcMem"),
550 Param("XGL_GPU_MEMORY", "destMem"),
551 Param("XGL_UINT", "regionCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800552 Param("const XGL_MEMORY_COPY*", "pRegions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800553
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800554 Proto("XGL_VOID", "CmdCopyImage",
Chia-I Wue442dc32015-01-01 09:31:15 +0800555 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800556 Param("XGL_IMAGE", "srcImage"),
557 Param("XGL_IMAGE", "destImage"),
558 Param("XGL_UINT", "regionCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800559 Param("const XGL_IMAGE_COPY*", "pRegions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800560
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800561 Proto("XGL_VOID", "CmdCopyMemoryToImage",
Chia-I Wue442dc32015-01-01 09:31:15 +0800562 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800563 Param("XGL_GPU_MEMORY", "srcMem"),
564 Param("XGL_IMAGE", "destImage"),
565 Param("XGL_UINT", "regionCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800566 Param("const XGL_MEMORY_IMAGE_COPY*", "pRegions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800567
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800568 Proto("XGL_VOID", "CmdCopyImageToMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800569 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800570 Param("XGL_IMAGE", "srcImage"),
571 Param("XGL_GPU_MEMORY", "destMem"),
572 Param("XGL_UINT", "regionCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800573 Param("const XGL_MEMORY_IMAGE_COPY*", "pRegions")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800574
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800575 Proto("XGL_VOID", "CmdCloneImageData",
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_IMAGE", "srcImage"),
578 Param("XGL_IMAGE_STATE", "srcImageState"),
579 Param("XGL_IMAGE", "destImage"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800580 Param("XGL_IMAGE_STATE", "destImageState")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800581
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800582 Proto("XGL_VOID", "CmdUpdateMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800583 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800584 Param("XGL_GPU_MEMORY", "destMem"),
585 Param("XGL_GPU_SIZE", "destOffset"),
586 Param("XGL_GPU_SIZE", "dataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800587 Param("const XGL_UINT32*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800588
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800589 Proto("XGL_VOID", "CmdFillMemory",
Chia-I Wue442dc32015-01-01 09:31:15 +0800590 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800591 Param("XGL_GPU_MEMORY", "destMem"),
592 Param("XGL_GPU_SIZE", "destOffset"),
593 Param("XGL_GPU_SIZE", "fillSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800594 Param("XGL_UINT32", "data")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800595
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800596 Proto("XGL_VOID", "CmdClearColorImage",
Chia-I Wue442dc32015-01-01 09:31:15 +0800597 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800598 Param("XGL_IMAGE", "image"),
599 Param("const XGL_FLOAT[4]", "color"),
600 Param("XGL_UINT", "rangeCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800601 Param("const XGL_IMAGE_SUBRESOURCE_RANGE*", "pRanges")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800602
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800603 Proto("XGL_VOID", "CmdClearColorImageRaw",
Chia-I Wue442dc32015-01-01 09:31:15 +0800604 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800605 Param("XGL_IMAGE", "image"),
606 Param("const XGL_UINT32[4]", "color"),
607 Param("XGL_UINT", "rangeCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800608 Param("const XGL_IMAGE_SUBRESOURCE_RANGE*", "pRanges")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800609
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800610 Proto("XGL_VOID", "CmdClearDepthStencil",
Chia-I Wue442dc32015-01-01 09:31:15 +0800611 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800612 Param("XGL_IMAGE", "image"),
613 Param("XGL_FLOAT", "depth"),
614 Param("XGL_UINT32", "stencil"),
615 Param("XGL_UINT", "rangeCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800616 Param("const XGL_IMAGE_SUBRESOURCE_RANGE*", "pRanges")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800617
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800618 Proto("XGL_VOID", "CmdResolveImage",
Chia-I Wue442dc32015-01-01 09:31:15 +0800619 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800620 Param("XGL_IMAGE", "srcImage"),
621 Param("XGL_IMAGE", "destImage"),
622 Param("XGL_UINT", "rectCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800623 Param("const XGL_IMAGE_RESOLVE*", "pRects")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800624
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800625 Proto("XGL_VOID", "CmdSetEvent",
Chia-I Wue442dc32015-01-01 09:31:15 +0800626 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
627 Param("XGL_EVENT", "event")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800628
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800629 Proto("XGL_VOID", "CmdResetEvent",
Chia-I Wue442dc32015-01-01 09:31:15 +0800630 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
631 Param("XGL_EVENT", "event")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800632
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800633 Proto("XGL_VOID", "CmdMemoryAtomic",
Chia-I Wue442dc32015-01-01 09:31:15 +0800634 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800635 Param("XGL_GPU_MEMORY", "destMem"),
636 Param("XGL_GPU_SIZE", "destOffset"),
637 Param("XGL_UINT64", "srcData"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800638 Param("XGL_ATOMIC_OP", "atomicOp")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800639
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800640 Proto("XGL_VOID", "CmdBeginQuery",
Chia-I Wue442dc32015-01-01 09:31:15 +0800641 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800642 Param("XGL_QUERY_POOL", "queryPool"),
643 Param("XGL_UINT", "slot"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800644 Param("XGL_FLAGS", "flags")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800645
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800646 Proto("XGL_VOID", "CmdEndQuery",
Chia-I Wue442dc32015-01-01 09:31:15 +0800647 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800648 Param("XGL_QUERY_POOL", "queryPool"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800649 Param("XGL_UINT", "slot")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800650
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800651 Proto("XGL_VOID", "CmdResetQueryPool",
Chia-I Wue442dc32015-01-01 09:31:15 +0800652 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800653 Param("XGL_QUERY_POOL", "queryPool"),
654 Param("XGL_UINT", "startQuery"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800655 Param("XGL_UINT", "queryCount")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800656
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800657 Proto("XGL_VOID", "CmdWriteTimestamp",
Chia-I Wue442dc32015-01-01 09:31:15 +0800658 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800659 Param("XGL_TIMESTAMP_TYPE", "timestampType"),
660 Param("XGL_GPU_MEMORY", "destMem"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800661 Param("XGL_GPU_SIZE", "destOffset")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800662
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800663 Proto("XGL_VOID", "CmdInitAtomicCounters",
Chia-I Wue442dc32015-01-01 09:31:15 +0800664 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800665 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
666 Param("XGL_UINT", "startCounter"),
667 Param("XGL_UINT", "counterCount"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800668 Param("const XGL_UINT32*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800669
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800670 Proto("XGL_VOID", "CmdLoadAtomicCounters",
Chia-I Wue442dc32015-01-01 09:31:15 +0800671 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800672 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
673 Param("XGL_UINT", "startCounter"),
674 Param("XGL_UINT", "counterCount"),
675 Param("XGL_GPU_MEMORY", "srcMem"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800676 Param("XGL_GPU_SIZE", "srcOffset")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800677
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800678 Proto("XGL_VOID", "CmdSaveAtomicCounters",
Chia-I Wue442dc32015-01-01 09:31:15 +0800679 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800680 Param("XGL_PIPELINE_BIND_POINT", "pipelineBindPoint"),
681 Param("XGL_UINT", "startCounter"),
682 Param("XGL_UINT", "counterCount"),
683 Param("XGL_GPU_MEMORY", "destMem"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800684 Param("XGL_GPU_SIZE", "destOffset")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800685
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800686 Proto("XGL_RESULT", "DbgSetValidationLevel",
Chia-I Wue442dc32015-01-01 09:31:15 +0800687 [Param("XGL_DEVICE", "device"),
688 Param("XGL_VALIDATION_LEVEL", "validationLevel")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800689
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800690 Proto("XGL_RESULT", "DbgRegisterMsgCallback",
Chia-I Wue442dc32015-01-01 09:31:15 +0800691 [Param("XGL_DBG_MSG_CALLBACK_FUNCTION", "pfnMsgCallback"),
692 Param("XGL_VOID*", "pUserData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800693
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800694 Proto("XGL_RESULT", "DbgUnregisterMsgCallback",
Chia-I Wue442dc32015-01-01 09:31:15 +0800695 [Param("XGL_DBG_MSG_CALLBACK_FUNCTION", "pfnMsgCallback")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800696
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800697 Proto("XGL_RESULT", "DbgSetMessageFilter",
Chia-I Wue442dc32015-01-01 09:31:15 +0800698 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800699 Param("XGL_INT", "msgCode"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800700 Param("XGL_DBG_MSG_FILTER", "filter")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800701
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800702 Proto("XGL_RESULT", "DbgSetObjectTag",
Chia-I Wue442dc32015-01-01 09:31:15 +0800703 [Param("XGL_BASE_OBJECT", "object"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800704 Param("XGL_SIZE", "tagSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800705 Param("const XGL_VOID*", "pTag")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800706
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800707 Proto("XGL_RESULT", "DbgSetGlobalOption",
Chia-I Wue442dc32015-01-01 09:31:15 +0800708 [Param("XGL_DBG_GLOBAL_OPTION", "dbgOption"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800709 Param("XGL_SIZE", "dataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800710 Param("const XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800711
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800712 Proto("XGL_RESULT", "DbgSetDeviceOption",
Chia-I Wue442dc32015-01-01 09:31:15 +0800713 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800714 Param("XGL_DBG_DEVICE_OPTION", "dbgOption"),
715 Param("XGL_SIZE", "dataSize"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800716 Param("const XGL_VOID*", "pData")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800717
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800718 Proto("XGL_VOID", "CmdDbgMarkerBegin",
Chia-I Wue442dc32015-01-01 09:31:15 +0800719 [Param("XGL_CMD_BUFFER", "cmdBuffer"),
720 Param("const XGL_CHAR*", "pMarker")]),
Chia-I Wufb2559d2014-08-01 11:19:52 +0800721
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800722 Proto("XGL_VOID", "CmdDbgMarkerEnd",
Chia-I Wue442dc32015-01-01 09:31:15 +0800723 [Param("XGL_CMD_BUFFER", "cmdBuffer")]),
724 ],
Chia-I Wufb2559d2014-08-01 11:19:52 +0800725)
726
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800727wsi_x11 = Extension(
728 name="XGL_WSI_X11",
Chia-I Wue442dc32015-01-01 09:31:15 +0800729 headers=["xglWsiX11Ext.h"],
730 protos=[
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800731 Proto("XGL_RESULT", "WsiX11AssociateConnection",
Chia-I Wue442dc32015-01-01 09:31:15 +0800732 [Param("XGL_PHYSICAL_GPU", "gpu"),
733 Param("const XGL_WSI_X11_CONNECTION_INFO*", "pConnectionInfo")]),
Chia-I Wu6bdf0192014-09-13 13:36:06 +0800734
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800735 Proto("XGL_RESULT", "WsiX11GetMSC",
Chia-I Wue442dc32015-01-01 09:31:15 +0800736 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800737 Param("xcb_window_t", "window"),
738 Param("xcb_randr_crtc_t", "crtc"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800739 Param("XGL_UINT64*", "pMsc")]),
Chia-I Wu6dee8b82014-09-23 10:37:23 +0800740
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800741 Proto("XGL_RESULT", "WsiX11CreatePresentableImage",
Chia-I Wue442dc32015-01-01 09:31:15 +0800742 [Param("XGL_DEVICE", "device"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800743 Param("const XGL_WSI_X11_PRESENTABLE_IMAGE_CREATE_INFO*", "pCreateInfo"),
744 Param("XGL_IMAGE*", "pImage"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800745 Param("XGL_GPU_MEMORY*", "pMem")]),
Chia-I Wu6dee8b82014-09-23 10:37:23 +0800746
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800747 Proto("XGL_RESULT", "WsiX11QueuePresent",
Chia-I Wue442dc32015-01-01 09:31:15 +0800748 [Param("XGL_QUEUE", "queue"),
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800749 Param("const XGL_WSI_X11_PRESENT_INFO*", "pPresentInfo"),
Chia-I Wue442dc32015-01-01 09:31:15 +0800750 Param("XGL_FENCE", "fence")]),
751 ],
Chia-I Wu6dee8b82014-09-23 10:37:23 +0800752)
753
Chia-I Wuc4f24e82015-01-01 08:46:31 +0800754extensions = [core, wsi_x11]
755
756headers = []
757protos = []
758for ext in extensions:
759 headers.extend(ext.headers)
760 protos.extend(ext.protos)
Chia-I Wu6dee8b82014-09-23 10:37:23 +0800761
Chia-I Wu9a4ceb12015-01-01 14:45:58 +0800762proto_names = [proto.name for proto in protos]
Chia-I Wu900a2572014-08-01 14:44:16 +0800763
Jon Ashburne05c8c62014-12-03 14:30:48 -0700764def does_function_create_object(name):
765 return name in (
766 "CreateDevice",
767 "GetDeviceQueue",
768 "AllocMemory",
769 "PinSystemMemory",
770 "OpenSharedMemory",
771 "OpenSharedQueueSemaphore",
772 "OpenPeerMemory",
773 "OpenPeerImage",
774 "CreateFence",
775 "CreateQueueSemaphore",
776 "CreateEvent",
777 "CreateQueryPool",
778 "CreateImage",
779 "CreateImageView",
780 "CreateColorAttachmentView",
781 "CreateDepthStencilView",
782 "CreateShader",
783 "CreateGraphicsPipeline",
784 "CreateComputePipeline",
785 "LoadPipeline",
786 "CreatePipelineDelta",
787 "CreateSampler",
788 "CreateDescriptorSet",
789 "CreateViewportState",
790 "CreateRasterState",
791 "CreateMsaaState",
792 "CreateColorBlendState",
793 "CreateDepthStencilState",
794 "CreateCommandBuffer",
795 "WsiX11CreatePresentableImage")
796
Jon Ashburnd38bfb12014-10-14 19:15:22 -0600797def is_name_dispatchable(name):
798 return name not in (
799 "GetProcAddr",
800 "InitAndEnumerateGpus",
Jon Ashburnf7bcf9b2014-10-15 15:30:23 -0600801 "EnumerateLayers",
Jon Ashburnd38bfb12014-10-14 19:15:22 -0600802 "DbgRegisterMsgCallback",
803 "DbgUnregisterMsgCallback",
804 "DbgSetGlobalOption")
805
Chia-I Wu900a2572014-08-01 14:44:16 +0800806def is_dispatchable(proto):
807 """Return true if the prototype is dispatchable.
808
809 That is, return true when the prototype takes a XGL_PHYSICAL_GPU or
810 XGL_BASE_OBJECT.
811 """
Jon Ashburnd38bfb12014-10-14 19:15:22 -0600812 return is_name_dispatchable(proto.name)