=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: dxgi: Reject DXGI_FORMAT_UNKNOWN for swapchains.

Alexandre Julliard julliard at winehq.org
Wed Mar 6 15:29:41 CST 2019


Module: wine
Branch: master
Commit: 42b22b0a77d0ab8ca1e8aaff50ee7782b05ab1cd
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=42b22b0a77d0ab8ca1e8aaff50ee7782b05ab1cd

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Wed Mar  6 14:19:55 2019 +0100

dxgi: Reject DXGI_FORMAT_UNKNOWN for swapchains.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/dxgi/swapchain.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/dlls/dxgi/swapchain.c b/dlls/dxgi/swapchain.c
index cf084f7..0776482 100644
--- a/dlls/dxgi/swapchain.c
+++ b/dlls/dxgi/swapchain.c
@@ -85,7 +85,7 @@ BOOL dxgi_validate_swapchain_desc(const DXGI_SWAP_CHAIN_DESC1 *desc)
         case DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL:
             min_buffer_count = 2;
 
-            if (!dxgi_validate_flip_swap_effect_format(desc->Format))
+            if (desc->Format && !dxgi_validate_flip_swap_effect_format(desc->Format))
                 return FALSE;
 
             if (desc->SampleDesc.Count != 1 || desc->SampleDesc.Quality)
@@ -738,6 +738,9 @@ HRESULT d3d11_swapchain_init(struct d3d11_swapchain *swapchain, struct dxgi_devi
      */
     if (!implicit)
     {
+        if (desc->backbuffer_format == WINED3DFMT_UNKNOWN)
+            return E_INVALIDARG;
+
         if (FAILED(hr = IWineDXGIAdapter_GetParent(device->adapter, &IID_IDXGIFactory,
                 (void **)&swapchain->factory)))
         {
@@ -2604,6 +2607,9 @@ HRESULT d3d12_swapchain_create(IWineDXGIFactory *factory, ID3D12CommandQueue *qu
     ID3D12Device *device;
     HRESULT hr;
 
+    if (swapchain_desc->Format == DXGI_FORMAT_UNKNOWN)
+        return DXGI_ERROR_INVALID_CALL;
+
     if (!fullscreen_desc)
     {
         memset(&default_fullscreen_desc, 0, sizeof(default_fullscreen_desc));




More information about the wine-cvs mailing list