blob: 83b5518d8b250c2bcae47498fb0eee44ba553538 [file] [log] [blame]
Austin Eng376f1c62017-05-30 20:03:44 -04001{
2 "_comment": [
Corentin Wallez4a9ef4e2018-07-18 11:40:26 +02003 "Copyright 2017 The Dawn Authors",
Austin Eng376f1c62017-05-30 20:03:44 -04004 "",
5 "Licensed under the Apache License, Version 2.0 (the \"License\");",
6 "you may not use this file except in compliance with the License.",
7 "You may obtain a copy of the License at",
8 "",
9 " http://www.apache.org/licenses/LICENSE-2.0",
10 "",
11 "Unless required by applicable law or agreed to in writing, software",
12 "distributed under the License is distributed on an \"AS IS\" BASIS,",
13 "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.",
14 "See the License for the specific language governing permissions and",
15 "limitations under the License."
16 ],
Corentin Walleza60799f2018-09-11 18:16:54 +000017 "address mode": {
18 "category": "enum",
19 "values": [
Yan, Shaobo93158eb2019-01-04 04:56:08 +000020 {"value": 0, "name": "repeat"},
Corentin Walleza0491c92019-07-08 09:36:31 +000021 {"value": 1, "name": "mirror repeat"},
Austin Eng5f1d2e12019-04-09 15:12:50 +000022 {"value": 2, "name": "clamp to edge"}
Corentin Walleza60799f2018-09-11 18:16:54 +000023 ]
Austin Eng10634392017-06-01 11:30:03 -040024 },
Austin Eng376f1c62017-05-30 20:03:44 -040025 "bind group": {
26 "category": "object"
27 },
Corentin Wallez6f9d21e2018-12-05 07:18:30 +000028 "bind group binding": {
29 "category": "structure",
30 "extensible": false,
31 "members": [
32 {"name": "binding", "type": "uint32_t"},
Corentin Wallez6f0e1f92018-12-07 12:31:53 +000033 {"name": "buffer", "type": "buffer", "optional": true},
Corentin Wallez8f938712019-07-08 19:20:22 +000034 {"name": "offset", "type": "uint64_t", "default": "0"},
Austin Engcf52d712019-04-05 20:51:29 +000035 {"name": "size", "type": "uint64_t"},
Corentin Wallez6f9d21e2018-12-05 07:18:30 +000036 {"name": "sampler", "type": "sampler", "optional": true},
37 {"name": "texture view", "type": "texture view", "optional": true}
38 ]
39 },
40 "bind group descriptor": {
41 "category": "structure",
42 "extensible": true,
43 "members": [
François Beaufort277d2e12019-10-03 14:56:49 +000044 {"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true},
Corentin Wallez6f9d21e2018-12-05 07:18:30 +000045 {"name": "layout", "type": "bind group layout"},
Jiawei Shao20301662019-02-21 00:45:19 +000046 {"name": "binding count", "type": "uint32_t"},
47 {"name": "bindings", "type": "bind group binding", "annotation": "const*", "length": "binding count"}
Austin Eng376f1c62017-05-30 20:03:44 -040048 ]
49 },
Austin Eng376f1c62017-05-30 20:03:44 -040050 "bind group layout": {
51 "category": "object"
52 },
Corentin Wallez9ca94352018-12-03 09:58:09 +000053 "bind group layout binding": {
Kai Ninomiya234becf2018-07-10 12:23:50 -070054 "category": "structure",
55 "extensible": false,
56 "members": [
57 {"name": "binding", "type": "uint32_t"},
Corentin Wallezb9b088f2019-08-27 08:42:29 +000058 {"name": "visibility", "type": "shader stage"},
Yan, Shaobof697fe32019-07-09 07:58:57 +000059 {"name": "type", "type": "binding type"},
François Beaufortc3b61322019-09-24 11:08:17 +000060 {"name": "has dynamic offset", "type": "bool", "default": "false"},
Corentin Wallezf463a202019-08-21 12:16:33 +000061 {"name": "multisampled", "type": "bool", "default": "false"},
Corentin Wallez86e74e02019-09-10 08:58:28 +000062 {"name": "texture dimension", "type": "texture view dimension", "default": "undefined"},
Corentin Wallezf463a202019-08-21 12:16:33 +000063 {"name": "texture component type", "type": "texture component type", "default": "float"}
Kai Ninomiya234becf2018-07-10 12:23:50 -070064 ]
65 },
66 "bind group layout descriptor": {
67 "category": "structure",
68 "extensible": true,
69 "members": [
François Beaufort277d2e12019-10-03 14:56:49 +000070 {"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true},
Jiawei Shao20301662019-02-21 00:45:19 +000071 {"name": "binding count", "type": "uint32_t"},
72 {"name": "bindings", "type": "bind group layout binding", "annotation": "const*", "length": "binding count"}
Austin Eng376f1c62017-05-30 20:03:44 -040073 ]
74 },
75 "binding type": {
76 "category": "enum",
77 "values": [
78 {"value": 0, "name": "uniform buffer"},
Yan, Shaobof697fe32019-07-09 07:58:57 +000079 {"value": 1, "name": "storage buffer"},
Corentin Wallezf07e85c2019-07-15 20:47:56 +000080 {"value": 2, "name": "readonly storage buffer"},
81 {"value": 3, "name": "sampler"},
82 {"value": 4, "name": "sampled texture"},
83 {"value": 5, "name": "storage texture"}
Austin Eng376f1c62017-05-30 20:03:44 -040084 ]
85 },
Yunchao Hec35103d2018-10-29 09:06:55 +000086 "blend descriptor": {
87 "category": "structure",
88 "extensible": false,
89 "members": [
Corentin Wallez8f938712019-07-08 19:20:22 +000090 {"name": "operation", "type": "blend operation", "default": "add"},
91 {"name": "src factor", "type": "blend factor", "default": "one"},
92 {"name": "dst factor", "type": "blend factor", "default": "zero"}
Yunchao Hec35103d2018-10-29 09:06:55 +000093 ]
94 },
Austin Eng94bebe52017-07-26 16:59:53 -040095 "blend factor": {
96 "category": "enum",
97 "values": [
98 {"value": 0, "name": "zero"},
99 {"value": 1, "name": "one"},
100 {"value": 2, "name": "src color"},
101 {"value": 3, "name": "one minus src color"},
102 {"value": 4, "name": "src alpha"},
103 {"value": 5, "name": "one minus src alpha"},
104 {"value": 6, "name": "dst color"},
105 {"value": 7, "name": "one minus dst color"},
106 {"value": 8, "name": "dst alpha"},
107 {"value": 9, "name": "one minus dst alpha"},
108 {"value": 10, "name": "src alpha saturated"},
109 {"value": 11, "name": "blend color"},
Austin Engcce6b012017-08-03 16:24:49 -0400110 {"value": 12, "name": "one minus blend color"}
Austin Eng94bebe52017-07-26 16:59:53 -0400111 ]
112 },
113 "blend operation": {
114 "category": "enum",
115 "values": [
116 {"value": 0, "name": "add"},
117 {"value": 1, "name": "subtract"},
118 {"value": 2, "name": "reverse subtract"},
119 {"value": 3, "name": "min"},
120 {"value": 4, "name": "max"}
121 ]
122 },
Yunchao He108bcbd2019-02-15 02:20:57 +0000123 "color state descriptor": {
Yunchao He92700bf2018-12-27 06:32:31 +0000124 "category": "structure",
125 "extensible": true,
126 "members": [
Yunchao He108bcbd2019-02-15 02:20:57 +0000127 {"name": "format", "type": "texture format"},
Yunchao He92700bf2018-12-27 06:32:31 +0000128 {"name": "alpha blend", "type": "blend descriptor"},
129 {"name": "color blend", "type": "blend descriptor"},
Corentin Wallez8f938712019-07-08 19:20:22 +0000130 {"name": "write mask", "type": "color write mask", "default": "all"}
Austin Eng94bebe52017-07-26 16:59:53 -0400131 ]
132 },
Corentin Walleza60799f2018-09-11 18:16:54 +0000133 "bool": {
134 "category": "native"
135 },
Austin Eng376f1c62017-05-30 20:03:44 -0400136 "buffer": {
137 "category": "object",
138 "methods": [
139 {
Austin Eng376f1c62017-05-30 20:03:44 -0400140 "name": "set sub data",
141 "args": [
Austin Engcf52d712019-04-05 20:51:29 +0000142 {"name": "start", "type": "uint64_t"},
143 {"name": "count", "type": "uint64_t"},
Corentin Wallez67ab1ea2019-06-06 16:19:15 +0000144 {"name": "data", "type": "void", "annotation": "const*", "length": "count"}
Austin Eng376f1c62017-05-30 20:03:44 -0400145 ]
146 },
147 {
Corentin Wallezb1c19ee2017-06-09 10:51:29 -0400148 "name": "map read async",
149 "args": [
Corentin Wallezb1c19ee2017-06-09 10:51:29 -0400150 {"name": "callback", "type": "buffer map read callback"},
Corentin Wallez839053b2019-05-29 13:03:50 +0000151 {"name": "userdata", "type": "void", "annotation": "*"}
Corentin Wallezb1c19ee2017-06-09 10:51:29 -0400152 ]
153 },
154 {
Corentin Wallezcc0a54d2018-03-20 20:56:39 -0400155 "name": "map write async",
156 "args": [
Corentin Wallezcc0a54d2018-03-20 20:56:39 -0400157 {"name": "callback", "type": "buffer map write callback"},
Corentin Wallez839053b2019-05-29 13:03:50 +0000158 {"name": "userdata", "type": "void", "annotation": "*"}
Corentin Wallezcc0a54d2018-03-20 20:56:39 -0400159 ]
160 },
161 {
Corentin Wallezb1c19ee2017-06-09 10:51:29 -0400162 "name": "unmap"
Austin Eng446ab442019-02-13 21:26:48 +0000163 },
164 {
165 "name": "destroy"
Austin Eng376f1c62017-05-30 20:03:44 -0400166 }
167 ]
168 },
Austin Eng21eba762019-06-14 17:35:56 +0000169 "buffer create mapped callback": {
170 "category": "natively defined"
171 },
Brandon Jonesac71e342018-11-28 17:54:13 +0000172 "buffer copy view": {
173 "category": "structure",
174 "extensible": true,
175 "members": [
176 {"name": "buffer", "type": "buffer"},
Corentin Wallez8f938712019-07-08 19:20:22 +0000177 {"name": "offset", "type": "uint64_t", "default": 0},
Brandon Jonesac71e342018-11-28 17:54:13 +0000178 {"name": "row pitch", "type": "uint32_t"},
179 {"name": "image height", "type": "uint32_t"}
180 ]
181 },
Corentin Wallez82b65732018-08-22 15:37:29 +0200182 "buffer descriptor": {
183 "category": "structure",
184 "extensible": true,
185 "members": [
François Beaufort277d2e12019-10-03 14:56:49 +0000186 {"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true},
Corentin Wallez9e9e29f2019-08-27 08:21:39 +0000187 {"name": "usage", "type": "buffer usage"},
Austin Engcf52d712019-04-05 20:51:29 +0000188 {"name": "size", "type": "uint64_t"}
Corentin Wallez82b65732018-08-22 15:37:29 +0200189 ]
190 },
Corentin Wallezb1c19ee2017-06-09 10:51:29 -0400191 "buffer map read callback": {
192 "category": "natively defined"
193 },
Corentin Wallezcc0a54d2018-03-20 20:56:39 -0400194 "buffer map write callback": {
195 "category": "natively defined"
196 },
Corentin Wallez8565e002018-03-20 19:48:54 -0400197 "buffer map async status": {
Corentin Wallezb1c19ee2017-06-09 10:51:29 -0400198 "category": "enum",
199 "values": [
200 {"value": 0, "name": "success"},
201 {"value": 1, "name": "error"},
202 {"value": 2, "name": "unknown"},
Austin Eng5603dc92019-08-27 18:10:03 +0000203 {"value": 3, "name": "device lost"}
Corentin Wallezb1c19ee2017-06-09 10:51:29 -0400204 ]
205 },
Corentin Wallez9e9e29f2019-08-27 08:21:39 +0000206 "buffer usage": {
Austin Eng376f1c62017-05-30 20:03:44 -0400207 "category": "bitmask",
208 "values": [
209 {"value": 0, "name": "none"},
Corentin Wallezf45bdb82017-06-05 15:42:14 -0400210 {"value": 1, "name": "map read"},
Corentin Wallez769b00f2017-06-16 15:35:12 -0400211 {"value": 2, "name": "map write"},
Corentin Wallezec053552019-07-08 10:05:46 +0000212 {"value": 4, "name": "copy src"},
213 {"value": 8, "name": "copy dst"},
Corentin Wallez769b00f2017-06-16 15:35:12 -0400214 {"value": 16, "name": "index"},
215 {"value": 32, "name": "vertex"},
216 {"value": 64, "name": "uniform"},
Idan Raiter05f7ad52019-06-10 20:56:27 +0000217 {"value": 128, "name": "storage"},
218 {"value": 256, "name": "indirect"}
Austin Eng376f1c62017-05-30 20:03:44 -0400219 ]
220 },
Austin Eng376f1c62017-05-30 20:03:44 -0400221 "char": {
222 "category": "native"
223 },
Austin Eng740995c2019-05-15 18:55:22 +0000224 "create buffer mapped result": {
225 "category": "structure",
226 "members": [
227 {"name": "buffer", "type": "buffer"},
228 {"name": "data length", "type": "uint64_t"},
Corentin Wallez67ab1ea2019-06-06 16:19:15 +0000229 {"name": "data", "type": "void", "annotation": "*", "length": "data length"}
Austin Eng740995c2019-05-15 18:55:22 +0000230 ]
231 },
Jiawei Shao5e811ae2018-12-19 08:21:13 +0000232 "color": {
233 "category": "structure",
234 "members": [
235 {"name": "r", "type": "float"},
236 {"name": "g", "type": "float"},
237 {"name": "b", "type": "float"},
238 {"name": "a", "type": "float"}
239 ]
240 },
Austin Eng94bebe52017-07-26 16:59:53 -0400241 "color write mask": {
242 "category": "bitmask",
243 "values": [
244 {"value": 0, "name": "none"},
245 {"value": 1, "name": "red"},
246 {"value": 2, "name": "green"},
247 {"value": 4, "name": "blue"},
248 {"value": 8, "name": "alpha"},
249 {"value": 15, "name": "all"}
250 ]
251 },
Austin Eng376f1c62017-05-30 20:03:44 -0400252 "command buffer": {
253 "category": "object"
254 },
Corentin Wallez4b90c472019-07-10 20:43:13 +0000255 "command buffer descriptor": {
256 "category": "structure",
257 "extensible": true,
François Beaufort6ac5a922019-09-25 13:56:48 +0000258 "members": [
259 {"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true}
260 ]
Corentin Wallez4b90c472019-07-10 20:43:13 +0000261 },
Corentin Walleze1f0d4e2019-02-15 12:54:08 +0000262 "command encoder": {
263 "category": "object",
264 "methods": [
265 {
266 "name": "finish",
Corentin Wallez4b90c472019-07-10 20:43:13 +0000267 "returns": "command buffer",
268 "args": [
269 {"name": "descriptor", "type": "command buffer descriptor", "annotation": "const*", "optional": true}
270 ]
Corentin Walleze1f0d4e2019-02-15 12:54:08 +0000271 },
272 {
273 "name": "begin compute pass",
Corentin Wallez4b90c472019-07-10 20:43:13 +0000274 "returns": "compute pass encoder",
275 "args": [
276 {"name": "descriptor", "type": "compute pass descriptor", "annotation": "const*", "optional": true}
277 ]
Corentin Walleze1f0d4e2019-02-15 12:54:08 +0000278 },
279 {
280 "name": "begin render pass",
Corentin Wallez4b90c472019-07-10 20:43:13 +0000281 "returns": "render pass encoder",
Corentin Walleze1f0d4e2019-02-15 12:54:08 +0000282 "args": [
Corentin Wallez4b90c472019-07-10 20:43:13 +0000283 {"name": "descriptor", "type": "render pass descriptor", "annotation": "const*"}
284 ]
Corentin Walleze1f0d4e2019-02-15 12:54:08 +0000285 },
286 {
287 "name": "copy buffer to buffer",
288 "args": [
289 {"name": "source", "type": "buffer"},
Austin Engcf52d712019-04-05 20:51:29 +0000290 {"name": "source offset", "type": "uint64_t"},
Corentin Walleze1f0d4e2019-02-15 12:54:08 +0000291 {"name": "destination", "type": "buffer"},
Austin Engcf52d712019-04-05 20:51:29 +0000292 {"name": "destination offset", "type": "uint64_t"},
293 {"name": "size", "type": "uint64_t"}
Corentin Walleze1f0d4e2019-02-15 12:54:08 +0000294 ],
295 "TODO": [
296 "Restrictions on the alignment of the copy? Cf Metal on OSX"
297 ]
298 },
299 {
300 "name": "copy buffer to texture",
301 "args": [
302 {"name": "source", "type": "buffer copy view", "annotation": "const*"},
303 {"name": "destination", "type": "texture copy view", "annotation": "const*"},
304 {"name": "copy size", "type": "extent 3D", "annotation": "const*"}
305 ]
306 },
307 {
308 "name": "copy texture to buffer",
309 "args": [
310 {"name": "source", "type": "texture copy view", "annotation": "const*"},
311 {"name": "destination", "type": "buffer copy view", "annotation": "const*"},
312 {"name": "copy size", "type": "extent 3D", "annotation": "const*"}
313 ]
Brandon Jonesd3d3aa02019-03-26 11:06:23 +0000314 },
315 {
316 "name": "copy texture to texture",
317 "args": [
318 {"name": "source", "type": "texture copy view", "annotation": "const*"},
319 {"name": "destination", "type": "texture copy view", "annotation": "const*"},
320 {"name": "copy size", "type": "extent 3D", "annotation": "const*"}
321 ]
Corentin Wallezb8ea84c2019-09-10 08:20:40 +0000322 },
323 {
324 "name": "insert debug marker",
325 "args": [
326 {"name": "group label", "type": "char", "annotation": "const*", "length": "strlen"}
327 ]
328 },
329 {
330 "name": "pop debug group",
331 "args": []
332 },
333 {
334 "name": "push debug group",
335 "args": [
336 {"name": "group label", "type": "char", "annotation": "const*", "length": "strlen"}
337 ]
Corentin Walleze1f0d4e2019-02-15 12:54:08 +0000338 }
339 ]
340 },
Corentin Wallez4b90c472019-07-10 20:43:13 +0000341 "command encoder descriptor": {
342 "category": "structure",
343 "extensible": true,
François Beaufort277d2e12019-10-03 14:56:49 +0000344 "members": [
345 {"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true}
346 ]
Corentin Wallez4b90c472019-07-10 20:43:13 +0000347 },
Corentin Wallez82fbccb2018-09-21 00:24:37 +0000348 "compare function": {
349 "category": "enum",
350 "values": [
351 {"value": 0, "name": "never"},
352 {"value": 1, "name": "less"},
353 {"value": 2, "name": "less equal"},
354 {"value": 3, "name": "greater"},
355 {"value": 4, "name": "greater equal"},
356 {"value": 5, "name": "equal"},
357 {"value": 6, "name": "not equal"},
358 {"value": 7, "name": "always"}
359 ]
360 },
Corentin Wallez4b90c472019-07-10 20:43:13 +0000361 "compute pass descriptor": {
362 "category": "structure",
363 "extensible": true,
François Beaufort6ac5a922019-09-25 13:56:48 +0000364 "members": [
365 {"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true}
366 ]
Corentin Wallez4b90c472019-07-10 20:43:13 +0000367 },
Corentin Wallez82fbccb2018-09-21 00:24:37 +0000368 "compute pass encoder": {
369 "category": "object",
370 "methods": [
Corentin Walleze9d347e2017-06-26 16:23:03 -0400371 {
Brandon Jones11d32c82019-02-20 20:21:00 +0000372 "name": "insert debug marker",
373 "args": [
374 {"name": "group label", "type": "char", "annotation": "const*", "length": "strlen"}
375 ]
376 },
377 {
378 "name": "pop debug group",
379 "args": []
380 },
381 {
382 "name": "push debug group",
383 "args": [
384 {"name": "group label", "type": "char", "annotation": "const*", "length": "strlen"}
385 ]
386 },
387 {
Yan, Shaobo300eec02018-12-21 10:40:26 +0000388 "name": "set pipeline",
Austin Eng376f1c62017-05-30 20:03:44 -0400389 "args": [
Corentin Wallez82fbccb2018-09-21 00:24:37 +0000390 {"name": "pipeline", "type": "compute pipeline"}
Austin Eng376f1c62017-05-30 20:03:44 -0400391 ]
392 },
393 {
Corentin Wallez82fbccb2018-09-21 00:24:37 +0000394 "name": "set bind group",
Austin Eng376f1c62017-05-30 20:03:44 -0400395 "args": [
Corentin Wallez82fbccb2018-09-21 00:24:37 +0000396 {"name": "group index", "type": "uint32_t"},
Yan, Shaobo991ab982019-03-18 06:01:37 +0000397 {"name": "group", "type": "bind group"},
Corentin Wallez70c8c102019-10-09 16:08:42 +0000398 {"name": "dynamic offset count", "type": "uint32_t", "default": "0"},
Austin Eng314fd352019-11-01 15:51:01 +0000399 {"name": "dynamic offsets", "type": "uint32_t", "annotation": "const*", "length": "dynamic offset count", "optional": true}
Corentin Wallez29ced282017-07-14 10:58:07 -0400400 ]
401 },
402 {
Corentin Wallez82fbccb2018-09-21 00:24:37 +0000403 "name": "dispatch",
Corentin Walleza3c89cc2018-02-13 14:57:13 -0500404 "args": [
405 {"name": "x", "type": "uint32_t"},
Corentin Wallez8f938712019-07-08 19:20:22 +0000406 {"name": "y", "type": "uint32_t", "default": "1"},
407 {"name": "z", "type": "uint32_t", "default": "1"}
Corentin Walleza3c89cc2018-02-13 14:57:13 -0500408 ]
409 },
410 {
Idan Raiter05f7ad52019-06-10 20:56:27 +0000411 "name": "dispatch indirect",
412 "args": [
413 {"name": "indirect buffer", "type": "buffer"},
414 {"name": "indirect offset", "type": "uint64_t"}
415 ]
416 },
417 {
Kai Ninomiya4078ed82019-08-27 17:56:23 +0000418 "name": "end pass"
Austin Eng376f1c62017-05-30 20:03:44 -0400419 }
420 ]
421 },
Corentin Wallez29ced282017-07-14 10:58:07 -0400422 "compute pipeline": {
423 "category": "object"
424 },
Corentin Wallez8e335a52018-08-27 23:12:56 +0200425 "compute pipeline descriptor": {
426 "category": "structure",
427 "extensible": true,
428 "members": [
François Beaufort277d2e12019-10-03 14:56:49 +0000429 {"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true},
Corentin Wallez8e335a52018-08-27 23:12:56 +0200430 {"name": "layout", "type": "pipeline layout"},
Jinho Bang0b826712019-10-07 12:23:09 +0000431 {"name": "compute stage", "type": "programmable stage descriptor"}
Corentin Wallez29ced282017-07-14 10:58:07 -0400432 ]
433 },
Yunchao Hec33a8c12019-04-11 18:46:54 +0000434 "cull mode": {
435 "category": "enum",
436 "values": [
437 {"value": 0, "name": "none"},
438 {"value": 1, "name": "front"},
439 {"value": 2, "name": "back"}
440 ]
441 },
Austin Eng376f1c62017-05-30 20:03:44 -0400442 "device": {
443 "category": "object",
444 "methods": [
445 {
Corentin Wallez6f9d21e2018-12-05 07:18:30 +0000446 "name": "create bind group",
447 "returns": "bind group",
448 "args": [
449 {"name": "descriptor", "type": "bind group descriptor", "annotation": "const*"}
450 ]
Austin Eng376f1c62017-05-30 20:03:44 -0400451 },
452 {
Kai Ninomiya234becf2018-07-10 12:23:50 -0700453 "name": "create bind group layout",
454 "returns": "bind group layout",
455 "args": [
456 {"name": "descriptor", "type": "bind group layout descriptor", "annotation": "const*"}
457 ]
Austin Eng376f1c62017-05-30 20:03:44 -0400458 },
459 {
Corentin Wallez82b65732018-08-22 15:37:29 +0200460 "name": "create buffer",
461 "returns": "buffer",
462 "args": [
463 {"name": "descriptor", "type": "buffer descriptor", "annotation": "const*"}
464 ]
465 },
466 {
Austin Eng740995c2019-05-15 18:55:22 +0000467 "name": "create buffer mapped",
468 "returns": "create buffer mapped result",
469 "args": [
470 {"name": "descriptor", "type": "buffer descriptor", "annotation": "const*"}
471 ]
472 },
473 {
Austin Eng21eba762019-06-14 17:35:56 +0000474 "name": "create buffer mapped async",
475 "args": [
476 {"name": "descriptor", "type": "buffer descriptor", "annotation": "const*"},
477 {"name": "callback", "type": "buffer create mapped callback"},
478 {"name": "userdata", "type": "void", "annotation": "*"}
479 ]
480 },
481 {
Corentin Walleze1f0d4e2019-02-15 12:54:08 +0000482 "name": "create command encoder",
Corentin Wallez4b90c472019-07-10 20:43:13 +0000483 "returns": "command encoder",
484 "args": [
485 {"name": "descriptor", "type": "command encoder descriptor", "annotation": "const*", "optional": true}
486 ]
Corentin Walleze1f0d4e2019-02-15 12:54:08 +0000487 },
488 {
Corentin Wallez8e335a52018-08-27 23:12:56 +0200489 "name": "create compute pipeline",
490 "returns": "compute pipeline",
491 "args": [
492 {"name": "descriptor", "type": "compute pipeline descriptor", "annotation": "const*"}
493 ]
Corentin Wallez29ced282017-07-14 10:58:07 -0400494 },
495 {
Yan, Shaoboa4924272018-12-10 19:47:22 +0000496 "name": "create render pipeline",
497 "returns": "render pipeline",
498 "args": [
499 {"name": "descriptor", "type": "render pipeline descriptor", "annotation": "const*"}
500 ]
Austin Eng376f1c62017-05-30 20:03:44 -0400501 },
502 {
Kai Ninomiyaf53f98b2018-06-27 16:21:39 -0700503 "name": "create pipeline layout",
504 "returns": "pipeline layout",
505 "args": [
506 {"name": "descriptor", "type": "pipeline layout descriptor", "annotation": "const*"}
507 ]
Austin Eng376f1c62017-05-30 20:03:44 -0400508 },
509 {
Corentin Wallezb703def2018-06-14 20:26:27 -0400510 "name": "create queue",
511 "returns": "queue"
Austin Eng376f1c62017-05-30 20:03:44 -0400512 },
513 {
Austin Eng8a488c12019-08-13 22:12:54 +0000514 "name": "create render bundle encoder",
515 "returns": "render bundle encoder",
516 "args": [
517 {"name": "descriptor", "type": "render bundle encoder descriptor", "annotation": "const*"}
518 ]
519 },
520 {
Corentin Wallez1ae19e82018-05-17 17:09:07 -0400521 "name": "create sampler",
522 "returns": "sampler",
523 "args": [
524 {"name": "descriptor", "type": "sampler descriptor", "annotation": "const*"}
525 ]
Austin Eng376f1c62017-05-30 20:03:44 -0400526 },
527 {
Corentin Wallezdf671032018-08-20 17:01:20 +0200528 "name": "create shader module",
529 "returns": "shader module",
530 "args": [
531 {"name": "descriptor", "type": "shader module descriptor", "annotation": "const*"}
532 ]
Austin Eng376f1c62017-05-30 20:03:44 -0400533 },
534 {
Corentin Wallez7be2a712019-02-15 11:15:58 +0000535 "name": "create swap chain",
536 "returns": "swap chain",
537 "args": [
538 {"name": "descriptor", "type": "swap chain descriptor", "annotation": "const*"}
539 ]
Kai Ninomiyac16a67a2017-07-27 18:30:57 -0700540 },
541 {
Jiawei Shao425428f2018-08-27 08:44:48 +0800542 "name": "create texture",
543 "returns": "texture",
544 "args": [
545 {"name": "descriptor", "type": "texture descriptor", "annotation": "const*"}
546 ]
Austin Eng376f1c62017-05-30 20:03:44 -0400547 },
548 {
Austin Enge06f01b2019-09-30 22:50:59 +0000549 "name": "inject error",
550 "args": [
551 {"name": "type", "type": "error type"},
Austin Eng867f7202019-10-02 06:35:38 +0000552 {"name": "message", "type": "char", "annotation": "const*", "length": "strlen"}
Austin Enge06f01b2019-09-30 22:50:59 +0000553 ],
554 "TODO": "enga@: Make this a Dawn extension"
555 },
556 {
Corentin Wallezdbb57292017-06-14 13:33:45 -0400557 "name": "tick"
558 },
559 {
Austin Eng45ea7e62019-08-27 21:43:56 +0000560 "name": "set uncaptured error callback",
Austin Eng376f1c62017-05-30 20:03:44 -0400561 "args": [
Austin Engcb0cb652019-08-27 21:41:56 +0000562 {"name": "callback", "type": "error callback"},
Corentin Wallez839053b2019-05-29 13:03:50 +0000563 {"name": "userdata", "type": "void", "annotation": "*"}
Austin Eng376f1c62017-05-30 20:03:44 -0400564 ]
Austin Eng45238d72019-09-04 22:54:03 +0000565 },
566 {
567 "name": "push error scope",
568 "args": [
569 {"name": "filter", "type": "error filter"}
570 ]
571 },
572 {
573 "name": "pop error scope",
574 "returns": "bool",
575 "args": [
576 {"name": "callback", "type": "error callback"},
577 {"name": "userdata", "type": "void", "annotation": "*"}
578 ]
Austin Eng376f1c62017-05-30 20:03:44 -0400579 }
580 ]
581 },
Jiawei Shao5c2f5f32019-10-20 03:01:56 +0000582 "device properties": {
583 "category": "structure",
584 "extensible": false,
585 "members": [
586 {"name": "texture compression BC", "type": "bool", "default": "false"}
587 ]
588 },
Yunchao Heea563332019-01-04 04:28:37 +0000589 "depth stencil state descriptor": {
590 "category": "structure",
591 "extensible": true,
592 "members": [
Yunchao He108bcbd2019-02-15 02:20:57 +0000593 {"name": "format", "type": "texture format"},
Corentin Wallez8f938712019-07-08 19:20:22 +0000594 {"name": "depth write enabled", "type": "bool", "default": "false"},
595 {"name": "depth compare", "type": "compare function", "default": "always"},
Yunchao Hebaa37412019-01-30 21:11:43 +0000596 {"name": "stencil front", "type": "stencil state face descriptor"},
597 {"name": "stencil back", "type": "stencil state face descriptor"},
Corentin Wallez8f938712019-07-08 19:20:22 +0000598 {"name": "stencil read mask", "type": "uint32_t", "default": "0xFFFFFFFF"},
599 {"name": "stencil write mask", "type": "uint32_t", "default": "0xFFFFFFFF"}
Austin Eng376f1c62017-05-30 20:03:44 -0400600 ]
601 },
Austin Engcb0cb652019-08-27 21:41:56 +0000602 "error callback": {
Austin Eng376f1c62017-05-30 20:03:44 -0400603 "category": "natively defined"
604 },
Austin Eng45238d72019-09-04 22:54:03 +0000605 "error filter": {
606 "category": "enum",
607 "values": [
608 {"value": 0, "name": "none"},
609 {"value": 1, "name": "validation"},
610 {"value": 2, "name": "out of memory"}
611 ]
612 },
Austin Engcb0cb652019-08-27 21:41:56 +0000613 "error type": {
614 "category": "enum",
615 "values": [
616 {"value": 0, "name": "no error"},
617 {"value": 1, "name": "validation"},
618 {"value": 2, "name": "out of memory"},
619 {"value": 3, "name": "unknown"},
620 {"value": 4, "name": "device lost"}
621 ]
622 },
Corentin Wallez29353d62018-09-18 12:49:22 +0000623 "extent 3D": {
624 "category": "structure",
625 "members": [
626 {"name": "width", "type": "uint32_t"},
627 {"name": "height", "type": "uint32_t"},
628 {"name": "depth", "type": "uint32_t"}
629 ]
630 },
Austin Engf0b761f2018-12-03 16:57:34 +0000631 "fence": {
632 "category": "object",
633 "methods": [
634 {
635 "name": "get completed value",
636 "returns": "uint64_t"
637 },
638 {
639 "name": "on completion",
640 "args": [
641 {"name": "value", "type": "uint64_t"},
642 {"name": "callback", "type": "fence on completion callback"},
Corentin Wallez839053b2019-05-29 13:03:50 +0000643 {"name": "userdata", "type": "void", "annotation": "*"}
Austin Engf0b761f2018-12-03 16:57:34 +0000644 ]
645 }
646 ]
647 },
648 "fence on completion callback": {
649 "category": "natively defined"
650 },
651 "fence completion status": {
652 "category": "enum",
653 "values": [
654 {"value": 0, "name": "success"},
655 {"value": 1, "name": "error"},
656 {"value": 2, "name": "unknown"},
Austin Eng5603dc92019-08-27 18:10:03 +0000657 {"value": 3, "name": "device lost"}
Austin Engf0b761f2018-12-03 16:57:34 +0000658 ]
659 },
660 "fence descriptor": {
661 "category": "structure",
662 "extensible": true,
663 "members": [
François Beaufort277d2e12019-10-03 14:56:49 +0000664 {"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true},
Corentin Wallez8f938712019-07-08 19:20:22 +0000665 {"name": "initial value", "type": "uint64_t", "default": "0"}
Austin Engf0b761f2018-12-03 16:57:34 +0000666 ]
667 },
Austin Eng376f1c62017-05-30 20:03:44 -0400668 "filter mode": {
669 "category": "enum",
670 "values": [
Yunchao Hecfea9342019-04-02 14:31:29 +0000671 {"value": 0, "name": "nearest"},
672 {"value": 1, "name": "linear"}
Austin Eng376f1c62017-05-30 20:03:44 -0400673 ]
674 },
Austin Engfb426532017-08-01 14:22:52 -0400675 "float": {
676 "category": "native"
677 },
Yunchao Hec33a8c12019-04-11 18:46:54 +0000678 "front face": {
679 "category": "enum",
680 "values": [
681 {"value": 0, "name": "CCW"},
682 {"value": 1, "name": "CW"}
683 ]
684 },
Austin Eng376f1c62017-05-30 20:03:44 -0400685 "index format": {
686 "category": "enum",
687 "values": [
688 {"value": 0, "name": "uint16"},
689 {"value": 1, "name": "uint32"}
690 ]
691 },
Yunchao Heb2207732019-02-14 00:35:39 +0000692 "vertex attribute descriptor": {
693 "category": "structure",
694 "extensible": false,
695 "members": [
696 {"name": "shader location", "type": "uint32_t"},
Corentin Wallez8f938712019-07-08 19:20:22 +0000697 {"name": "offset", "type": "uint64_t", "default": "0"},
Yunchao Heb2207732019-02-14 00:35:39 +0000698 {"name": "format", "type": "vertex format"}
699 ]
700 },
Yunchao Heeea20912019-05-22 22:46:32 +0000701 "vertex buffer descriptor": {
Yunchao He4dec7372019-02-14 23:56:07 +0000702 "category": "structure",
703 "extensible": false,
704 "members": [
Austin Engcf52d712019-04-05 20:51:29 +0000705 {"name": "stride", "type": "uint64_t"},
Corentin Wallez8f938712019-07-08 19:20:22 +0000706 {"name": "step mode", "type": "input step mode", "default": "vertex"},
Yunchao He2d4b5292019-06-06 17:54:30 +0000707 {"name": "attribute count", "type": "uint32_t"},
708 {"name": "attributes", "type": "vertex attribute descriptor", "annotation": "const*", "length": "attribute count"}
Yunchao He4dec7372019-02-14 23:56:07 +0000709 ]
710 },
Yunchao Heeea20912019-05-22 22:46:32 +0000711 "vertex input descriptor": {
Yunchao He889d7432019-03-27 18:08:50 +0000712 "category": "structure",
713 "extensible": true,
714 "members": [
Corentin Wallez8f938712019-07-08 19:20:22 +0000715 {"name": "index format", "type": "index format", "default": "uint32"},
François Beaufort13c472e2019-08-29 15:56:31 +0000716 {"name": "buffer count", "type": "uint32_t", "default": 0},
Yunchao He2d4b5292019-06-06 17:54:30 +0000717 {"name": "buffers", "type": "vertex buffer descriptor", "annotation": "const*", "length": "buffer count"}
Austin Eng376f1c62017-05-30 20:03:44 -0400718 ]
719 },
720 "input step mode": {
721 "category": "enum",
722 "values": [
723 {"value": 0, "name": "vertex"},
724 {"value": 1, "name": "instance"}
725 ]
726 },
Kai Ninomiyab9854312017-08-11 14:36:20 -0700727 "load op": {
728 "category": "enum",
729 "values": [
730 {"value": 0, "name": "clear"},
731 {"value": 1, "name": "load"}
732 ]
733 },
Jiawei Shao5e811ae2018-12-19 08:21:13 +0000734 "store op": {
735 "category": "enum",
736 "values": [
Natasha Leecf0e9d92019-09-25 13:08:28 +0000737 {"value": 0, "name": "store"},
738 {"value": 1, "name": "clear"}
Jiawei Shao5e811ae2018-12-19 08:21:13 +0000739 ]
740 },
Brandon Jonesac71e342018-11-28 17:54:13 +0000741 "origin 3D": {
742 "category": "structure",
743 "members": [
Corentin Wallez8f938712019-07-08 19:20:22 +0000744 {"name": "x", "type": "uint32_t", "default": "0"},
745 {"name": "y", "type": "uint32_t", "default": "0"},
746 {"name": "z", "type": "uint32_t", "default": "0"}
Brandon Jonesac71e342018-11-28 17:54:13 +0000747 ]
748 },
Austin Eng376f1c62017-05-30 20:03:44 -0400749 "pipeline layout": {
750 "category": "object"
751 },
Kai Ninomiyaf53f98b2018-06-27 16:21:39 -0700752 "pipeline layout descriptor": {
753 "category": "structure",
754 "extensible": true,
755 "members": [
François Beaufort277d2e12019-10-03 14:56:49 +0000756 {"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true},
Jiawei Shao20301662019-02-21 00:45:19 +0000757 {"name": "bind group layout count", "type": "uint32_t"},
758 {"name": "bind group layouts", "type": "bind group layout", "annotation": "const*", "length": "bind group layout count"}
Austin Eng376f1c62017-05-30 20:03:44 -0400759 ]
760 },
Jinho Bang0b826712019-10-07 12:23:09 +0000761 "programmable stage descriptor": {
Yan, Shaoboa4924272018-12-10 19:47:22 +0000762 "category": "structure",
763 "extensible": true,
764 "members": [
765 {"name": "module", "type": "shader module"},
766 {"name": "entry point", "type": "char", "annotation": "const*", "length": "strlen"}
767 ]
768 },
Austin Eng3e9e3152017-07-24 13:54:19 -0400769 "primitive topology": {
770 "category": "enum",
771 "values": [
Austin Eng439d9632017-07-26 18:10:44 -0400772 {"value": 0, "name": "point list"},
773 {"value": 1, "name": "line list"},
Austin Eng3e9e3152017-07-24 13:54:19 -0400774 {"value": 2, "name": "line strip"},
Austin Eng439d9632017-07-26 18:10:44 -0400775 {"value": 3, "name": "triangle list"},
Austin Eng3e9e3152017-07-24 13:54:19 -0400776 {"value": 4, "name": "triangle strip"}
777 ]
778 },
Austin Eng376f1c62017-05-30 20:03:44 -0400779 "queue": {
780 "category": "object",
781 "methods": [
782 {
783 "name": "submit",
784 "args": [
Jiawei Shao20301662019-02-21 00:45:19 +0000785 {"name": "command count", "type": "uint32_t"},
786 {"name": "commands", "type": "command buffer", "annotation": "const*", "length": "command count"}
Austin Eng376f1c62017-05-30 20:03:44 -0400787 ]
Austin Engf0b761f2018-12-03 16:57:34 +0000788 },
789 {
790 "name": "signal",
791 "args": [
792 {"name": "fence", "type": "fence"},
793 {"name": "signal value", "type": "uint64_t"}
794 ]
Austin Eng1cc38662019-03-06 22:42:22 +0000795 },
796 {
797 "name": "create fence",
798 "returns": "fence",
799 "args": [
800 {"name": "descriptor", "type": "fence descriptor", "annotation": "const*"}
801 ]
Austin Eng376f1c62017-05-30 20:03:44 -0400802 }
803 ]
804 },
Jiawei Shao5e811ae2018-12-19 08:21:13 +0000805
Yunchao Hec33a8c12019-04-11 18:46:54 +0000806 "rasterization state descriptor": {
807 "category": "structure",
808 "extensible": true,
809 "members": [
Corentin Wallez8f938712019-07-08 19:20:22 +0000810 {"name": "front face", "type": "front face", "default": "CCW"},
811 {"name": "cull mode", "type": "cull mode", "default": "none"},
812 {"name": "depth bias", "type": "int32_t", "default": "0"},
813 {"name": "depth bias slope scale", "type": "float", "default": "0.0f"},
814 {"name": "depth bias clamp", "type": "float", "default": "0.0f"}
Yunchao Hec33a8c12019-04-11 18:46:54 +0000815 ]
816 },
817
Austin Eng8a488c12019-08-13 22:12:54 +0000818 "render bundle": {
819 "category": "object"
820 },
821
822 "render bundle encoder": {
823 "category": "object",
824 "methods": [
825 {
826 "name": "set pipeline",
827 "args": [
828 {"name": "pipeline", "type": "render pipeline"}
829 ]
830 },
831 {
832 "name": "set bind group",
833 "args": [
834 {"name": "group index", "type": "uint32_t"},
835 {"name": "group", "type": "bind group"},
Corentin Wallez70c8c102019-10-09 16:08:42 +0000836 {"name": "dynamic offset count", "type": "uint32_t", "default": "0"},
Austin Eng314fd352019-11-01 15:51:01 +0000837 {"name": "dynamic offsets", "type": "uint32_t", "annotation": "const*", "length": "dynamic offset count", "optional": true}
Austin Eng8a488c12019-08-13 22:12:54 +0000838 ]
839 },
840 {
841 "name": "draw",
842 "args": [
843 {"name": "vertex count", "type": "uint32_t"},
844 {"name": "instance count", "type": "uint32_t"},
845 {"name": "first vertex", "type": "uint32_t"},
846 {"name": "first instance", "type": "uint32_t"}
847 ]
848 },
849 {
850 "name": "draw indexed",
851 "args": [
852 {"name": "index count", "type": "uint32_t"},
853 {"name": "instance count", "type": "uint32_t"},
854 {"name": "first index", "type": "uint32_t"},
855 {"name": "base vertex", "type": "int32_t"},
856 {"name": "first instance", "type": "uint32_t"}
857 ]
858 },
859 {
860 "name": "draw indirect",
861 "args": [
862 {"name": "indirect buffer", "type": "buffer"},
863 {"name": "indirect offset", "type": "uint64_t"}
864 ]
865 },
866 {
867 "name": "draw indexed indirect",
868 "args": [
869 {"name": "indirect buffer", "type": "buffer"},
870 {"name": "indirect offset", "type": "uint64_t"}
871 ]
872 },
873 {
874 "name": "insert debug marker",
875 "args": [
876 {"name": "group label", "type": "char", "annotation": "const*", "length": "strlen"}
877 ]
878 },
879 {
880 "name": "pop debug group",
881 "args": []
882 },
883 {
884 "name": "push debug group",
885 "args": [
886 {"name": "group label", "type": "char", "annotation": "const*", "length": "strlen"}
887 ]
888 },
889 {
François Beaufort91b21422019-10-10 07:29:58 +0000890 "name": "set vertex buffer",
Austin Eng8a488c12019-08-13 22:12:54 +0000891 "args": [
François Beaufort91b21422019-10-10 07:29:58 +0000892 {"name": "slot", "type": "uint32_t"},
893 {"name": "buffer", "type": "buffer"},
894 {"name": "offset", "type": "uint64_t", "default": "0"}
Austin Eng8a488c12019-08-13 22:12:54 +0000895 ]
896 },
897 {
898 "name": "set index buffer",
899 "args": [
900 {"name": "buffer", "type": "buffer"},
Corentin Wallezd2855252019-10-10 17:21:48 +0000901 {"name": "offset", "type": "uint64_t", "default": "0"}
Austin Eng8a488c12019-08-13 22:12:54 +0000902 ]
903 },
904 {
905 "name": "finish",
906 "returns": "render bundle",
907 "args": [
908 {"name": "descriptor", "type": "render bundle descriptor", "annotation": "const*", "optional": true}
909 ]
910 }
911 ]
912 },
913
914 "render bundle descriptor": {
915 "category": "structure",
916 "extensible": true,
François Beaufort277d2e12019-10-03 14:56:49 +0000917 "members": [
918 {"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true}
919 ]
Austin Eng8a488c12019-08-13 22:12:54 +0000920 },
921
922 "render bundle encoder descriptor": {
923 "category": "structure",
924 "extensible": true,
925 "members": [
François Beaufort277d2e12019-10-03 14:56:49 +0000926 {"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true},
Austin Eng8a488c12019-08-13 22:12:54 +0000927 {"name": "color formats count", "type": "uint32_t"},
928 {"name": "color formats", "type": "texture format", "annotation": "const*", "length": "color formats count"},
Corentin Wallezd55bd7a2019-09-05 09:12:32 +0000929 {"name": "depth stencil format", "type": "texture format", "default": "undefined"},
Austin Eng8a488c12019-08-13 22:12:54 +0000930 {"name": "sample count", "type": "uint32_t", "default": "1"}
931 ]
932 },
933
Jiawei Shao5e811ae2018-12-19 08:21:13 +0000934 "render pass color attachment descriptor": {
935 "category": "structure",
936 "members": [
937 {"name": "attachment", "type": "texture view"},
938 {"name": "resolve target", "type": "texture view", "optional": true},
939 {"name": "load op", "type": "load op"},
940 {"name": "store op", "type": "store op"},
941 {"name": "clear color", "type": "color"}
942 ]
943 },
944
945 "render pass depth stencil attachment descriptor": {
946 "category": "structure",
947 "members": [
948 {"name": "attachment", "type": "texture view"},
949 {"name": "depth load op", "type": "load op"},
950 {"name": "depth store op", "type": "store op"},
951 {"name": "clear depth", "type": "float"},
952 {"name": "stencil load op", "type": "load op"},
953 {"name": "stencil store op", "type": "store op"},
Corentin Wallez8f938712019-07-08 19:20:22 +0000954 {"name": "clear stencil", "type": "uint32_t", "default": "0"}
Jiawei Shao5e811ae2018-12-19 08:21:13 +0000955 ]
956 },
957
Corentin Wallez8d6b5d22018-05-11 13:04:44 -0400958 "render pass descriptor": {
Jiawei Shaob2c50232019-02-27 09:21:56 +0000959 "category": "structure",
Corentin Wallez5f53d532019-10-08 07:34:43 +0000960 "extensible": true,
Jiawei Shaob2c50232019-02-27 09:21:56 +0000961 "members": [
François Beaufort277d2e12019-10-03 14:56:49 +0000962 {"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true},
Jiawei Shaob2c50232019-02-27 09:21:56 +0000963 {"name": "color attachment count", "type": "uint32_t"},
Corentin Walleza838c7d2019-09-20 22:59:47 +0000964 {"name": "color attachments", "type": "render pass color attachment descriptor", "annotation": "const*", "length": "color attachment count"},
Jiawei Shaob2c50232019-02-27 09:21:56 +0000965 {"name": "depth stencil attachment", "type": "render pass depth stencil attachment descriptor", "annotation": "const*", "optional": true}
966 ]
Austin Eng376f1c62017-05-30 20:03:44 -0400967 },
Corentin Wallez82fbccb2018-09-21 00:24:37 +0000968 "render pass encoder": {
969 "category": "object",
970 "methods": [
971 {
Yan, Shaobo300eec02018-12-21 10:40:26 +0000972 "name": "set pipeline",
Corentin Wallez82fbccb2018-09-21 00:24:37 +0000973 "args": [
974 {"name": "pipeline", "type": "render pipeline"}
975 ]
976 },
977 {
Corentin Wallez82fbccb2018-09-21 00:24:37 +0000978 "name": "set bind group",
979 "args": [
980 {"name": "group index", "type": "uint32_t"},
Yan, Shaobo991ab982019-03-18 06:01:37 +0000981 {"name": "group", "type": "bind group"},
Corentin Wallez70c8c102019-10-09 16:08:42 +0000982 {"name": "dynamic offset count", "type": "uint32_t", "default": "0"},
Austin Eng314fd352019-11-01 15:51:01 +0000983 {"name": "dynamic offsets", "type": "uint32_t", "annotation": "const*", "length": "dynamic offset count", "optional": true}
Corentin Wallez82fbccb2018-09-21 00:24:37 +0000984 ]
985 },
986 {
Jiawei Shaoc789b842018-12-10 05:20:19 +0000987 "name": "draw",
Corentin Wallez82fbccb2018-09-21 00:24:37 +0000988 "args": [
989 {"name": "vertex count", "type": "uint32_t"},
990 {"name": "instance count", "type": "uint32_t"},
991 {"name": "first vertex", "type": "uint32_t"},
992 {"name": "first instance", "type": "uint32_t"}
993 ]
994 },
995 {
Jiawei Shaoc789b842018-12-10 05:20:19 +0000996 "name": "draw indexed",
Corentin Wallez82fbccb2018-09-21 00:24:37 +0000997 "args": [
998 {"name": "index count", "type": "uint32_t"},
999 {"name": "instance count", "type": "uint32_t"},
1000 {"name": "first index", "type": "uint32_t"},
Yunchao He0c227e22019-04-12 07:58:44 +00001001 {"name": "base vertex", "type": "int32_t"},
Corentin Wallez82fbccb2018-09-21 00:24:37 +00001002 {"name": "first instance", "type": "uint32_t"}
1003 ]
1004 },
1005 {
Idan Raiter05f7ad52019-06-10 20:56:27 +00001006 "name": "draw indirect",
1007 "args": [
1008 {"name": "indirect buffer", "type": "buffer"},
1009 {"name": "indirect offset", "type": "uint64_t"}
1010 ]
1011 },
1012 {
1013 "name": "draw indexed indirect",
1014 "args": [
1015 {"name": "indirect buffer", "type": "buffer"},
1016 {"name": "indirect offset", "type": "uint64_t"}
1017 ]
1018 },
1019 {
Austin Eng8a488c12019-08-13 22:12:54 +00001020 "name": "execute bundles",
1021 "args": [
1022 {"name": "bundles count", "type": "uint32_t"},
1023 {"name": "bundles", "type": "render bundle", "annotation": "const*", "length": "bundles count"}
1024 ]
1025 },
1026 {
Brandon Jones11d32c82019-02-20 20:21:00 +00001027 "name": "insert debug marker",
1028 "args": [
1029 {"name": "group label", "type": "char", "annotation": "const*", "length": "strlen"}
1030 ]
1031 },
1032 {
1033 "name": "pop debug group",
1034 "args": []
1035 },
1036 {
1037 "name": "push debug group",
1038 "args": [
1039 {"name": "group label", "type": "char", "annotation": "const*", "length": "strlen"}
1040 ]
1041 },
1042 {
Corentin Wallez82fbccb2018-09-21 00:24:37 +00001043 "name": "set stencil reference",
1044 "args": [
1045 {"name": "reference", "type": "uint32_t"}
1046 ]
1047 },
1048 {
1049 "name": "set blend color",
1050 "args": [
Corentin Wallez00976d02019-02-05 12:13:10 +00001051 {"name": "color", "type": "color", "annotation": "const*"}
Corentin Wallez82fbccb2018-09-21 00:24:37 +00001052 ]
1053 },
1054 {
Yunchao He050ab492019-07-04 15:30:59 +00001055 "name": "set viewport",
1056 "args": [
1057 {"name": "x", "type": "float"},
1058 {"name": "y", "type": "float"},
1059 {"name": "width", "type": "float"},
1060 {"name": "height", "type": "float"},
1061 {"name": "min depth", "type": "float"},
1062 {"name": "max depth", "type": "float"}
1063 ]
1064 },
1065 {
Corentin Wallez82fbccb2018-09-21 00:24:37 +00001066 "name": "set scissor rect",
1067 "args": [
1068 {"name": "x", "type": "uint32_t"},
1069 {"name": "y", "type": "uint32_t"},
1070 {"name": "width", "type": "uint32_t"},
1071 {"name": "height", "type": "uint32_t"}
1072 ]
1073 },
1074 {
François Beaufort91b21422019-10-10 07:29:58 +00001075 "name": "set vertex buffer",
Corentin Wallez82fbccb2018-09-21 00:24:37 +00001076 "args": [
François Beaufort91b21422019-10-10 07:29:58 +00001077 {"name": "slot", "type": "uint32_t"},
1078 {"name": "buffer", "type": "buffer"},
1079 {"name": "offset", "type": "uint64_t", "default": "0"}
Corentin Wallez82fbccb2018-09-21 00:24:37 +00001080 ]
1081 },
1082 {
1083 "name": "set index buffer",
1084 "args": [
1085 {"name": "buffer", "type": "buffer"},
Corentin Wallezd2855252019-10-10 17:21:48 +00001086 {"name": "offset", "type": "uint64_t", "default": "0"}
Corentin Wallez82fbccb2018-09-21 00:24:37 +00001087 ]
1088 },
1089 {
Kai Ninomiya4078ed82019-08-27 17:56:23 +00001090 "name": "end pass"
Corentin Wallez82fbccb2018-09-21 00:24:37 +00001091 }
1092 ]
1093 },
Corentin Wallez29ced282017-07-14 10:58:07 -04001094 "render pipeline": {
1095 "category": "object"
1096 },
Yan, Shaoboa4924272018-12-10 19:47:22 +00001097 "render pipeline descriptor": {
1098 "category": "structure",
1099 "extensible": true,
1100 "members": [
François Beaufort277d2e12019-10-03 14:56:49 +00001101 {"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true},
Yan, Shaoboa4924272018-12-10 19:47:22 +00001102 {"name": "layout", "type": "pipeline layout"},
Jinho Bang0b826712019-10-07 12:23:09 +00001103 {"name": "vertex stage", "type": "programmable stage descriptor"},
1104 {"name": "fragment stage", "type": "programmable stage descriptor", "annotation": "const*", "optional": true},
François Beaufort13c472e2019-08-29 15:56:31 +00001105 {"name": "vertex input", "type": "vertex input descriptor", "annotation": "const*", "optional": true},
Yan, Shaoboa4924272018-12-10 19:47:22 +00001106 {"name": "primitive topology", "type": "primitive topology"},
François Beaufort4af98082019-07-16 17:01:59 +00001107 {"name": "rasterization state", "type": "rasterization state descriptor", "annotation": "const*", "optional": true},
Corentin Wallez8f938712019-07-08 19:20:22 +00001108 {"name": "sample count", "type": "uint32_t", "default": "1"},
Corentin Wallezf872e692019-02-13 10:15:38 +00001109 {"name": "depth stencil state", "type": "depth stencil state descriptor", "annotation": "const*", "optional": true},
Jiawei Shao20301662019-02-21 00:45:19 +00001110 {"name": "color state count", "type": "uint32_t"},
Corentin Wallezc81a7172019-09-20 23:22:27 +00001111 {"name": "color states", "type": "color state descriptor", "annotation": "const*", "length": "color state count"},
Corentin Wallezf07e85c2019-07-15 20:47:56 +00001112 {"name": "sample mask", "type": "uint32_t", "default": "0xFFFFFFFF"},
1113 {"name": "alpha to coverage enabled", "type": "bool", "default": "false"}
Corentin Wallez29ced282017-07-14 10:58:07 -04001114 ]
1115 },
Austin Eng376f1c62017-05-30 20:03:44 -04001116 "sampler": {
1117 "category": "object"
1118 },
Corentin Wallez1ae19e82018-05-17 17:09:07 -04001119 "sampler descriptor": {
1120 "category": "structure",
1121 "extensible": true,
1122 "members": [
François Beaufort277d2e12019-10-03 14:56:49 +00001123 {"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true},
Corentin Wallez8f938712019-07-08 19:20:22 +00001124 {"name": "address mode u", "type": "address mode", "default": "clamp to edge"},
1125 {"name": "address mode v", "type": "address mode", "default": "clamp to edge"},
1126 {"name": "address mode w", "type": "address mode", "default": "clamp to edge"},
1127 {"name": "mag filter", "type": "filter mode", "default": "nearest"},
1128 {"name": "min filter", "type": "filter mode", "default": "nearest"},
1129 {"name": "mipmap filter", "type": "filter mode", "default": "nearest"},
1130 {"name": "lod min clamp", "type": "float", "default": "0.0f"},
1131 {"name": "lod max clamp", "type": "float", "default": "1000.0f"},
1132 {"name": "compare", "type": "compare function", "default": "never"}
Austin Eng376f1c62017-05-30 20:03:44 -04001133 ]
1134 },
1135 "shader module": {
1136 "category": "object"
1137 },
Corentin Wallezdf671032018-08-20 17:01:20 +02001138 "shader module descriptor": {
1139 "category": "structure",
1140 "extensible": true,
1141 "members": [
François Beaufort277d2e12019-10-03 14:56:49 +00001142 {"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true},
Corentin Wallezdf671032018-08-20 17:01:20 +02001143 {"name": "code size", "type": "uint32_t"},
1144 {"name": "code", "type": "uint32_t", "annotation": "const*", "length": "code size"}
Austin Eng376f1c62017-05-30 20:03:44 -04001145 ]
1146 },
Corentin Wallezb9b088f2019-08-27 08:42:29 +00001147 "shader stage": {
Austin Eng376f1c62017-05-30 20:03:44 -04001148 "category": "bitmask",
1149 "values": [
Corentin Wallezbe985c12017-07-20 11:00:39 -04001150 {"value": 0, "name": "none"},
Austin Eng376f1c62017-05-30 20:03:44 -04001151 {"value": 1, "name": "vertex"},
1152 {"value": 2, "name": "fragment"},
1153 {"value": 4, "name": "compute"}
1154 ]
1155 },
1156 "stencil operation": {
1157 "category": "enum",
1158 "values": [
1159 {"value": 0, "name": "keep"},
1160 {"value": 1, "name": "zero"},
1161 {"value": 2, "name": "replace"},
1162 {"value": 3, "name": "invert"},
1163 {"value": 4, "name": "increment clamp"},
1164 {"value": 5, "name": "decrement clamp"},
1165 {"value": 6, "name": "increment wrap"},
1166 {"value": 7, "name": "decrement wrap"}
Austin Eng10634392017-06-01 11:30:03 -04001167 ]
Austin Eng376f1c62017-05-30 20:03:44 -04001168 },
Yunchao He48485e32018-12-15 02:32:34 +00001169 "stencil state face descriptor": {
1170 "category": "structure",
1171 "extensible": false,
1172 "members": [
Corentin Wallez8f938712019-07-08 19:20:22 +00001173 {"name": "compare", "type": "compare function", "default": "always"},
1174 {"name": "fail op", "type": "stencil operation", "default": "keep"},
1175 {"name": "depth fail op", "type": "stencil operation", "default": "keep"},
1176 {"name": "pass op", "type": "stencil operation", "default": "keep"}
Yunchao He48485e32018-12-15 02:32:34 +00001177 ]
1178 },
Kai Ninomiya35bf4242017-07-19 15:41:17 -07001179 "swap chain": {
1180 "category": "object",
1181 "methods": [
1182 {
1183 "name": "configure",
1184 "args": [
1185 {"name": "format", "type": "texture format"},
Corentin Wallez9e9e29f2019-08-27 08:21:39 +00001186 {"name": "allowed usage", "type": "texture usage"},
Kai Ninomiya35bf4242017-07-19 15:41:17 -07001187 {"name": "width", "type": "uint32_t"},
1188 {"name": "height", "type": "uint32_t"}
1189 ]
1190 },
1191 {
1192 "name": "get next texture",
1193 "returns": "texture"
1194 },
1195 {
1196 "name": "present",
1197 "args": [
1198 {"name": "texture", "type": "texture"}
1199 ]
1200 }
1201 ]
1202 },
Corentin Wallez7be2a712019-02-15 11:15:58 +00001203 "swap chain descriptor": {
1204 "category": "structure",
1205 "extensible": true,
1206 "members": [
François Beaufort277d2e12019-10-03 14:56:49 +00001207 {"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true},
Corentin Wallez7be2a712019-02-15 11:15:58 +00001208 {"name": "implementation", "type": "uint64_t"}
Kai Ninomiya35bf4242017-07-19 15:41:17 -07001209 ]
1210 },
Austin Eng376f1c62017-05-30 20:03:44 -04001211 "texture": {
1212 "category": "object",
1213 "methods": [
1214 {
Austin Engb4b3ea052019-04-09 16:57:00 +00001215 "name": "create view",
Jiawei Shao6329e5a2018-10-12 08:32:58 +00001216 "returns": "texture view",
1217 "args": [
Kai Ninomiya93196db2019-08-26 22:51:19 +00001218 {"name": "descriptor", "type": "texture view descriptor", "annotation": "const*", "optional": true}
Jiawei Shao6329e5a2018-10-12 08:32:58 +00001219 ]
Natasha Leecae68ff2019-03-27 22:04:10 +00001220 },
1221 {
1222 "name": "destroy"
Austin Eng376f1c62017-05-30 20:03:44 -04001223 }
1224 ]
1225 },
Brandon Jonesac71e342018-11-28 17:54:13 +00001226 "texture aspect": {
Corentin Wallez5df84ce2019-07-08 08:55:21 +00001227 "category": "enum",
Brandon Jonesac71e342018-11-28 17:54:13 +00001228 "values": [
Corentin Wallez5df84ce2019-07-08 08:55:21 +00001229 {"value": 0, "name": "all"},
1230 {"value": 1, "name": "stencil only"},
1231 {"value": 2, "name": "depth only"}
Brandon Jonesac71e342018-11-28 17:54:13 +00001232 ]
1233 },
Corentin Wallezf463a202019-08-21 12:16:33 +00001234 "texture component type": {
1235 "category": "enum",
1236 "values": [
1237 {"value": 0, "name": "float"},
1238 {"value": 1, "name": "sint"},
1239 {"value": 2, "name": "uint"}
1240 ]
1241 },
Brandon Jonesac71e342018-11-28 17:54:13 +00001242 "texture copy view": {
1243 "category": "structure",
1244 "extensible": true,
1245 "members": [
1246 {"name": "texture", "type": "texture"},
Corentin Wallez8f938712019-07-08 19:20:22 +00001247 {"name": "mip level", "type": "uint32_t", "default": "0"},
1248 {"name": "array layer", "type": "uint32_t", "default": "0"},
Brandon Jones069664e2018-12-12 09:27:46 +00001249 {"name": "origin", "type": "origin 3D"}
Brandon Jonesac71e342018-11-28 17:54:13 +00001250 ]
1251 },
Jiawei Shao425428f2018-08-27 08:44:48 +08001252 "texture descriptor": {
1253 "category": "structure",
1254 "extensible": true,
1255 "members": [
François Beaufort277d2e12019-10-03 14:56:49 +00001256 {"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true},
Corentin Wallez9e9e29f2019-08-27 08:21:39 +00001257 {"name": "usage", "type": "texture usage"},
Corentin Wallez8f938712019-07-08 19:20:22 +00001258 {"name": "dimension", "type": "texture dimension", "default": "2D"},
Corentin Wallez29353d62018-09-18 12:49:22 +00001259 {"name": "size", "type": "extent 3D"},
Corentin Wallez8f938712019-07-08 19:20:22 +00001260 {"name": "array layer count", "type": "uint32_t", "default": "1"},
Jiawei Shao425428f2018-08-27 08:44:48 +08001261 {"name": "format", "type": "texture format"},
Corentin Wallez8f938712019-07-08 19:20:22 +00001262 {"name": "mip level count", "type": "uint32_t", "default": 1},
1263 {"name": "sample count", "type": "uint32_t", "default": 1}
Austin Eng376f1c62017-05-30 20:03:44 -04001264 ]
1265 },
1266 "texture dimension": {
1267 "category": "enum",
1268 "values": [
Corentin Wallezf07e85c2019-07-15 20:47:56 +00001269 {"value": 0, "name": "1D"},
1270 {"value": 1, "name": "2D"},
1271 {"value": 2, "name": "3D"}
Austin Eng376f1c62017-05-30 20:03:44 -04001272 ]
1273 },
Corentin Walleza60799f2018-09-11 18:16:54 +00001274 "texture format": {
1275 "category": "enum",
1276 "values": [
Corentin Wallezd55bd7a2019-09-05 09:12:32 +00001277 {"value": 0, "name": "undefined", "valid": false},
1278 {"value": 1, "name": "R8 unorm"},
1279 {"value": 2, "name": "R8 snorm"},
1280 {"value": 3, "name": "R8 uint"},
1281 {"value": 4, "name": "R8 sint"},
Corentin Wallez431d6182019-07-01 09:58:07 +00001282
Corentin Wallezd55bd7a2019-09-05 09:12:32 +00001283 {"value": 5, "name": "R16 uint"},
1284 {"value": 6, "name": "R16 sint"},
1285 {"value": 7, "name": "R16 float"},
1286 {"value": 8, "name": "RG8 unorm"},
1287 {"value": 9, "name": "RG8 snorm"},
1288 {"value": 10, "name": "RG8 uint"},
1289 {"value": 11, "name": "RG8 sint"},
Corentin Wallez431d6182019-07-01 09:58:07 +00001290
Corentin Wallezd55bd7a2019-09-05 09:12:32 +00001291 {"value": 12, "name": "R32 float"},
1292 {"value": 13, "name": "R32 uint"},
1293 {"value": 14, "name": "R32 sint"},
1294 {"value": 15, "name": "RG16 uint"},
1295 {"value": 16, "name": "RG16 sint"},
1296 {"value": 17, "name": "RG16 float"},
1297 {"value": 18, "name": "RGBA8 unorm"},
1298 {"value": 19, "name": "RGBA8 unorm srgb"},
1299 {"value": 20, "name": "RGBA8 snorm"},
1300 {"value": 21, "name": "RGBA8 uint"},
1301 {"value": 22, "name": "RGBA8 sint"},
1302 {"value": 23, "name": "BGRA8 unorm"},
1303 {"value": 24, "name": "BGRA8 unorm srgb"},
1304 {"value": 25, "name": "RGB10 A2 unorm"},
1305 {"value": 26, "name": "RG11 B10 float"},
Corentin Wallez431d6182019-07-01 09:58:07 +00001306
Corentin Wallezd55bd7a2019-09-05 09:12:32 +00001307 {"value": 27, "name": "RG32 float"},
1308 {"value": 28, "name": "RG32 uint"},
1309 {"value": 29, "name": "RG32 sint"},
1310 {"value": 30, "name": "RGBA16 uint"},
1311 {"value": 31, "name": "RGBA16 sint"},
1312 {"value": 32, "name": "RGBA16 float"},
Corentin Wallez431d6182019-07-01 09:58:07 +00001313
Corentin Wallezd55bd7a2019-09-05 09:12:32 +00001314 {"value": 33, "name": "RGBA32 float"},
1315 {"value": 34, "name": "RGBA32 uint"},
1316 {"value": 35, "name": "RGBA32 sint"},
Corentin Wallez431d6182019-07-01 09:58:07 +00001317
Corentin Wallezd55bd7a2019-09-05 09:12:32 +00001318 {"value": 36, "name": "depth32 float"},
1319 {"value": 37, "name": "depth24 plus"},
1320 {"value": 38, "name": "depth24 plus stencil8"},
Corentin Wallez431d6182019-07-01 09:58:07 +00001321
Corentin Wallezd55bd7a2019-09-05 09:12:32 +00001322 {"value": 39, "name": "BC1 RGBA unorm"},
1323 {"value": 40, "name": "BC1 RGBA unorm srgb"},
1324 {"value": 41, "name": "BC2 RGBA unorm"},
1325 {"value": 42, "name": "BC2 RGBA unorm srgb"},
1326 {"value": 43, "name": "BC3 RGBA unorm"},
1327 {"value": 44, "name": "BC3 RGBA unorm srgb"},
1328 {"value": 45, "name": "BC4 R unorm"},
1329 {"value": 46, "name": "BC4 R snorm"},
1330 {"value": 47, "name": "BC5 RG unorm"},
1331 {"value": 48, "name": "BC5 RG snorm"},
1332 {"value": 49, "name": "BC6H RGB ufloat"},
1333 {"value": 50, "name": "BC6H RGB sfloat"},
1334 {"value": 51, "name": "BC7 RGBA unorm"},
1335 {"value": 52, "name": "BC7 RGBA unorm srgb"}
Corentin Walleza60799f2018-09-11 18:16:54 +00001336 ]
1337 },
Corentin Wallez9e9e29f2019-08-27 08:21:39 +00001338 "texture usage": {
Austin Eng376f1c62017-05-30 20:03:44 -04001339 "category": "bitmask",
1340 "values": [
1341 {"value": 0, "name": "none"},
Corentin Wallezec053552019-07-08 10:05:46 +00001342 {"value": 1, "name": "copy src"},
1343 {"value": 2, "name": "copy dst"},
Austin Eng376f1c62017-05-30 20:03:44 -04001344 {"value": 4, "name": "sampled"},
1345 {"value": 8, "name": "storage"},
Kai Ninomiya35bf4242017-07-19 15:41:17 -07001346 {"value": 16, "name": "output attachment"},
1347 {"value": 32, "name": "present"}
Austin Eng376f1c62017-05-30 20:03:44 -04001348 ]
1349 },
Jiawei Shao6329e5a2018-10-12 08:32:58 +00001350 "texture view descriptor": {
1351 "category": "structure",
1352 "extensible": true,
1353 "members": [
François Beaufort277d2e12019-10-03 14:56:49 +00001354 {"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true},
Corentin Wallezd55bd7a2019-09-05 09:12:32 +00001355 {"name": "format", "type": "texture format", "default": "undefined"},
1356 {"name": "dimension", "type": "texture view dimension", "default": "undefined"},
Corentin Wallez8f938712019-07-08 19:20:22 +00001357 {"name": "base mip level", "type": "uint32_t", "default": "0"},
Kai Ninomiya93196db2019-08-26 22:51:19 +00001358 {"name": "mip level count", "type": "uint32_t", "default": "0"},
Corentin Wallez8f938712019-07-08 19:20:22 +00001359 {"name": "base array layer", "type": "uint32_t", "default": "0"},
Corentin Wallezdbe74bc2019-09-10 08:30:43 +00001360 {"name": "array layer count", "type": "uint32_t", "default": "0"},
1361 {"name": "aspect", "type": "texture aspect", "default": "all"}
Jiawei Shao6329e5a2018-10-12 08:32:58 +00001362 ],
1363 "TODO": [
1364 "jiawei.shao@intel.com: Allow choosing the aspect (depth vs. stencil)"
1365 ]
1366 },
Austin Eng376f1c62017-05-30 20:03:44 -04001367 "texture view": {
1368 "category": "object"
1369 },
Jiawei Shao6329e5a2018-10-12 08:32:58 +00001370 "texture view dimension": {
1371 "category": "enum",
1372 "values": [
Corentin Wallezd55bd7a2019-09-05 09:12:32 +00001373 {"value": 0, "name": "undefined", "valid": false},
1374 {"value": 1, "name": "1D"},
1375 {"value": 2, "name": "2D"},
1376 {"value": 3, "name": "2D array"},
1377 {"value": 4, "name": "cube"},
1378 {"value": 5, "name": "cube array"},
1379 {"value": 6, "name": "3D"}
Jiawei Shao6329e5a2018-10-12 08:32:58 +00001380 ],
1381 "TODO": [
Jiawei Shaodb3b8932018-11-07 09:52:33 +00001382 "jiawei.shao@intel.com: support 1D and 3D texture views"
Jiawei Shao6329e5a2018-10-12 08:32:58 +00001383 ]
1384 },
Austin Eng376f1c62017-05-30 20:03:44 -04001385 "vertex format": {
1386 "category": "enum",
1387 "values": [
Yan, Shaoboe105f962019-03-21 11:18:31 +00001388 {"value": 0, "name": "uChar2"},
1389 {"value": 1, "name": "uChar4"},
1390 {"value": 2, "name": "char2"},
1391 {"value": 3, "name": "char4"},
1392 {"value": 4, "name": "uChar2 norm"},
1393 {"value": 5, "name": "uChar4 norm"},
1394 {"value": 6, "name": "char2 norm"},
1395 {"value": 7, "name": "char4 norm"},
1396 {"value": 8, "name": "uShort2"},
1397 {"value": 9, "name": "uShort4"},
1398 {"value": 10, "name": "short2"},
1399 {"value": 11, "name": "short4"},
1400 {"value": 12, "name": "uShort2 norm"},
1401 {"value": 13, "name": "uShort4 norm"},
1402 {"value": 14, "name": "short2 norm"},
1403 {"value": 15, "name": "short4 norm"},
1404 {"value": 16, "name": "half2"},
1405 {"value": 17, "name": "half4"},
1406 {"value": 18, "name": "float"},
1407 {"value": 19, "name": "float2"},
1408 {"value": 20, "name": "float3"},
1409 {"value": 21, "name": "float4"},
1410 {"value": 22, "name": "uInt"},
1411 {"value": 23, "name": "uInt2"},
1412 {"value": 24, "name": "uInt3"},
1413 {"value": 25, "name": "uInt4"},
1414 {"value": 26, "name": "int"},
1415 {"value": 27, "name": "int2"},
1416 {"value": 28, "name": "int3"},
1417 {"value": 29, "name": "int4"}
Austin Eng376f1c62017-05-30 20:03:44 -04001418 ]
1419 },
Austin Engc7f416c2019-01-15 20:49:53 +00001420 "ObjectType": {
1421 "_comment": "Only used for the wire",
1422 "category": "native"
1423 },
1424 "ObjectId": {
1425 "_comment": "Only used for the wire",
1426 "category": "native"
1427 },
1428 "ObjectHandle": {
1429 "_comment": "Only used for the wire",
1430 "category": "native"
1431 },
Austin Eng376f1c62017-05-30 20:03:44 -04001432 "void": {
1433 "category": "native"
1434 },
1435 "uint32_t": {
1436 "category": "native"
Kai Ninomiya35bf4242017-07-19 15:41:17 -07001437 },
Yunchao Hec33a8c12019-04-11 18:46:54 +00001438 "int32_t": {
1439 "category": "native"
1440 },
Kai Ninomiya35bf4242017-07-19 15:41:17 -07001441 "uint64_t": {
1442 "category": "native"
Corentin Walleza60799f2018-09-11 18:16:54 +00001443 },
1444 "uint8_t": {
1445 "category": "native"
Austin Eng376f1c62017-05-30 20:03:44 -04001446 }
1447}