• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2024 Google LLC
2# SPDX-License-Identifier: MIT
3
4import argparse
5import sys
6
7
8def parse_args():
9    parser = argparse.ArgumentParser()
10    parser.add_argument('-p', '--import-path', required=True)
11    parser.add_argument('--utrace-src', required=True)
12    parser.add_argument('--utrace-hdr', required=True)
13    parser.add_argument('--perfetto-hdr', required=True)
14    return parser.parse_args()
15
16
17args = parse_args()
18sys.path.insert(0, args.import_path)
19
20from u_trace import ForwardDecl, Header, HeaderScope  # noqa: E402
21from u_trace import Tracepoint  # noqa: E402
22from u_trace import TracepointArg as Arg  # noqa: E402
23from u_trace import TracepointArgStruct as ArgStruct  # noqa: E402
24from u_trace import utrace_generate, utrace_generate_perfetto_utils  # noqa: E402
25
26Header('vulkan/vulkan_core.h', scope=HeaderScope.HEADER)
27ForwardDecl('struct panvk_device')
28
29
30def begin_end_tp(name, args=[], tp_struct=None):
31    Tracepoint(
32        f'begin_{name}',
33        tp_perfetto=f'panvk_utrace_perfetto_begin_{name}',
34    )
35
36    Tracepoint(
37        f'end_{name}',
38        args=args,
39        tp_struct=tp_struct,
40        tp_perfetto=f'panvk_utrace_perfetto_end_{name}',
41    )
42
43
44def define_tracepoints():
45    begin_end_tp(
46        'cmdbuf',
47        args=[
48            Arg(
49                type='VkCommandBufferUsageFlags',
50                var='flags',
51                c_format='0x%x',
52            ),
53        ],
54    )
55
56
57def generate_code():
58    utrace_generate(
59        cpath=args.utrace_src,
60        hpath=args.utrace_hdr,
61        ctx_param='struct panvk_device *dev',
62    )
63
64    utrace_generate_perfetto_utils(hpath=args.perfetto_hdr)
65
66
67def main():
68    define_tracepoints()
69    generate_code()
70
71
72if __name__ == '__main__':
73    main()
74