xref: /aosp_15_r20/external/mesa3d/src/intel/shaders/meson.build (revision 6104692788411f58d303aa86923a9ff6ecaded22)
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