• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright © 2017 Intel Corporation
2
3# Permission is hereby granted, free of charge, to any person obtaining a copy
4# of this software and associated documentation files (the "Software"), to deal
5# in the Software without restriction, including without limitation the rights
6# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7# copies of the Software, and to permit persons to whom the Software is
8# furnished to do so, subject to the following conditions:
9
10# The above copyright notice and this permission notice shall be included in
11# all copies or substantial portions of the Software.
12
13# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19# SOFTWARE.
20
21gen_xml_files = [
22  'gen4.xml',
23  'gen45.xml',
24  'gen5.xml',
25  'gen6.xml',
26  'gen7.xml',
27  'gen75.xml',
28  'gen8.xml',
29  'gen9.xml',
30  'gen11.xml',
31  'gen12.xml',
32  'gen125.xml',
33  'gen20.xml',
34]
35
36gen_xml_rt_files = [
37  'gen125_rt.xml',
38  'gen20_rt.xml',
39]
40
41gen_pack_header_deps = files('intel_genxml.py', 'util.py')
42foreach f : gen_xml_files + gen_xml_rt_files
43  gen_pack_header_deps += files(f)
44endforeach
45
46genX_xml_h = custom_target(
47  'genX_xml.h',
48  input : ['gen_zipped_file.py', gen_xml_files],
49  output : 'genX_xml.h',
50  command : [prog_python, '@INPUT@'],
51  capture : true,
52)
53
54genX_bits_included_symbols = [
55  # instructions
56  'MI_BATCH_BUFFER_START::Batch Buffer Start Address',
57  'MI_REPORT_PERF_COUNT::Memory Address',
58  'MI_STORE_DATA_IMM::Address',
59  'MI_STORE_DATA_IMM::Immediate Data',
60  'MI_STORE_REGISTER_MEM::Memory Address',
61  '3DSTATE_DEPTH_BUFFER::Surface Base Address',
62  '3DSTATE_DEPTH_BUFFER::Surface Pitch',
63  '3DSTATE_STENCIL_BUFFER::Surface Base Address',
64  '3DSTATE_STENCIL_BUFFER::Surface Pitch',
65  '3DSTATE_HIER_DEPTH_BUFFER::Surface Base Address',
66  '3DSTATE_HIER_DEPTH_BUFFER::Surface Pitch',
67  '3DSTATE_CLEAR_PARAMS',
68  '3DSTATE_SO_BUFFER::Surface Base Address',
69  '3DSTATE_SO_BUFFER::Stream Offset',
70  '3DSTATE_CPSIZE_CONTROL_BUFFER::Surface Base Address',
71  '3DSTATE_CPSIZE_CONTROL_BUFFER::Surface Pitch',
72  # structures
73  'RENDER_SURFACE_STATE::Surface Base Address',
74  'RENDER_SURFACE_STATE::Surface Pitch',
75  'RENDER_SURFACE_STATE::Auxiliary Surface Base Address',
76  'RENDER_SURFACE_STATE::Auxiliary Surface Pitch',
77  'RENDER_SURFACE_STATE::Clear Value Address',
78  'RENDER_SURFACE_STATE::Red Clear Color',
79  'RENDER_SURFACE_STATE::Green Clear Color',
80  'RENDER_SURFACE_STATE::Blue Clear Color',
81  'RENDER_SURFACE_STATE::Alpha Clear Color',
82  'RENDER_SURFACE_STATE::Width',
83  'RENDER_SURFACE_STATE::Height',
84  'RENDER_SURFACE_STATE::Depth',
85  'RENDER_SURFACE_STATE::Surface Type',
86  'RENDER_SURFACE_STATE::Render Target View Extent',
87  'CLEAR_COLOR',
88  'VERTEX_BUFFER_STATE::Buffer Starting Address',
89  'CPS_STATE',
90  'RT_DISPATCH_GLOBALS::Hit Group Table',
91  'RT_DISPATCH_GLOBALS::Miss Group Table',
92  'RT_DISPATCH_GLOBALS::Callable Group Table',
93  'RT_DISPATCH_GLOBALS::Launch Width',
94  'RT_DISPATCH_GLOBALS::Launch Height',
95  'RT_DISPATCH_GLOBALS::Launch Depth',
96]
97
98genX_bits_h = custom_target(
99  'genX_bits.h',
100  input : ['gen_bits_header.py', gen_xml_files, gen_xml_rt_files],
101  output : 'genX_bits.h',
102  command : [prog_python, '@INPUT@', '-o', '@OUTPUT@',
103             '--include-symbols', ','.join(genX_bits_included_symbols)],
104  depend_files: gen_pack_header_deps
105)
106
107gen_xml_pack = []
108foreach f : gen_xml_files + gen_xml_rt_files
109  _name = '@0@_pack.h'.format(f.split('.')[0])
110  gen_xml_pack += custom_target(
111    _name,
112    input : ['gen_pack_header.py', f],
113    output : _name,
114    command : [prog_python, '@INPUT@', '--engines=render,blitter,video'],
115    capture : true,
116    depend_files: gen_pack_header_deps
117  )
118endforeach
119
120genX_cl_included_symbols = [
121  # instructions
122  '3DSTATE_INDEX_BUFFER',
123  '3DSTATE_VERTEX_BUFFERS',
124  '3DPRIMITIVE',
125  '3DPRIMITIVE_EXTENDED',
126  'MI_ARB_CHECK',
127  'MI_BATCH_BUFFER_START',
128  # structures
129  'VERTEX_BUFFER_STATE',
130]
131
132gen_cl_xml_pack = []
133foreach f : gen_xml_files + gen_xml_rt_files
134  _name = '@0@_cl_pack.h'.format(f.split('.')[0])
135  gen_cl_xml_pack += custom_target(
136    _name,
137    input : ['gen_pack_header.py', f],
138    output : _name,
139    command : [prog_python, '@INPUT@', '--engines=render,blitter,video',
140               '--opencl', '--repack',
141               '--include-symbols', ','.join(genX_cl_included_symbols)],
142    capture : true,
143    depend_files: gen_pack_header_deps
144  )
145endforeach
146
147gen_pack_header_py = files('gen_pack_header.py')
148
149idep_genxml = declare_dependency(
150  include_directories : include_directories('.'),
151  dependencies : idep_mesautil,
152  sources : [gen_xml_pack, gen_cl_xml_pack, genX_bits_h, genX_xml_h]
153)
154
155foreach f : gen_xml_files + gen_xml_rt_files
156  test(
157    'genxml sort @0@'.format(f),
158    prog_python,
159    args : [files('gen_sort_tags.py'), files(f), '--validate', '--quiet'],
160    suite : ['intel'],
161  )
162endforeach
163