| { |
| "_comment": [ |
| "Copyright 2019 The Dawn Authors", |
| "", |
| "Licensed under the Apache License, Version 2.0 (the \"License\");", |
| "you may not use this file except in compliance with the License.", |
| "You may obtain a copy of the License at", |
| "", |
| " http://www.apache.org/licenses/LICENSE-2.0", |
| "", |
| "Unless required by applicable law or agreed to in writing, software", |
| "distributed under the License is distributed on an \"AS IS\" BASIS,", |
| "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.", |
| "See the License for the specific language governing permissions and", |
| "limitations under the License." |
| ], |
| |
| "_doc": "See docs/codegen.md", |
| |
| "commands": { |
| "buffer map async": [ |
| { "name": "buffer id", "type": "ObjectId" }, |
| { "name": "request serial", "type": "uint32_t" }, |
| { "name": "mode", "type": "map mode" }, |
| { "name": "offset", "type": "uint64_t"}, |
| { "name": "size", "type": "uint64_t"}, |
| { "name": "handle create info length", "type": "uint64_t" }, |
| { "name": "handle create info", "type": "uint8_t", "annotation": "const*", "length": "handle create info length", "skip_serialize": true} |
| ], |
| "buffer update mapped data": [ |
| { "name": "buffer id", "type": "ObjectId" }, |
| { "name": "write flush info length", "type": "uint64_t" }, |
| { "name": "write flush info", "type": "uint8_t", "annotation": "const*", "length": "write flush info length", "skip_serialize": true} |
| ], |
| "device create buffer": [ |
| { "name": "device id", "type": "ObjectId" }, |
| { "name": "descriptor", "type": "buffer descriptor", "annotation": "const*" }, |
| { "name": "result", "type": "ObjectHandle", "handle_type": "buffer" }, |
| { "name": "handle create info length", "type": "uint64_t" }, |
| { "name": "handle create info", "type": "uint8_t", "annotation": "const*", "length": "handle create info length", "skip_serialize": true} |
| ], |
| "device create compute pipeline async": [ |
| { "name": "device id", "type": "ObjectId" }, |
| { "name": "request serial", "type": "uint64_t" }, |
| { "name": "pipeline object handle", "type": "ObjectHandle", "handle_type": "compute pipeline"}, |
| { "name": "descriptor", "type": "compute pipeline descriptor", "annotation": "const*"} |
| ], |
| "device create render pipeline async": [ |
| { "name": "device id", "type": "ObjectId" }, |
| { "name": "request serial", "type": "uint64_t" }, |
| { "name": "pipeline object handle", "type": "ObjectHandle", "handle_type": "render pipeline"}, |
| { "name": "descriptor", "type": "render pipeline descriptor 2", "annotation": "const*"} |
| ], |
| "device pop error scope": [ |
| { "name": "device id", "type": "ObjectId" }, |
| { "name": "request serial", "type": "uint64_t" } |
| ], |
| "destroy object": [ |
| { "name": "object type", "type": "ObjectType" }, |
| { "name": "object id", "type": "ObjectId" } |
| ], |
| "fence on completion": [ |
| { "name": "fence id", "type": "ObjectId" }, |
| { "name": "value", "type": "uint64_t" }, |
| { "name": "request serial", "type": "uint64_t" } |
| ], |
| "queue on submitted work done": [ |
| { "name": "queue id", "type": "ObjectId" }, |
| { "name": "signal value", "type": "uint64_t" }, |
| { "name": "request serial", "type": "uint64_t" } |
| ], |
| "queue write buffer internal": [ |
| {"name": "queue id", "type": "ObjectId" }, |
| {"name": "buffer id", "type": "ObjectId" }, |
| {"name": "buffer offset", "type": "uint64_t"}, |
| {"name": "data", "type": "uint8_t", "annotation": "const*", "length": "size"}, |
| {"name": "size", "type": "uint64_t"} |
| ], |
| "queue write texture internal": [ |
| {"name": "queue id", "type": "ObjectId" }, |
| {"name": "destination", "type": "image copy texture", "annotation": "const*"}, |
| {"name": "data", "type": "uint8_t", "annotation": "const*", "length": "data size"}, |
| {"name": "data size", "type": "uint64_t"}, |
| {"name": "data layout", "type": "texture data layout", "annotation": "const*"}, |
| {"name": "writeSize", "type": "extent 3D", "annotation": "const*"} |
| ], |
| "shader module get compilation info": [ |
| { "name": "shader module id", "type": "ObjectId" }, |
| { "name": "request serial", "type": "uint64_t" } |
| ] |
| }, |
| "return commands": { |
| "buffer map async callback": [ |
| { "name": "buffer", "type": "ObjectHandle", "handle_type": "buffer" }, |
| { "name": "request serial", "type": "uint32_t" }, |
| { "name": "status", "type": "uint32_t" }, |
| { "name": "read initial data info length", "type": "uint64_t" }, |
| { "name": "read initial data info", "type": "uint8_t", "annotation": "const*", "length": "read initial data info length", "skip_serialize": true } |
| ], |
| "device create compute pipeline async callback": [ |
| { "name": "device", "type": "ObjectHandle", "handle_type": "device" }, |
| { "name": "request serial", "type": "uint64_t" }, |
| { "name": "status", "type": "create pipeline async status" }, |
| { "name": "message", "type": "char", "annotation": "const*", "length": "strlen" } |
| ], |
| "device create render pipeline async callback": [ |
| { "name": "device", "type": "ObjectHandle", "handle_type": "device" }, |
| { "name": "request serial", "type": "uint64_t" }, |
| { "name": "status", "type": "create pipeline async status" }, |
| { "name": "message", "type": "char", "annotation": "const*", "length": "strlen" } |
| ], |
| "device uncaptured error callback": [ |
| { "name": "device", "type": "ObjectHandle", "handle_type": "device" }, |
| { "name": "type", "type": "error type"}, |
| { "name": "message", "type": "char", "annotation": "const*", "length": "strlen" } |
| ], |
| "device lost callback" : [ |
| { "name": "device", "type": "ObjectHandle", "handle_type": "device" }, |
| { "name": "message", "type": "char", "annotation": "const*", "length": "strlen" } |
| ], |
| "device pop error scope callback": [ |
| { "name": "device", "type": "ObjectHandle", "handle_type": "device" }, |
| { "name": "request serial", "type": "uint64_t" }, |
| { "name": "type", "type": "error type" }, |
| { "name": "message", "type": "char", "annotation": "const*", "length": "strlen" } |
| ], |
| "fence on completion callback": [ |
| { "name": "fence", "type": "ObjectHandle", "handle_type": "fence" }, |
| { "name": "request serial", "type": "uint64_t" }, |
| { "name": "status", "type": "fence completion status" } |
| ], |
| "fence update completed value": [ |
| { "name": "fence", "type": "ObjectHandle", "handle_type": "fence" }, |
| { "name": "value", "type": "uint64_t" } |
| ], |
| "queue work done callback": [ |
| { "name": "queue", "type": "ObjectHandle", "handle_type": "queue" }, |
| { "name": "request serial", "type": "uint64_t" }, |
| { "name": "status", "type": "queue work done status" } |
| ], |
| "shader module get compilation info callback": [ |
| { "name": "shader module", "type": "ObjectHandle", "handle_type": "shader module" }, |
| { "name": "request serial", "type": "uint64_t" }, |
| { "name": "status", "type": "compilation info request status" }, |
| { "name": "info", "type": "compilation info", "annotation": "const*", "optional": true } |
| ] |
| }, |
| "special items": { |
| "client_side_structures": [ |
| "SurfaceDescriptorFromMetalLayer", |
| "SurfaceDescriptorFromWindowsHWND", |
| "SurfaceDescriptorFromXlib" |
| ], |
| "client_side_commands": [ |
| "BufferMapAsync", |
| "BufferGetConstMappedRange", |
| "BufferGetMappedRange", |
| "DeviceCreateBuffer", |
| "DeviceCreateComputePipelineAsync", |
| "DeviceCreateRenderPipelineAsync", |
| "DevicePopErrorScope", |
| "DeviceSetDeviceLostCallback", |
| "DeviceSetUncapturedErrorCallback", |
| "FenceGetCompletedValue", |
| "FenceOnCompletion", |
| "ShaderModuleGetCompilationInfo", |
| "QueueOnSubmittedWorkDone", |
| "QueueWriteBuffer", |
| "QueueWriteTexture" |
| ], |
| "client_handwritten_commands": [ |
| "BufferDestroy", |
| "BufferUnmap", |
| "DeviceCreateErrorBuffer", |
| "DeviceGetDefaultQueue", |
| "DeviceGetQueue", |
| "DeviceInjectError", |
| "DevicePushErrorScope", |
| "QueueCreateFence" |
| ], |
| "client_special_objects": [ |
| "Buffer", |
| "Device", |
| "Fence", |
| "Queue", |
| "ShaderModule" |
| ], |
| "server_custom_pre_handler_commands": [ |
| "BufferDestroy", |
| "BufferUnmap" |
| ], |
| "server_handwritten_commands": [ |
| "QueueSignal" |
| ], |
| "server_reverse_lookup_objects": [ |
| "Fence" |
| ] |
| } |
| } |