1# Copyright © 2023 Intel Corporation 2# SPDX-License-Identifier: MIT 3 4intel_float64_spv_h = custom_target( 5 'float64_spv.h', 6 input : [glsl2spirv, float64_glsl_file], 7 output : 'float64_spv.h', 8 command : [ 9 prog_python, '@INPUT@', '@OUTPUT@', 10 prog_glslang, 11 '--create-entry', 'main', 12 '--vn', 'float64_spv_source', 13 '--glsl-version', '450', 14 '-Olib', 15 ] 16) 17 18intel_shader_files = files( 19 'libintel_shaders.h', 20 'generate.cl', 21 'generate_draws.cl', 22 'generate_draws_iris.cl', 23 'memcpy.cl', 24 'query_copy.cl', 25) 26 27prepended_input_args = [] 28foreach input_arg : intel_shader_files 29 prepended_input_args += ['--in', input_arg] 30endforeach 31 32intel_shaders_clc_wa_args = [] 33if with_intel_clc 34 if chosen_llvm_version_major >= 17 35 intel_shaders_clc_wa_args += ['--llvm17-wa'] 36 endif 37else 38 _intel_clc_llvm_version = run_command(prog_intel_clc, '-M') 39 if _intel_clc_llvm_version.stdout().strip().version_compare('>= 17.0') 40 intel_shaders_clc_wa_args += ['--llvm17-wa'] 41 endif 42endif 43 44intel_shaders_gens = [ [ 80, 8], 45 [ 90, 9], 46 [110, 11], 47 [120, 12], 48 [125, 125], 49 [200, 20] ] 50intel_shaders = [] 51foreach gen : intel_shaders_gens 52 intel_shaders += custom_target( 53 'intel_gfx@0@_shaders_code.h'.format(gen[1]), 54 input : intel_shader_files, 55 output : 'intel_gfx@0@_shaders_code.h'.format(gen[1]), 56 command : [ 57 prog_intel_clc, intel_shaders_clc_wa_args, '--nir', 58 '--gfx-version=@0@'.format(gen[0] / 10), 59 '--prefix', 'gfx@0@_intel_shaders'.format(gen[1]), 60 prepended_input_args, '-o', '@OUTPUT@', '--', 61 '-cl-std=cl2.0', '-D__OPENCL_VERSION__=200', 62 '-DGFX_VERx10=@0@'.format(gen[0]), 63 '-I' + join_paths(meson.current_source_dir(), '.'), 64 '-I' + join_paths(dir_source_root, 'src'), 65 '-I' + join_paths(dir_source_root, 'src/intel'), 66 '-I' + join_paths(meson.project_build_root(), 'src/intel'), 67 '-I' + join_paths(dir_source_root, 'src/intel/genxml'), 68 ], 69 env: ['MESA_SHADER_CACHE_DISABLE=true'], 70 depends : [dep_prog_intel_clc, gen_cl_xml_pack], 71 ) 72endforeach 73 74idep_intel_shaders = declare_dependency( 75 sources : intel_shaders, 76 include_directories : include_directories('.'), 77) 78