blob: 79a65c713cdfee64072d285715b96429b2d8fff0 [file] [log] [blame] [view]
# vkproto/example
See the parent vkproto/README.md for general information about vkproto.
## AGI Instrumentation
The layer overrides for vkproto is configured to request the
`VK_LAYER_GOOGLE_gpu_inspector`. Providing this layer service and
capability is done using the gapii.far package as built within the
AGI tree / build.
At the time of this writing, building gapii.far within the AGI build
for, e.g., arm64 is done using:
- `CC=/usr/bin/gcc-8 bazel build --subcommands --config fuchsia_arm64 //gapii/fuchsia:gapii.far`
The output of this gapii.far build is created in the AGI build as:
- `bazel-bin/gapii/fuchsia/gapii.far`
### Gapii Package Serving
gapii.far is served to a running Fuchsia instance using the following example
3 step process:
1. Publish the gapii package to a package repository
- `ffx repository create ~/gapii-repo`
- `ffx repository publish --package-archive bazel-bin/gapii/fuchsia/gapii.far ~/gapii-repo`
2. Start the repository
- `ffx repository server start --background -r gapii-repo --repo-path ~/gapii-repo`
3. Register the repository
- `ffx target repository register -r gapii-repo`
### Component Management
vkproto/example as defined must run in the `/core/agis:vulkan-trace`
collection that was specifically designed with the capability routing
needed for Vulkan tracable components that use AGI.
With the gapii.far archive published as described above, creating the
vkproto component underneath `/core/agis:vulkan-trace` requires the
following steps.
1. `ffx component create /core/agis/vulkan-trace:vkproto fuchsia-pkg://fuchsia.com/vkproto-pkg#meta/vkproto-cmp.cm`
2. `ffx component start /core/agis/vulkan-trace:vkproto`
Creating and starting the vkproto component will implicitly load the
gapii-server component needed to augment the Vulkan loader with the
directory capability needed to load the `VK_LAYER_GOOGLE_gpu_inspector` layer.