summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/D3D/D3DBase.cpp
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2017-04-16 20:47:17 +1000
committerStenzek <stenzek@gmail.com>2017-04-29 13:46:42 +1000
commit2d75c2ab10eda1b379883e4b44b2a73a3d2a83c7 (patch)
treee018627e368aaf6821b2a7dee2167e0794562745 /Source/Core/VideoBackends/D3D/D3DBase.cpp
parentf5d95dcc861031dac4de98d95117afe1c43b166c (diff)
D3D11: Support native compressed textures
Diffstat (limited to 'Source/Core/VideoBackends/D3D/D3DBase.cpp')
-rw-r--r--Source/Core/VideoBackends/D3D/D3DBase.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/Source/Core/VideoBackends/D3D/D3DBase.cpp b/Source/Core/VideoBackends/D3D/D3DBase.cpp
index 5b4328cb7f..06ee82b450 100644
--- a/Source/Core/VideoBackends/D3D/D3DBase.cpp
+++ b/Source/Core/VideoBackends/D3D/D3DBase.cpp
@@ -239,6 +239,19 @@ D3D_FEATURE_LEVEL GetFeatureLevel(IDXGIAdapter* adapter)
return feat_level;
}
+static bool SupportsS3TCTextures(ID3D11Device* device)
+{
+ UINT bc1_support, bc2_support, bc3_support;
+ if (FAILED(device->CheckFormatSupport(DXGI_FORMAT_BC1_UNORM, &bc1_support)) ||
+ FAILED(device->CheckFormatSupport(DXGI_FORMAT_BC2_UNORM, &bc2_support)) ||
+ FAILED(device->CheckFormatSupport(DXGI_FORMAT_BC3_UNORM, &bc3_support)))
+ {
+ return false;
+ }
+
+ return ((bc1_support & bc2_support & bc3_support) & D3D11_FORMAT_SUPPORT_TEXTURE2D) != 0;
+}
+
HRESULT Create(HWND wnd)
{
hWnd = wnd;
@@ -427,6 +440,7 @@ HRESULT Create(HWND wnd)
UINT format_support;
device->CheckFormatSupport(DXGI_FORMAT_B8G8R8A8_UNORM, &format_support);
bgra_textures_supported = (format_support & D3D11_FORMAT_SUPPORT_TEXTURE2D) != 0;
+ g_Config.backend_info.bSupportsST3CTextures = SupportsS3TCTextures(device);
stateman = new StateManager;
return S_OK;