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