From 8cc686b3606deb1a3638281da9c12180a481e899 Mon Sep 17 00:00:00 2001 From: hdcmeta Date: Thu, 7 Jan 2016 19:40:35 -0800 Subject: D3D12: Initial commit for D3D12 backend implementation. --- Source/Core/VideoCommon/VideoBackendBase.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'Source/Core/VideoCommon/VideoBackendBase.cpp') diff --git a/Source/Core/VideoCommon/VideoBackendBase.cpp b/Source/Core/VideoCommon/VideoBackendBase.cpp index 7978f78710..00b2ddf2e2 100644 --- a/Source/Core/VideoCommon/VideoBackendBase.cpp +++ b/Source/Core/VideoCommon/VideoBackendBase.cpp @@ -8,6 +8,7 @@ // TODO: ugly #ifdef _WIN32 #include "VideoBackends/D3D/VideoBackend.h" +#include "VideoBackends/D3D12/VideoBackend.h" #endif #include "VideoBackends/OGL/VideoBackend.h" #include "VideoBackends/Software/VideoBackend.h" @@ -33,10 +34,18 @@ void VideoBackendBase::PopulateList() { VideoBackendBase* backends[4] = { nullptr }; - // OGL > D3D11 > SW + // OGL > D3D11 > D3D12 > SW g_available_video_backends.push_back(backends[0] = new OGL::VideoBackend); #ifdef _WIN32 g_available_video_backends.push_back(backends[1] = new DX11::VideoBackend); + + // More robust way to check for D3D12 support than (unreliable) OS version checks. + HMODULE d3d12_module = LoadLibraryA("d3d12.dll"); + if (d3d12_module != NULL) + { + FreeLibrary(d3d12_module); + g_available_video_backends.push_back(backends[2] = new DX12::VideoBackend); + } #endif g_available_video_backends.push_back(backends[3] = new SW::VideoSoftware); -- cgit v1.2.3