xref: /aosp_15_r20/external/mesa3d/src/intel/genxml/meson.build (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1# Copyright © 2017 Intel Corporation
2# SPDX-License-Identifier: MIT
3
4gen_xml_files = [
5  'gen4.xml',
6  'gen45.xml',
7  'gen5.xml',
8  'gen6.xml',
9  'gen7.xml',
10  'gen75.xml',
11  'gen8.xml',
12  'gen9.xml',
13  'gen11.xml',
14  'gen12.xml',
15  'gen125.xml',
16  'gen20.xml',
17]
18
19gen_xml_rt_files = [
20  'gen125_rt.xml',
21  'gen20_rt.xml',
22]
23
24gen_pack_header_deps = files('intel_genxml.py', 'util.py')
25foreach f : gen_xml_files + gen_xml_rt_files
26  gen_pack_header_deps += files(f)
27endforeach
28
29genX_xml_h = custom_target(
30  'genX_xml.h',
31  input : ['../../util/gen_zipped_xml_file.py', gen_xml_files],
32  output : 'genX_xml.h',
33  command : [prog_python, '@INPUT@'],
34  capture : true,
35)
36
37genX_bits_included_symbols = [
38  # instructions
39  'MI_BATCH_BUFFER_START::Batch Buffer Start Address',
40  'MI_REPORT_PERF_COUNT::Memory Address',
41  'MI_STORE_DATA_IMM::Address',
42  'MI_STORE_DATA_IMM::Immediate Data',
43  'MI_STORE_REGISTER_MEM::Memory Address',
44  '3DSTATE_DEPTH_BUFFER::Surface Base Address',
45  '3DSTATE_DEPTH_BUFFER::Surface Pitch',
46  '3DSTATE_STENCIL_BUFFER::Surface Base Address',
47  '3DSTATE_STENCIL_BUFFER::Surface Pitch',
48  '3DSTATE_HIER_DEPTH_BUFFER::Surface Base Address',
49  '3DSTATE_HIER_DEPTH_BUFFER::Surface Pitch',
50  '3DSTATE_CLEAR_PARAMS',
51  '3DSTATE_SO_BUFFER::Surface Base Address',
52  '3DSTATE_SO_BUFFER::Stream Offset',
53  '3DSTATE_CPSIZE_CONTROL_BUFFER::Surface Base Address',
54  '3DSTATE_CPSIZE_CONTROL_BUFFER::Surface Pitch',
55  # structures
56  'RENDER_SURFACE_STATE::Surface Base Address',
57  'RENDER_SURFACE_STATE::Surface Pitch',
58  'RENDER_SURFACE_STATE::Auxiliary Surface Base Address',
59  'RENDER_SURFACE_STATE::Auxiliary Surface Pitch',
60  'RENDER_SURFACE_STATE::Clear Value Address',
61  'RENDER_SURFACE_STATE::Red Clear Color',
62  'RENDER_SURFACE_STATE::Green Clear Color',
63  'RENDER_SURFACE_STATE::Blue Clear Color',
64  'RENDER_SURFACE_STATE::Alpha Clear Color',
65  'RENDER_SURFACE_STATE::Width',
66  'RENDER_SURFACE_STATE::Height',
67  'RENDER_SURFACE_STATE::Depth',
68  'RENDER_SURFACE_STATE::Surface Type',
69  'RENDER_SURFACE_STATE::Render Target View Extent',
70  'CLEAR_COLOR',
71  'VERTEX_BUFFER_STATE::Buffer Starting Address',
72  'CPS_STATE',
73  'RT_DISPATCH_GLOBALS::Hit Group Table',
74  'RT_DISPATCH_GLOBALS::Miss Group Table',
75  'RT_DISPATCH_GLOBALS::Callable Group Table',
76  'RT_DISPATCH_GLOBALS::Launch Width',
77  'RT_DISPATCH_GLOBALS::Launch Height',
78  'RT_DISPATCH_GLOBALS::Launch Depth',
79]
80
81genX_bits_h = custom_target(
82  'genX_bits.h',
83  input : ['gen_bits_header.py', gen_xml_files, gen_xml_rt_files],
84  output : 'genX_bits.h',
85  command : [prog_python, '@INPUT@', '-o', '@OUTPUT@',
86             '--include-symbols', ','.join(genX_bits_included_symbols)],
87  depend_files: gen_pack_header_deps
88)
89
90gen_xml_pack = []
91foreach f : gen_xml_files + gen_xml_rt_files
92  _name = '@0@_pack.h'.format(f.split('.')[0])
93  gen_xml_pack += custom_target(
94    _name,
95    input : ['gen_pack_header.py', f],
96    output : _name,
97    command : [prog_python, '@INPUT@', '--engines=render,blitter,video'],
98    capture : true,
99    depend_files: gen_pack_header_deps
100  )
101endforeach
102
103genX_cl_included_symbols = [
104  # instructions
105  '3DSTATE_INDEX_BUFFER',
106  '3DSTATE_VERTEX_BUFFERS',
107  '3DPRIMITIVE',
108  '3DPRIMITIVE_EXTENDED',
109  'MI_ARB_CHECK',
110  'MI_BATCH_BUFFER_START',
111  # structures
112  'VERTEX_BUFFER_STATE',
113]
114
115gen_cl_xml_pack = []
116foreach f : gen_xml_files + gen_xml_rt_files
117  _name = '@0@_cl_pack.h'.format(f.split('.')[0])
118  gen_cl_xml_pack += custom_target(
119    _name,
120    input : ['gen_pack_header.py', f],
121    output : _name,
122    command : [prog_python, '@INPUT@', '--engines=render,blitter,video',
123               '--opencl', '--repack',
124               '--include-symbols', ','.join(genX_cl_included_symbols)],
125    capture : true,
126    depend_files: gen_pack_header_deps
127  )
128endforeach
129
130gen_pack_header_py = files('gen_pack_header.py')
131
132idep_genxml = declare_dependency(
133  include_directories : include_directories('.'),
134  dependencies : idep_mesautil,
135  sources : [gen_xml_pack, gen_cl_xml_pack, genX_bits_h, genX_xml_h]
136)
137
138foreach f : gen_xml_files + gen_xml_rt_files
139  test(
140    'genxml sort @0@'.format(f),
141    prog_python,
142    args : [files('gen_sort_tags.py'), files(f), '--validate', '--quiet'],
143    suite : ['intel'],
144  )
145endforeach
146