1#pragma once
2
3#include <vector>
4#include <map>
5
6#include "taichi/codegen/spirv/kernel_utils.h"
7#include "taichi/aot/module_loader.h"
8
9namespace taichi::lang {
10namespace gfx {
11
12/**
13 * AOT module data for the Unified Device API backend.
14 */
15struct TaichiAotData {
16 // BufferMetaData metadata;
17 std::vector<std::vector<std::vector<uint32_t>>> spirv_codes;
18 std::vector<spirv::TaichiKernelAttributes> kernels;
19 std::vector<aot::CompiledFieldData> fields;
20 std::map<std::string, uint32_t> required_caps;
21 size_t root_buffer_size{0};
22
23 TI_IO_DEF(kernels, fields, required_caps, root_buffer_size);
24};
25
26} // namespace gfx
27} // namespace taichi::lang
28