• Home
Name Date Size #Lines LOC

..--

api/03-May-2024-13,33311,425

doc/03-May-2024-32

include/03-May-2024-288143

libvulkan/03-May-2024-10,9718,684

nulldrv/03-May-2024-2,3071,898

tools/03-May-2024-679593

vkjson/03-May-2024-2,1311,826

.clang-formatD03-May-202438 32

Android.bpD03-May-20241.1 KiB3734

OWNERSD03-May-202425 21

README.mdD03-May-20241.6 KiB2919

README.md

1# frameworks/native/vulkan
2
3This subdirectory contains Android's Vulkan loader, as well as some Vulkan-related tools useful to platform developers.
4
5## Coding Style
6
7We follow the [Chromium coding style](https://www.chromium.org/developers/coding-style) for naming and formatting, except with four-space indentation instead of two spaces. In general, any C++ features supported by the prebuilt platform toolchain are allowed.
8
9Use "clang-format -style=file" to format all C/C++ code, except code imported verbatim from elsewhere. Setting up git-clang-format in your environment is recommended.
10
11## Code Generation
12
13We generate several parts of the loader and tools from a Vulkan API description file, stored in `api/vulkan.api`. Code generation must be done manually because the generator tools aren't part of the platform toolchain (yet?). Files named `foo_gen.*` are generated from the API file and a template file named `foo.tmpl`.
14
15 To run the generator:
16
17### One-time setup
18- Install [golang](https://golang.org/), if you don't have it already.
19- Create a directory (e.g. `$HOME/lib/go`) for local go sources and binaries and add it to `$GOPATH`.
20- `$ git clone https://android.googlesource.com/platform/tools/gpu $GOPATH/src/android.googlesource.com/platform/tools/gpu`
21- `$ go get android.googlesource.com/platform/tools/gpu/api/...`
22- You should now have `$GOPATH/bin/apic`. You might want to add `$GOPATH/bin` to your `$PATH`.
23
24### Generating code
25To generate `libvulkan/*_gen.*`,
26- `$ cd libvulkan`
27- `$ apic template ../api/vulkan.api code-generator.tmpl`
28Similar for `nulldrv/null_driver_gen.*`.
29