[PATCH] Always report D16 as Windows drivers report it on all cards (likely using emulation). This fixes a 3dmark2000 regression on Geforce8 cards.

Roderick Colenbrander thunderbird2k at gmx.net
Tue Mar 25 05:02:20 CDT 2008


---
 dlls/wined3d/directx.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 2cc7b03..4b812c5 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -1695,6 +1695,12 @@ static HRESULT WINAPI IWineD3DImpl_CheckDepthStencilMatch(IWineD3D *iface, UINT
         return WINED3DERR_INVALIDCALL;
     }
 
+    /* GLX doesn't offer a D16 GLXFBconfig on Geforce8/9 cards. The corresponding Windows drivers
+     * always offer it and second D3D <= 7 apps require D16 too, so always report it. We can emulate
+     * it properly. */
+    if(DepthStencilFormat == WINED3DFMT_D16)
+        return WINED3D_OK;
+
     cfgs = Adapters[Adapter].cfgs;
     nCfgs = Adapters[Adapter].nCfgs;
     for (it = 0; it < nCfgs; ++it) {
@@ -1880,6 +1886,12 @@ WINED3DFORMAT DepthStencilFormat)
             return FALSE;
     }
 
+    /* GLX doesn't offer a D16 GLXFBconfig on Geforce8/9 cards. The corresponding Windows drivers
+     * always offer it and second D3D <= 7 apps require D16 too, so always report it. We can emulate
+     * it properly. */
+    if(DepthStencilFormat == WINED3DFMT_D16)
+        return WINED3D_OK;
+
     /* Walk through all WGL pixel formats to find a match */
     cfgs = Adapters[Adapter].cfgs;
     for (it = 0; it < Adapters[Adapter].nCfgs; ++it) {
-- 
1.5.3.4


--========GMX230821206439066558531--



More information about the wine-patches mailing list