~mmach/netext73/mesa-haswell

« back to all changes in this revision

Viewing changes to src/freedreno/vulkan/tu_tracepoints.py

  • Committer: mmach
  • Date: 2022-09-22 19:56:13 UTC
  • Revision ID: netbit73@gmail.com-20220922195613-wtik9mmy20tmor0i
2022-09-22 21:17:09

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#
2
 
# Copyright © 2021 Igalia S.L.
3
 
#
4
 
# Permission is hereby granted, free of charge, to any person obtaining a
5
 
# copy of this software and associated documentation files (the "Software"),
6
 
# to deal in the Software without restriction, including without limitation
7
 
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
8
 
# and/or sell copies of the Software, and to permit persons to whom the
9
 
# Software is furnished to do so, subject to the following conditions:
10
 
#
11
 
# The above copyright notice and this permission notice (including the next
12
 
# paragraph) shall be included in all copies or substantial portions of the
13
 
# Software.
14
 
#
15
 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
 
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
 
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
18
 
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
 
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
 
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
 
# SOFTWARE.
22
 
#
23
 
 
24
 
import argparse
25
 
import sys
26
 
 
27
 
#
28
 
# TODO can we do this with less boilerplate?
29
 
#
30
 
parser = argparse.ArgumentParser()
31
 
parser.add_argument('-p', '--import-path', required=True)
32
 
parser.add_argument('--utrace-src', required=True)
33
 
parser.add_argument('--utrace-hdr', required=True)
34
 
parser.add_argument('--perfetto-hdr', required=True)
35
 
args = parser.parse_args()
36
 
sys.path.insert(0, args.import_path)
37
 
 
38
 
 
39
 
from u_trace import Header, HeaderScope
40
 
from u_trace import ForwardDecl
41
 
from u_trace import Tracepoint
42
 
from u_trace import TracepointArg as Arg
43
 
from u_trace import TracepointArgStruct as ArgStruct
44
 
from u_trace import utrace_generate
45
 
from u_trace import utrace_generate_perfetto_utils
46
 
 
47
 
#
48
 
# Tracepoint definitions:
49
 
#
50
 
 
51
 
Header('util/u_dump.h')
52
 
Header('vk_format.h')
53
 
Header('freedreno/vulkan/tu_private.h', scope=HeaderScope.SOURCE)
54
 
 
55
 
ForwardDecl('struct tu_device')
56
 
 
57
 
Tracepoint('start_render_pass',
58
 
    tp_perfetto='tu_start_render_pass'
59
 
)
60
 
Tracepoint('end_render_pass',
61
 
    args=[ArgStruct(type='const struct tu_framebuffer *', var='fb')],
62
 
    tp_struct=[Arg(type='uint16_t', name='width',        var='fb->width',                                    c_format='%u'),
63
 
               Arg(type='uint16_t', name='height',       var='fb->height',                                   c_format='%u'),
64
 
               Arg(type='uint8_t',  name='MRTs',         var='fb->attachment_count',                         c_format='%u'),
65
 
            #    Arg(type='uint8_t',  name='samples',      var='fb->samples',                                  c_format='%u'),
66
 
               Arg(type='uint16_t', name='numberOfBins', var='fb->tile_count.width * fb->tile_count.height', c_format='%u'),
67
 
               Arg(type='uint16_t', name='binWidth',     var='fb->tile0.width',                              c_format='%u'),
68
 
               Arg(type='uint16_t', name='binHeight',    var='fb->tile0.height',                             c_format='%u')],
69
 
    tp_perfetto='tu_end_render_pass')
70
 
 
71
 
Tracepoint('start_binning_ib',
72
 
    tp_perfetto='tu_start_binning_ib')
73
 
Tracepoint('end_binning_ib',
74
 
    tp_perfetto='tu_end_binning_ib')
75
 
 
76
 
Tracepoint('start_draw_ib_sysmem',
77
 
    tp_perfetto='tu_start_draw_ib_sysmem')
78
 
Tracepoint('end_draw_ib_sysmem',
79
 
    tp_perfetto='tu_end_draw_ib_sysmem')
80
 
 
81
 
Tracepoint('start_draw_ib_gmem',
82
 
    tp_perfetto='tu_start_draw_ib_gmem')
83
 
Tracepoint('end_draw_ib_gmem',
84
 
    tp_perfetto='tu_end_draw_ib_gmem')
85
 
 
86
 
Tracepoint('start_gmem_clear',
87
 
    tp_perfetto='tu_start_gmem_clear')
88
 
