[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