Thank you so much for being patient and showing me how to do this.. with much help from everyone here is what the results are :
Patch 1 : File : wine-1.0/dlls/wined3d/context.c --- context.c??? 2008-06-26 13:52:57.000000000 -0400 +++ context.c.patch1??? 2008-06-26 15:19:15.000000000 -0400 @@ -145,9 +145,7 @@ static int WineD3D_ChoosePixelFormat(IWi ? ???? DepthStencilFormat = WINED3DFMT_D24S8; ? -??? if(DepthStencilFormat) { -??????? getDepthStencilBits(DepthStencilFormat, &depthBits, &stencilBits); -??? } +??? getDepthStencilBits(DepthStencilFormat, &depthBits, &stencilBits); ? ???? /* Find a pixel format which EXACTLY matches our requirements (except for depth) */ ???? for(i=0; i<nCfgs; i++) { Patch 2: File: wine-1.0/dlls/wined3d/context.c --- context.c??? 2008-06-26 13:52:57.000000000 -0400 +++ context.c.patch2??? 2008-06-26 15:37:25.000000000 -0400 @@ -120,7 +120,9 @@ static int WineD3D_ChoosePixelFormat(IWi ???? int i = 0; ???? int nCfgs = This->adapter->nCfgs; ???? WineD3D_PixelFormat *cfgs = This->adapter->cfgs; - +??? PIXELFORMATDESCRIPTOR pfd; +??? BOOL exactDepthMatch = TRUE; +??????????? ???? TRACE("ColorFormat=%s, DepthStencilFormat=%s, auxBuffers=%d, numSamples=%d, pbuffer=%d, findCompatible=%d\n", ?????????? debug_d3dformat(ColorFormat), debug_d3dformat(DepthStencilFormat), auxBuffers, numSamples, pbuffer, findCompatible); ? @@ -151,7 +153,6 @@ static int WineD3D_ChoosePixelFormat(IWi ? ???? /* Find a pixel format which EXACTLY matches our requirements (except for depth) */ ???? for(i=0; i<nCfgs; i++) { -??????? BOOL exactDepthMatch = TRUE; ???????? cfgs = &This->adapter->cfgs[i]; ? ???????? /* For now only accept RGBA formats. Perhaps some day we will @@ -180,13 +181,7 @@ static int WineD3D_ChoosePixelFormat(IWi ???????? if(cfgs->alphaSize != alphaBits) ???????????? continue; ? -??????? /* We try to locate a format which matches our requirements exactly. In case of -???????? * depth it is no problem to emulate 16-bit using e.g. 24-bit, so accept that. */ -??????? if(cfgs->depthSize < depthBits) -??????????? continue; -??????? else if(cfgs->depthSize > depthBits) -??????????? exactDepthMatch = FALSE; - +??????? ???????? /* In all cases make sure the number of stencil bits matches our requirements ????????? * even when we don't need stencil because it could affect performance EXCEPT ????????? * on cards which don't offer depth formats without stencil like the i915 drivers @@ -198,6 +193,13 @@ static int WineD3D_ChoosePixelFormat(IWi ???????? if(cfgs->numSamples != numSamples) ???????????? continue; ? +?????? /* We try to locate a format which matches our requirements exactly. In case of +???????? * depth it is no problem to emulate 16-bit using e.g. 24-bit, so accept that. */ +??????? if(cfgs->depthSize < depthBits) +??????????? continue; +??????? else if(cfgs->depthSize > depthBits) +??????????? exactDepthMatch = FALSE; + ???????? /* When we have passed all the checks then we have found a format which matches our ????????? * requirements. Note that we only check for a limit number of capabilities right now, ????????? * so there can easily be a dozen of pixel formats which appear to be the 'same' but @@ -216,12 +218,8 @@ static int WineD3D_ChoosePixelFormat(IWi ???????? } ???? } ? -??? /* When findCompatible is set and no suitable format was found, let ChoosePixelFormat choose a pixel format in order not to crash. */ -??? if(!iPixelFormat && !findCompatible) { -??????? ERR("Can't find a suitable iPixelFormat\n"); -??????? return FALSE; -??? } else if(!iPixelFormat) { -??????? PIXELFORMATDESCRIPTOR pfd; +??? if(!iPixelFormat) { + ? ???????? TRACE("Falling back to ChoosePixelFormat as we weren't able to find an exactly matching pixel format\n"); ???????? /* PixelFormat selection */ Chris Ahrendt P.S. THANKS everyone.. so now comments please? <G>