Tracepoint('end_gmem_clear',
89
 
    args=[Arg(type='enum VkFormat',  var='format',  c_format='%s', to_prim_type='vk_format_description({})->short_name'),
90
 
          Arg(type='uint8_t',        var='samples', c_format='%u')],
91
 
    tp_perfetto='tu_end_gmem_clear')
92
 
 
93
 
Tracepoint('start_sysmem_clear',
94
 
    tp_perfetto='tu_start_sysmem_clear')
95
 
Tracepoint('end_sysmem_clear',
96
 
    args=[Arg(type='enum VkFormat',  var='format',      c_format='%s', to_prim_type='vk_format_description({})->short_name'),
97
 
          Arg(type='uint8_t',        var='uses_3d_ops', c_format='%u'),
98
 
          Arg(type='uint8_t',        var='samples',     c_format='%u')],
99
 
    tp_perfetto='tu_end_sysmem_clear')
100
 
 
101
 
Tracepoint('start_sysmem_clear_all',
102
 
    tp_perfetto='tu_start_sysmem_clear_all')
103
 
Tracepoint('end_sysmem_clear_all',
104
 
    args=[Arg(type='uint8_t',        var='mrt_count',   c_format='%u'),
105
 
          Arg(type='uint8_t',        var='rect_count',  c_format='%u')],
106
 
    tp_perfetto='tu_end_sysmem_clear_all')
107
 
 
108
 
Tracepoint('start_gmem_load',
109
 
    tp_perfetto='tu_start_gmem_load')
110
 
Tracepoint('end_gmem_load',
111
 
    args=[Arg(type='enum VkFormat',  var='format',   c_format='%s', to_prim_type='vk_format_description({})->short_name'),
112
 
          Arg(type='uint8_t',        var='force_load', c_format='%u')],
113
 
    tp_perfetto='tu_end_gmem_load')
114
 
 
115
 
Tracepoint('start_gmem_store',
116
 
    tp_perfetto='tu_start_gmem_store')
117
 
Tracepoint('end_gmem_store',
118
 
    args=[Arg(type='enum VkFormat',  var='format',   c_format='%s', to_prim_type='vk_format_description({})->short_name'),
119
 
          Arg(type='uint8_t',        var='fast_path', c_format='%u'),
120
 
          Arg(type='uint8_t',        var='unaligned', c_format='%u')],
121
 
    tp_perfetto='tu_end_gmem_store')
122
 
 
123
 
Tracepoint('start_sysmem_resolve',
124
 
    tp_perfetto='tu_start_sysmem_resolve')
125
 
Tracepoint('end_sysmem_resolve',
126
 
    args=[Arg(type='enum VkFormat',  var='format',   c_format='%s', to_prim_type='vk_format_description({})->short_name')],
127
 
    tp_perfetto='tu_end_sysmem_resolve')
128
 
 
129
 
Tracepoint('start_blit',
130
 
    tp_perfetto='tu_start_blit',
131
 
)
132
 
Tracepoint('end_blit',
133
 
    # TODO: add source megapixels count and target megapixels count arguments
134
 
    args=[Arg(type='uint8_t',        var='uses_3d_blit', c_format='%u'),
135
 
          Arg(type='enum VkFormat',  var='src_format',   c_format='%s', to_prim_type='vk_format_description({})->short_name'),
136
 
          Arg(type='enum VkFormat',  var='dst_format',   c_format='%s', to_prim_type='vk_format_description({})->short_name'),
137
 
          Arg(type='uint8_t',        var='layers',       c_format='%u')],
138
 
    tp_perfetto='tu_end_blit')
139
 
 
140
 
Tracepoint('start_compute',
141
 
    tp_perfetto='tu_start_compute')
142
 
Tracepoint('end_compute',
143
 
    args=[Arg(type='uint8_t',  var='indirect',       c_format='%u'),
144
 
          Arg(type='uint16_t', var='local_size_x',   c_format='%u'),
145
 
          Arg(type='uint16_t', var='local_size_y',   c_format='%u'),
146
 
          Arg(type='uint16_t', var='local_size_z',   c_format='%u'),
147
 
          Arg(type='uint16_t', var='num_groups_x',   c_format='%u'),
148
 
          Arg(type='uint16_t', var='num_groups_y',   c_format='%u'),
149
 
          Arg(type='uint16_t', var='num_groups_z',   c_format='%u')],
150
 
    tp_perfetto='tu_end_compute')
151
 
 
152
 
utrace_generate(cpath=args.utrace_src, hpath=args.utrace_hdr, ctx_param='struct tu_device *dev')
153
 
utrace_generate_perfetto_utils(hpath=args.perfetto_hdr)