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