commit | 37297d295ecb4c558bc94033d85b3dce77a04ff8 | [log] [tgz] |
---|---|---|
author | Lingfeng Yang <lfy@google.com> | Wed Mar 13 08:36:29 2019 -0700 |
committer | Lingfeng Yang <lfy@google.com> | Wed Mar 13 15:40:50 2019 +0000 |
tree | 1b975910bd18e2570608337c126d740db12ec3cc | |
parent | 96a9e538030e083e0223403e0db2ef3db4df94dc [diff] |
Put current Cereal code Does not work yet. Needs to be specialized to work with cereal.py, and generalized to work with different target .json's. (btw, Google is the sole author of all of this code) Change-Id: Ie0fcecf1fc6c89d4ea96d5f52e1d510c4484a3d1
Vulkan Cereal is a code generator that makes it easier to serialize and forward Vulkan API calls from one place to another, such as:
Currently, Vulkan Cereal is written in Python as it is a well-known language with batteries included that is easy to edit by many developers. However, it's possible this can change in the future to an Ocaml / Haskell DSL as it will be much easier to specify generic and correct code generators.
Vulkan Cereal requires Python 3+ along with lxml for XML parsing.
python cereal.py [path-to-vk.xml] [target-module.json]
We realize that due to the broad set of possible use cases, it can get confusing. We choose to go with the terms “guest” and “host” for now as it reflects the current actual usage the best.
Cereal takes as input a Vulkan specification in the form of an XML document along with a target module that consists of:
We will include some widely-used target modules as examples. Target modules are specified in .json format.