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) 30 31prepended_input_args = [] 32foreach input_arg : intel_shader_files 33 prepended_input_args += ['--in', input_arg] 34endforeach 35 36intel_shaders_clc_wa_args = [] 37if with_intel_clc 38 if chosen_llvm_version_major >= 17 39 intel_shaders_clc_wa_args += ['--llvm17-wa'] 40 endif 41else 42 _intel_clc_llvm_version = run_command(prog_intel_clc, '-M') 43 if _intel_clc_llvm_version.stdout().strip().version_compare('>= 17.0') 44 intel_shaders_clc_wa_args += ['--llvm17-wa'] 45 endif 46endif 47 48intel_shaders_gens = [ [ 80, 8], 49 [ 90, 9], 50 [110, 11], 51 [120, 12], 52 [125, 125], 53 [200, 20] ] 54intel_shaders = [] 55foreach gen : intel_shaders_gens 56 intel_shaders += custom_target( 57 'intel_gfx@0@_shaders_code.h'.format(gen[1]), 58 input : intel_shader_files, 59 output : 'intel_gfx@0@_shaders_code.h'.format(gen[1]), 60 command : [ 61 prog_intel_clc, intel_shaders_clc_wa_args, '--nir', 62 '--gfx-version=@0@'.format(gen[0] / 10), 63 '--prefix', 'gfx@0@_intel_shaders'.format(gen[1]), 64 prepended_input_args, '-o', '@OUTPUT@', '--', 65 '-cl-std=cl2.0', '-D__OPENCL_VERSION__=200', 66 '-DGFX_VERx10=@0@'.format(gen[0]), 67 '-I' + join_paths(meson.current_source_dir(), '.'), 68 '-I' + join_paths(dir_source_root, 'src'), 69 '-I' + join_paths(dir_source_root, 'src/intel'), 70 '-I' + join_paths(meson.project_build_root(), 'src/intel'), 71 '-I' + join_paths(dir_source_root, 'src/intel/genxml'), 72 ], 73 env: ['MESA_SHADER_CACHE_DISABLE=true'], 74 depends : [dep_prog_intel_clc, gen_cl_xml_pack], 75 ) 76endforeach 77 78idep_intel_shaders = declare_dependency( 79 sources : intel_shaders, 80 include_directories : include_directories('.'), 81) 82