Skip to content

Commit e3b6ae5

Browse files
committed
Add support for d3d12.
1 parent b5769cf commit e3b6ae5

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

source/configGenerator_build.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,7 @@ bool ConfigGenerator::buildDefaultValues()
279279
fastToggleConfigValue("zlib", true);
280280

281281
// Enable hwaccels by default.
282+
fastToggleConfigValue("d3d12va", true);
282283
fastToggleConfigValue("d3d11va", true);
283284
fastToggleConfigValue("dxva2", true);
284285

@@ -336,6 +337,8 @@ bool ConfigGenerator::buildAutoDetectValues()
336337
} else if (i == "cuda_llvm" || i == "cuda_nvcc") {
337338
// Not currently supported
338339
enable = false;
340+
} else if (i == "d3d12va") {
341+
enable = true;
339342
} else if (i == "d3d11va") {
340343
enable = true;
341344
} else if (i == "dxva2") {
@@ -557,6 +560,16 @@ void ConfigGenerator::buildReplaceValues(
557560
# define HAVE_STRUCT_POLLFD 1\n\
558561
#else\n\
559562
# define HAVE_STRUCT_POLLFD 0\n\
563+
#endif";
564+
replaceValues["CONFIG_D3D12VA"] = "#if defined(NTDDI_WIN10_TH2)\n\
565+
# define CONFIG_D3D12VA 1\n\
566+
#else\n\
567+
# define CONFIG_D3D12VA 0\n\
568+
#endif";
569+
replaceValues["CONFIG_AV1_D3D12VA_HWACCEL"] = "#if defined(NTDDI_WIN10_FE)\n\
570+
# define CONFIG_AV1_D3D12VA_HWACCEL 1\n\
571+
#else\n\
572+
# define CONFIG_AV1_D3D12VA_HWACCEL 0\n\
560573
#endif";
561574
replaceValues["CONFIG_D3D11VA"] = "#if defined(NTDDI_WIN8)\n\
562575
# define CONFIG_D3D11VA 1\n\
@@ -1018,6 +1031,8 @@ void ConfigGenerator::buildAdditionalDependencies(DependencyList& additionalDepe
10181031
additionalDependencies["IBaseFilter"] = true;
10191032
additionalDependencies["ID3D11VideoDecoder"] = true;
10201033
additionalDependencies["ID3D11VideoContext"] = true;
1034+
additionalDependencies["ID3D12Device"] = true;
1035+
additionalDependencies["ID3D12VideoDecoder"] = true;
10211036
additionalDependencies["DXGI_OUTDUPL_FRAME_INFO"] = true;
10221037
additionalDependencies["IDXGIOutput1"] = true;
10231038
additionalDependencies["libcrystalhd_libcrystalhd_if_h"] = false;

source/projectGenerator_build.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,19 @@ void ProjectGenerator::buildDependencies(StaticList& libs, StaticList& addLibs,
120120
addLibs.push_back("Bcrypt"); // Add the additional required libs
121121
} else if (i == "bzlib") {
122122
lib = "libbz2";
123+
} else if (i == "d3d12va") {
124+
if (winrt) {
125+
if (std::find(addLibs.cbegin(), addLibs.cend(), "dxgi") == addLibs.cend()) {
126+
addLibs.push_back("dxgi");
127+
}
128+
addLibs.push_back("d3d12");
129+
}
130+
// doesn't need any additional libs
123131
} else if (i == "d3d11va") {
124132
if (winrt) {
125-
addLibs.push_back("dxgi");
133+
if (std::find(addLibs.cbegin(), addLibs.cend(), "dxgi") == addLibs.cend()) {
134+
addLibs.push_back("dxgi");
135+
}
126136
addLibs.push_back("d3d11");
127137
}
128138
// doesn't need any additional libs
@@ -393,6 +403,7 @@ void ProjectGenerator::buildProjectDependencies(map<string, bool>& projectDeps)
393403
projectDeps["cuda_nvcc"] = (m_projectName == "libavfilter");
394404
projectDeps["cuvid"] =
395405
(m_projectName == "libavcodec") || (m_projectName == "ffmpeg") || (m_projectName == "avconv");
406+
projectDeps["d3d12va"] = (m_projectName == "libavutil") || (m_projectName == "libavcodec");
396407
projectDeps["d3d11va"] = (m_projectName == "libavutil") || (m_projectName == "libavcodec");
397408
projectDeps["dxva2"] = (m_projectName == "libavutil") || (m_projectName == "libavcodec");
398409
projectDeps["decklink"] = (m_projectName == "libavdevice");

0 commit comments

Comments
 (0)