[Wine] Re: Call of Duty 4 black screen and error

Tlarhices wineforum-user at winehq.org
Thu Jun 5 06:58:38 CDT 2008


Rico wrote:
> 
> Tlarhices wrote:
> > I've just tried it with the demo and I'm in the same case, same output and black screen. I also have a message box from the game saying that directX has failed.
> > I have an nvidia geforce 9600gt with the driver 173.14.05 and is performing well with other 3D games in wine.
> > The same behavior occur using fullscreen and virtual desktop and I didn't played with other parameters in wine.
> > Tested on Ubuntu hardy without compiz and without pulseaudio.
> > With today's GIT and the 3Dmark patch.
> > I tested with the versions reported as working on the AppDB and the behavior is the same for me, so not a regression.
> 
> 
> With driver version 173.14.05 I got an  GL_OUT_OF_MEMORY very fast (after 2 minutes of playing the game - VIRTMEM>4096). With version 171.06 I could play about 5 minutes. I couldn't produce the black screen, so it could be a problem with your card or how wine handles the card ( 8600/9600 vs 8800 ).
> 
> I've applied this patch to get the game working, probably you could give it a try? Is your patch (3Dmark patch) doing the same?
> 
> Code:
> 
> diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
> index 32f7323..22c4287 100644
> --- a/dlls/wined3d/directx.c
> +++ b/dlls/wined3d/directx.c
> @@ -846,7 +846,7 @@ BOOL IWineD3DImpl_FillGLCaps(WineD3D_GL_Info *gl_info) {
>          }
>          if (gl_info->supported[ARB_MULTITEXTURE]) {
>              glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, &gl_max);
> -            gl_info->max_textures = min(MAX_TEXTURES, gl_max);
> +	    gl_info->max_textures = 8;
>              TRACE_(d3d_caps)("Max textures: %d\n", gl_info->max_textures);
>  
>              if (gl_info->supported[NV_REGISTER_COMBINERS]) {
> @@ -3174,7 +3174,7 @@ static HRESULT WINAPI IWineD3DImpl_GetDeviceCaps(IWineD3D *iface, UINT Adapter,
>      pCaps->MaxVertexBlendMatrixIndex   = 0;
>  
>      pCaps->MaxAnisotropy   = GL_LIMITS(anisotropy);
> -    pCaps->MaxPointSize    = GL_LIMITS(pointsize);
> +    pCaps->MaxPointSize    = 64.0f;
>  
>  
>      pCaps->VertexProcessingCaps = WINED3DVTXPCAPS_DIRECTIONALLIGHTS |
> 
> 
> 


I was using the patch linked on the appdb page which does a little bit more.
With your patch the bug is worst (if I can say so) instead of earing the sound and music without having video, it makes the game stop displaying a box saying :

> 
> DirectX encountered an unrecoverable error.
> Check the readme for possible solutions.
> 

And clicking OK (the only button) will exit the game.

The log with this patch is:

Code:
fixme:d3d:IWineD3DImpl_FillGLCaps OpenGL implementation supports 32 vertex samplers and 32 total samplers
fixme:d3d:IWineD3DImpl_FillGLCaps Expected vertex samplers + MAX_TEXTURES(=8) > combined_samplers
fixme:win:EnumDisplayDevicesW ((null),0,0x32f8e4,0x00000000), stub!
err:d3d:CreateContext Requesting MultiSampleType=4
fixme:d3d:WineD3D_ChoosePixelFormat Add OpenGL context recreation support to SetDepthStencilSurface
fixme:d3d:CreateContext >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glTexEnvi(GL_TEXTURE_SHADER_NV, GL_PREVIOUS_TEXTURE_INPUT_NV, ...
 @ context.c / 514
fixme:d3d:CreateContext >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glTexEnvi(GL_TEXTURE_SHADER_NV, GL_PREVIOUS_TEXTURE_INPUT_NV, ...
 @ context.c / 514
fixme:d3d:CreateContext >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glTexEnvi(GL_TEXTURE_SHADER_NV, GL_PREVIOUS_TEXTURE_INPUT_NV, ...
 @ context.c / 514
fixme:d3d:CreateContext >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glTexEnvi(GL_TEXTURE_SHADER_NV, GL_PREVIOUS_TEXTURE_INPUT_NV, ...
 @ context.c / 514
fixme:d3d9:IDirect3DDevice9Impl_CreateIndexBuffer (0x1a5458) call to IWineD3DDevice_CreateIndexBuffer failed
err:d3d:CreateContext Requesting MultiSampleType=4
fixme:d3d:WineD3D_ChoosePixelFormat Add OpenGL context recreation support to SetDepthStencilSurface
fixme:d3d:CreateContext >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glTexEnvi(GL_TEXTURE_SHADER_NV, GL_PREVIOUS_TEXTURE_INPUT_NV, ...
 @ context.c / 514
fixme:d3d:CreateContext >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glTexEnvi(GL_TEXTURE_SHADER_NV, GL_PREVIOUS_TEXTURE_INPUT_NV, ...
 @ context.c / 514
fixme:d3d:CreateContext >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glTexEnvi(GL_TEXTURE_SHADER_NV, GL_PREVIOUS_TEXTURE_INPUT_NV, ...
 @ context.c / 514
fixme:d3d:CreateContext >>>>>>>>>>>>>>>>> GL_INVALID_OPERATION (0x502) from glTexEnvi(GL_TEXTURE_SHADER_NV, GL_PREVIOUS_TEXTURE_INPUT_NV, ...
 @ context.c / 514
fixme:d3d:IWineD3DVolumeImpl_LockBox (0x188428) : pBox=(nil) stub
fixme:winmm:MMDRV_Exit Closing while ll-driver open
Segmentation fault










More information about the wine-users mailing list