Zebediah Figura : d3d11: Always return E_FAIL for formats which have no support flags.

Alexandre Julliard julliard at winehq.org
Tue Aug 16 16:01:00 CDT 2022


Module: wine
Branch: master
Commit: 74ad023154e00cb5273ad855d29e463f13a544c3
URL:    https://gitlab.winehq.org/wine/wine/-/commit/74ad023154e00cb5273ad855d29e463f13a544c3

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Wed Aug 10 12:13:01 2022 -0500

d3d11: Always return E_FAIL for formats which have no support flags.

---

 dlls/d3d11/device.c      |  2 +-
 dlls/d3d11/tests/d3d11.c | 11 +++++++----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 0ae695901da..79b972df671 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -3959,7 +3959,7 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CheckFormatSupport(ID3D11Device2 *
                 | D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD;
     }
 
-    return S_OK;
+    return *format_support ? S_OK : E_FAIL;
 }
 
 static HRESULT STDMETHODCALLTYPE d3d11_device_CheckMultisampleQualityLevels(ID3D11Device2 *iface,
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
index eab45931d2d..034b5e4320f 100644
--- a/dlls/d3d11/tests/d3d11.c
+++ b/dlls/d3d11/tests/d3d11.c
@@ -21062,15 +21062,18 @@ static void test_format_support(const D3D_FEATURE_LEVEL feature_level)
     memset(format_support, 0, sizeof(format_support));
     for (format = DXGI_FORMAT_UNKNOWN; format <= DXGI_FORMAT_B4G4R4A4_UNORM; ++format)
     {
+        winetest_push_context("format %#x", format);
+
         hr = ID3D11Device_CheckFormatSupport(device, format, &format_support[format]);
-        ok(hr == S_OK || (hr == E_FAIL && !format_support[format]),
-                "Got unexpected result for format %#x: hr %#lx, format_support %#x.\n",
-                format, hr, format_support[format]);
+        ok((hr == S_OK && format_support[format]) || (hr == E_FAIL && !format_support[format]),
+                "Got unexpected hr %#lx, format_support %#x.\n", hr, format_support[format]);
         if (format_support[format] & D3D11_FORMAT_SUPPORT_MIP_AUTOGEN)
         {
             ok(format_support[format] & D3D11_FORMAT_SUPPORT_TEXTURE2D,
-                    "Got unexpected format support %#x for format %#x", format_support[format], format);
+                    "Got unexpected format support %#x", format);
         }
+
+        winetest_pop_context();
     }
 
     for (format = DXGI_FORMAT_UNKNOWN; format <= DXGI_FORMAT_B4G4R4A4_UNORM; ++format)




More information about the wine-cvs mailing list