• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright © Microsoft Corporation
2
3# Permission is hereby granted, free of charge, to any person obtaining a
4# copy of this software and associated documentation files (the "Software"),
5# to deal in the Software without restriction, including without limitation
6# the rights to use, copy, modify, merge, publish, distribute, sublicense,
7# and/or sell copies of the Software, and to permit persons to whom the
8# Software is furnished to do so, subject to the following conditions:
9
10# The above copyright notice and this permission notice (including the next
11# paragraph) shall be included in all copies or substantial portions of the
12# Software.
13
14# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
20# IN THE SOFTWARE.
21
22files_libd3d12 = files(
23  'd3d12_batch.cpp',
24  'd3d12_blit.cpp',
25  'd3d12_bufmgr.cpp',
26  'd3d12_cmd_signature.cpp',
27  'd3d12_compiler.cpp',
28  'd3d12_compute_transforms.cpp',
29  'd3d12_context.cpp',
30  'd3d12_descriptor_pool.cpp',
31  'd3d12_draw.cpp',
32  'd3d12_fence.cpp',
33  'd3d12_format.c',
34  'd3d12_gs_variant.cpp',
35  'd3d12_lower_image_casts.c',
36  'd3d12_lower_point_sprite.c',
37  'd3d12_nir_passes.c',
38  'd3d12_pipeline_state.cpp',
39  'd3d12_query.cpp',
40  'd3d12_residency.cpp',
41  'd3d12_resource.cpp',
42  'd3d12_resource_state.cpp',
43  'd3d12_root_signature.cpp',
44  'd3d12_screen.cpp',
45  'd3d12_surface.cpp',
46  'd3d12_tcs_variant.cpp',
47)
48
49if with_gallium_d3d12_video
50  files_libd3d12 += [
51    'd3d12_video_dec.cpp',
52    'd3d12_video_dec_references_mgr.cpp',
53    'd3d12_video_buffer.cpp',
54    'd3d12_video_enc.cpp',
55    'd3d12_video_encoder_bitstream.cpp',
56    'd3d12_video_texture_array_dpb_manager.cpp',
57    'd3d12_video_array_of_textures_dpb_manager.cpp',
58    'd3d12_video_screen.cpp',
59    'd3d12_video_proc.cpp',
60  ]
61
62if _codecs.contains('h264dec')
63  files_libd3d12 += [
64    'd3d12_video_dec_h264.cpp',
65  ]
66endif
67
68if _codecs.contains('h265dec')
69  files_libd3d12 += [
70    'd3d12_video_dec_hevc.cpp',
71  ]
72endif
73
74if _codecs.contains('av1dec')
75  files_libd3d12 += [
76    'd3d12_video_dec_av1.cpp',
77  ]
78endif
79
80if _codecs.contains('vp9dec')
81  files_libd3d12 += [
82    'd3d12_video_dec_vp9.cpp',
83  ]
84endif
85
86if _codecs.contains('h264enc')
87  files_libd3d12 += [
88    'd3d12_video_enc_h264.cpp',
89    'd3d12_video_encoder_references_manager_h264.cpp',
90    'd3d12_video_encoder_nalu_writer_h264.cpp',
91    'd3d12_video_encoder_bitstream_builder_h264.cpp',
92  ]
93endif
94
95if _codecs.contains('h265enc')
96  files_libd3d12 += [
97    'd3d12_video_enc_hevc.cpp',
98    'd3d12_video_encoder_bitstream_builder_hevc.cpp',
99    'd3d12_video_encoder_nalu_writer_hevc.cpp',
100    'd3d12_video_encoder_references_manager_hevc.cpp',
101  ]
102endif
103
104if _codecs.contains('av1enc')
105  files_libd3d12 += [
106    'd3d12_video_enc_av1.cpp',
107    'd3d12_video_encoder_references_manager_av1.cpp',
108    'd3d12_video_encoder_bitstream_builder_av1.cpp',
109  ]
110endif
111
112endif # with_gallium_d3d12_video
113
114is_xbox = target_machine.system().startswith('Gaming.Xbox')
115if host_machine.system() == 'windows'
116  if is_xbox
117    files_libd3d12 += files('d3d12_dxgi_xbox_screen.cpp')
118  else
119    files_libd3d12 += files('d3d12_dxgi_screen.cpp')
120  endif
121endif
122if is_xbox == false
123  files_libd3d12 += files('d3d12_dxcore_screen.cpp')
124endif
125
126libd3d12 = static_library(
127  'd3d12',
128  [files_libd3d12, sha1_h],
129  gnu_symbol_visibility : 'hidden',
130  include_directories : [inc_include, inc_src, inc_mesa, inc_gallium, inc_gallium_aux],
131  dependencies: [idep_nir_headers, idep_libdxil_compiler, dep_dxheaders],
132)
133
134driver_d3d12 = declare_dependency(
135  compile_args : '-DGALLIUM_D3D12',
136  link_with : [libd3d12, libgalliumvl],
137)
138