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