[PATCH] dlls/dxgi: Implement IDXGIFactory5::CheckFeatureSupport.

Hans-Kristian Arntzen post at arntzen-software.no
Tue Mar 31 06:19:41 CDT 2020


Enables certain D3D12 games to use sync off, since they gate their use
of swap_interval == 0 on this feature being present.

Signed-off-by: Hans-Kristian Arntzen <post at arntzen-software.no>
---
 dlls/dxgi/factory.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/dlls/dxgi/factory.c b/dlls/dxgi/factory.c
index 3f41df9e36..62148adf20 100644
--- a/dlls/dxgi/factory.c
+++ b/dlls/dxgi/factory.c
@@ -445,10 +445,21 @@ static HRESULT STDMETHODCALLTYPE dxgi_factory_EnumWarpAdapter(IWineDXGIFactory *
 static HRESULT STDMETHODCALLTYPE dxgi_factory_CheckFeatureSupport(IWineDXGIFactory *iface,
         DXGI_FEATURE feature, void *feature_data, UINT data_size)
 {
-    FIXME("iface %p, feature %#x, feature_data %p, data_size %u stub!\n",
+    TRACE("iface %p, feature %#x, feature_data %p, data_size %u.\n",
             iface, feature, feature_data, data_size);
 
-    return E_NOTIMPL;
+    if (feature == DXGI_FEATURE_PRESENT_ALLOW_TEARING)
+    {
+        if (data_size == sizeof(BOOL))
+        {
+            *(BOOL *)feature_data = TRUE;
+            return S_OK;
+        }
+        else
+            return DXGI_ERROR_INVALID_CALL;
+    }
+    else
+        return DXGI_ERROR_UNSUPPORTED;
 }
 
 static const struct IWineDXGIFactoryVtbl dxgi_factory_vtbl =
-- 
2.26.0




More information about the wine-devel mailing list