[PATCH 3/5] wined3d: Advertise AUTOGENMIPMAP only for renderable and filterable formats.

Matteo Bruni mbruni at codeweavers.com
Wed Sep 20 12:53:40 CDT 2017


Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
---
 dlls/d3d9/tests/device.c | 2 +-
 dlls/wined3d/directx.c   | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c
index 28ab460d51..006b72820b 100644
--- a/dlls/d3d9/tests/device.c
+++ b/dlls/d3d9/tests/device.c
@@ -6942,7 +6942,7 @@ static void test_mipmap_gen(void)
     if (FAILED(hr))
         win_skip("D3DFMT_A8L8 textures not supported.\n");
     else
-        todo_wine ok(hr == D3DOK_NOAUTOGEN, "Got unexpected hr %#x.\n", hr);
+        ok(hr == D3DOK_NOAUTOGEN, "Got unexpected hr %#x.\n", hr);
 
     if (IDirect3D9_CheckDeviceFormat(d3d, 0, D3DDEVTYPE_HAL, D3DFMT_X8R8G8B8,
             D3DUSAGE_AUTOGENMIPMAP, D3DRTYPE_TEXTURE, D3DFMT_X8R8G8B8) != D3D_OK)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 168e494c0e..da66ad36fd 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -5364,7 +5364,9 @@ HRESULT CDECL wined3d_check_device_format(const struct wined3d *wined3d, UINT ad
         return WINED3DERR_NOTAVAILABLE;
     }
 
-    if ((usage & WINED3DUSAGE_AUTOGENMIPMAP) && !gl_info->supported[SGIS_GENERATE_MIPMAP])
+    if ((usage & WINED3DUSAGE_AUTOGENMIPMAP) && (!gl_info->supported[SGIS_GENERATE_MIPMAP]
+            || (format->flags[gl_type] & (WINED3DFMT_FLAG_RENDERTARGET | WINED3DFMT_FLAG_FILTERING))
+            != (WINED3DFMT_FLAG_RENDERTARGET | WINED3DFMT_FLAG_FILTERING)))
     {
         TRACE("No WINED3DUSAGE_AUTOGENMIPMAP support, returning WINED3DOK_NOAUTOGEN.\n");
         return WINED3DOK_NOAUTOGEN;
-- 
2.13.5




More information about the wine-patches mailing list