diff options
| author | Stenzek <stenzek@gmail.com> | 2017-04-16 20:47:17 +1000 |
|---|---|---|
| committer | Stenzek <stenzek@gmail.com> | 2017-04-29 13:46:42 +1000 |
| commit | 2d75c2ab10eda1b379883e4b44b2a73a3d2a83c7 (patch) | |
| tree | e018627e368aaf6821b2a7dee2167e0794562745 /Source/Core/VideoBackends/D3D/D3DBase.cpp | |
| parent | f5d95dcc861031dac4de98d95117afe1c43b166c (diff) | |
D3D11: Support native compressed textures
Diffstat (limited to 'Source/Core/VideoBackends/D3D/D3DBase.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/D3D/D3DBase.cpp | 14 |
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; |
