summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VideoBackendBase.cpp
diff options
context:
space:
mode:
authorhdcmeta <hdcmeta@gmail.com>2016-01-07 19:40:35 -0800
committerhdcmeta <hdcmeta@gmail.com>2016-02-15 09:48:25 -0800
commit8cc686b3606deb1a3638281da9c12180a481e899 (patch)
tree6adae584fcc27911bf4464deb8a62d468472c98c /Source/Core/VideoCommon/VideoBackendBase.cpp
parenta2e2e36745717135d42df2d17965aa709480e3e3 (diff)
D3D12: Initial commit for D3D12 backend implementation.
Diffstat (limited to 'Source/Core/VideoCommon/VideoBackendBase.cpp')
-rw-r--r--Source/Core/VideoCommon/VideoBackendBase.cpp11
1 files changed, 10 insertions, 1 deletions
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);