From 9b4e53cee20d459c3c857ca7f6a68ce3f0c84607 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Fri, 26 Aug 2022 04:58:33 +0200 Subject: [PATCH] [d3d11] Handle D3D11_FEATURE_SHADER_CACHE --- src/d3d11/d3d11_device.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/d3d11/d3d11_device.cpp b/src/d3d11/d3d11_device.cpp index 773086f78..cd97decc3 100644 --- a/src/d3d11/d3d11_device.cpp +++ b/src/d3d11/d3d11_device.cpp @@ -1729,6 +1729,18 @@ namespace dxvk { info->ExtendedNV12SharedTextureSupported = TRUE; } return S_OK; + case D3D11_FEATURE_SHADER_CACHE: { + auto info = static_cast(pFeatureSupportData); + + if (FeatureSupportDataSize != sizeof(*info)) + return E_INVALIDARG; + + // DXVK will keep all shaders in memory once created, and all Vulkan + // drivers that we know of that can run DXVK have an on-disk cache. + info->SupportFlags = D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE + | D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE; + } return S_OK; + default: Logger::err(str::format("D3D11Device: CheckFeatureSupport: Unknown feature: ", Feature)); return E_INVALIDARG;