xref: /aosp_15_r20/external/mesa3d/src/gallium/drivers/d3d12/meson.build (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker# Copyright © Microsoft Corporation
2*61046927SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT
3*61046927SAndroid Build Coastguard Worker
4*61046927SAndroid Build Coastguard Workerlibd3d12_compiler_args = []
5*61046927SAndroid Build Coastguard Worker_with_gallium_d3d12_graphics = get_option('gallium-d3d12-graphics')
6*61046927SAndroid Build Coastguard Workerwith_gallium_d3d12_graphics = false
7*61046927SAndroid Build Coastguard Workerif not _with_gallium_d3d12_graphics.disabled()
8*61046927SAndroid Build Coastguard Worker  with_gallium_d3d12_graphics = true
9*61046927SAndroid Build Coastguard Worker  libd3d12_compiler_args += '-DHAVE_GALLIUM_D3D12_GRAPHICS'
10*61046927SAndroid Build Coastguard Workerendif
11*61046927SAndroid Build Coastguard Worker
12*61046927SAndroid Build Coastguard Workerif not with_gallium_d3d12_video and not with_gallium_d3d12_graphics
13*61046927SAndroid Build Coastguard Worker  error('d3d12 gallium driver must have at least one of gallium-d3d12-video or gallium-d3d12-graphics enabled.')
14*61046927SAndroid Build Coastguard Workerendif
15*61046927SAndroid Build Coastguard Worker
16*61046927SAndroid Build Coastguard Workerfiles_libd3d12 = files(
17*61046927SAndroid Build Coastguard Worker  'd3d12_batch.cpp',
18*61046927SAndroid Build Coastguard Worker  'd3d12_copy.cpp',
19*61046927SAndroid Build Coastguard Worker  'd3d12_bufmgr.cpp',
20*61046927SAndroid Build Coastguard Worker  'd3d12_context_common.cpp',
21*61046927SAndroid Build Coastguard Worker  'd3d12_fence.cpp',
22*61046927SAndroid Build Coastguard Worker  'd3d12_format.c',
23*61046927SAndroid Build Coastguard Worker  'd3d12_residency.cpp',
24*61046927SAndroid Build Coastguard Worker  'd3d12_resource.cpp',
25*61046927SAndroid Build Coastguard Worker  'd3d12_resource_state.cpp',
26*61046927SAndroid Build Coastguard Worker  'd3d12_screen.cpp',
27*61046927SAndroid Build Coastguard Worker)
28*61046927SAndroid Build Coastguard Worker
29*61046927SAndroid Build Coastguard Workerif with_gallium_d3d12_graphics
30*61046927SAndroid Build Coastguard Worker  files_libd3d12 += [
31*61046927SAndroid Build Coastguard Worker    'd3d12_blit.cpp',
32*61046927SAndroid Build Coastguard Worker    'd3d12_draw.cpp',
33*61046927SAndroid Build Coastguard Worker    'd3d12_surface.cpp',
34*61046927SAndroid Build Coastguard Worker    'd3d12_context_graphics.cpp',
35*61046927SAndroid Build Coastguard Worker    'd3d12_cmd_signature.cpp',
36*61046927SAndroid Build Coastguard Worker    'd3d12_compiler.cpp',
37*61046927SAndroid Build Coastguard Worker    'd3d12_compute_transforms.cpp',
38*61046927SAndroid Build Coastguard Worker    'd3d12_descriptor_pool.cpp',
39*61046927SAndroid Build Coastguard Worker    'd3d12_nir_passes.c',
40*61046927SAndroid Build Coastguard Worker    'd3d12_pipeline_state.cpp',
41*61046927SAndroid Build Coastguard Worker    'd3d12_query.cpp',
42*61046927SAndroid Build Coastguard Worker    'd3d12_root_signature.cpp',
43*61046927SAndroid Build Coastguard Worker    'd3d12_gs_variant.cpp',
44*61046927SAndroid Build Coastguard Worker    'd3d12_lower_image_casts.c',
45*61046927SAndroid Build Coastguard Worker    'd3d12_lower_point_sprite.c',
46*61046927SAndroid Build Coastguard Worker    'd3d12_tcs_variant.cpp',
47*61046927SAndroid Build Coastguard Worker  ]
48*61046927SAndroid Build Coastguard Workerendif
49*61046927SAndroid Build Coastguard Worker
50*61046927SAndroid Build Coastguard Workerif with_gallium_d3d12_video
51*61046927SAndroid Build Coastguard Worker  files_libd3d12 += [
52*61046927SAndroid Build Coastguard Worker    'd3d12_video_dec.cpp',
53*61046927SAndroid Build Coastguard Worker    'd3d12_video_dec_references_mgr.cpp',
54*61046927SAndroid Build Coastguard Worker    'd3d12_video_buffer.cpp',
55*61046927SAndroid Build Coastguard Worker    'd3d12_video_enc.cpp',
56*61046927SAndroid Build Coastguard Worker    'd3d12_video_encoder_bitstream.cpp',
57*61046927SAndroid Build Coastguard Worker    'd3d12_video_texture_array_dpb_manager.cpp',
58*61046927SAndroid Build Coastguard Worker    'd3d12_video_array_of_textures_dpb_manager.cpp',
59*61046927SAndroid Build Coastguard Worker    'd3d12_video_screen.cpp',
60*61046927SAndroid Build Coastguard Worker    'd3d12_video_proc.cpp',
61*61046927SAndroid Build Coastguard Worker  ]
62*61046927SAndroid Build Coastguard Worker
63*61046927SAndroid Build Coastguard Workerif _codecs.contains('h264dec')
64*61046927SAndroid Build Coastguard Worker  files_libd3d12 += [
65*61046927SAndroid Build Coastguard Worker    'd3d12_video_dec_h264.cpp',
66*61046927SAndroid Build Coastguard Worker  ]
67*61046927SAndroid Build Coastguard Workerendif
68*61046927SAndroid Build Coastguard Worker
69*61046927SAndroid Build Coastguard Workerif _codecs.contains('h265dec')
70*61046927SAndroid Build Coastguard Worker  files_libd3d12 += [
71*61046927SAndroid Build Coastguard Worker    'd3d12_video_dec_hevc.cpp',
72*61046927SAndroid Build Coastguard Worker  ]
73*61046927SAndroid Build Coastguard Workerendif
74*61046927SAndroid Build Coastguard Worker
75*61046927SAndroid Build Coastguard Workerif _codecs.contains('av1dec')
76*61046927SAndroid Build Coastguard Worker  files_libd3d12 += [
77*61046927SAndroid Build Coastguard Worker    'd3d12_video_dec_av1.cpp',
78*61046927SAndroid Build Coastguard Worker  ]
79*61046927SAndroid Build Coastguard Workerendif
80*61046927SAndroid Build Coastguard Worker
81*61046927SAndroid Build Coastguard Workerif _codecs.contains('vp9dec')
82*61046927SAndroid Build Coastguard Worker  files_libd3d12 += [
83*61046927SAndroid Build Coastguard Worker    'd3d12_video_dec_vp9.cpp',
84*61046927SAndroid Build Coastguard Worker  ]
85*61046927SAndroid Build Coastguard Workerendif
86*61046927SAndroid Build Coastguard Worker
87*61046927SAndroid Build Coastguard Workerif _codecs.contains('h264enc')
88*61046927SAndroid Build Coastguard Worker  files_libd3d12 += [
89*61046927SAndroid Build Coastguard Worker    'd3d12_video_enc_h264.cpp',
90*61046927SAndroid Build Coastguard Worker    'd3d12_video_encoder_references_manager_h264.cpp',
91*61046927SAndroid Build Coastguard Worker    'd3d12_video_encoder_nalu_writer_h264.cpp',
92*61046927SAndroid Build Coastguard Worker    'd3d12_video_encoder_bitstream_builder_h264.cpp',
93*61046927SAndroid Build Coastguard Worker  ]
94*61046927SAndroid Build Coastguard Workerendif
95*61046927SAndroid Build Coastguard Worker
96*61046927SAndroid Build Coastguard Workerif _codecs.contains('h265enc')
97*61046927SAndroid Build Coastguard Worker  files_libd3d12 += [
98*61046927SAndroid Build Coastguard Worker    'd3d12_video_enc_hevc.cpp',
99*61046927SAndroid Build Coastguard Worker    'd3d12_video_encoder_bitstream_builder_hevc.cpp',
100*61046927SAndroid Build Coastguard Worker    'd3d12_video_encoder_nalu_writer_hevc.cpp',
101*61046927SAndroid Build Coastguard Worker    'd3d12_video_encoder_references_manager_hevc.cpp',
102*61046927SAndroid Build Coastguard Worker  ]
103*61046927SAndroid Build Coastguard Workerendif
104*61046927SAndroid Build Coastguard Worker
105*61046927SAndroid Build Coastguard Workerif _codecs.contains('av1enc')
106*61046927SAndroid Build Coastguard Worker  files_libd3d12 += [
107*61046927SAndroid Build Coastguard Worker    'd3d12_video_enc_av1.cpp',
108*61046927SAndroid Build Coastguard Worker    'd3d12_video_encoder_references_manager_av1.cpp',
109*61046927SAndroid Build Coastguard Worker    'd3d12_video_encoder_bitstream_builder_av1.cpp',
110*61046927SAndroid Build Coastguard Worker  ]
111*61046927SAndroid Build Coastguard Workerendif
112*61046927SAndroid Build Coastguard Worker
113*61046927SAndroid Build Coastguard Workerendif # with_gallium_d3d12_video
114*61046927SAndroid Build Coastguard Worker
115*61046927SAndroid Build Coastguard Workeris_xbox = target_machine.system().startswith('Gaming.Xbox')
116*61046927SAndroid Build Coastguard Workerif host_machine.system() == 'windows'
117*61046927SAndroid Build Coastguard Worker  if is_xbox
118*61046927SAndroid Build Coastguard Worker    files_libd3d12 += files('d3d12_dxgi_xbox_screen.cpp')
119*61046927SAndroid Build Coastguard Worker  else
120*61046927SAndroid Build Coastguard Worker    files_libd3d12 += files('d3d12_dxgi_screen.cpp')
121*61046927SAndroid Build Coastguard Worker  endif
122*61046927SAndroid Build Coastguard Workerendif
123*61046927SAndroid Build Coastguard Workerif is_xbox == false
124*61046927SAndroid Build Coastguard Worker  files_libd3d12 += files('d3d12_dxcore_screen.cpp')
125*61046927SAndroid Build Coastguard Workerendif
126*61046927SAndroid Build Coastguard Worker
127*61046927SAndroid Build Coastguard Workerlibd3d12 = static_library(
128*61046927SAndroid Build Coastguard Worker  'd3d12',
129*61046927SAndroid Build Coastguard Worker  [files_libd3d12, sha1_h],
130*61046927SAndroid Build Coastguard Worker  gnu_symbol_visibility : 'hidden',
131*61046927SAndroid Build Coastguard Worker  include_directories : [inc_include, inc_src, inc_mesa, inc_gallium, inc_gallium_aux],
132*61046927SAndroid Build Coastguard Worker  dependencies: [idep_nir_headers, idep_libdxil_compiler, dep_dxheaders, idep_mesautil],
133*61046927SAndroid Build Coastguard Worker  c_args: libd3d12_compiler_args,
134*61046927SAndroid Build Coastguard Worker  cpp_args: libd3d12_compiler_args,
135*61046927SAndroid Build Coastguard Worker)
136*61046927SAndroid Build Coastguard Worker
137*61046927SAndroid Build Coastguard Workerdriver_d3d12 = declare_dependency(
138*61046927SAndroid Build Coastguard Worker  compile_args : '-DGALLIUM_D3D12',
139*61046927SAndroid Build Coastguard Worker  link_with : [libd3d12],
140*61046927SAndroid Build Coastguard Worker)
141