GDI surfaces, GDI heap and wined3d's VideoMemorySize

Vitaliy Margolen wine-devel at kievinfo.com
Sun Feb 25 17:36:02 CST 2007


Submit proper bug report to Wine bugzilla.
The memory size setting is only in registry because you should not touch
it in the first place.
For any user support problems - use wine-users mailing list.

Vitaliy


Rok Mandeljc wrote:
> Hey all,
> 
> I've been experiencing an odd behavior in Baldur's Gate 2; when
> "VideoMemorySize" registry key for wined3d is set to anything greater
> than 64MB (69MB, actually), it stops before playing intro movie,
> printing following line:
> err:clipping:CLIPPING_UpdateGCRegion hVisRgn is zero. Please report this.
> 
> Tracing the source of issue by inserting custom traces I got the following:
> IDirectDrawImpl_CreateNewSurface -> IWineD3DDeviceImpl_CreateSurface
> (decides to use GDI surface) -> IWineGDISurfaceImpl_PrivateSetup ->
> IWineD3DSurfaceImpl_GetDC ->
> CreateCompatibleDC -> CreateRectRgn -> REGION_CreateRegion ->
> GDI_AllocObject -> alloc_large_heap
> 
> alloc_large_heap fails because it can't find next large handle and
> returns NULL, which is passed up the chain, where CreateCompatibleDC
> puts it in dc->hVisRgn. Then DC_InitDC is called with that dc, which
> calls CLIPPING_UpdateGCRegion, and that one finally chokes on it,
> printing afore-mentioned line and calling exit(1).
> 
> Now, when the game is run with 64MB of VideoMemorySize, upon reaching
> the same point, IDirectDrawImpl_CreateNewSurface returns
> WINED3DERR_OUTOFVIDEOMEMORY (because of
> "IWineD3DDevice_GetAvailableTextureMem(iface) <= _size" check in
> D3DCREATERESOURCEOBJECTINSTANCE macro) and intro movie starts playing.
> So it seems Baldur's Gate 2 is trying to create as many surfaces as
> possible before running out of memory. And the problem arises when
> specified memory size is large enough to take up all GDI's heap...
> 
> Sorry for the long-winded description of the problem, but I'm not sure
> where and how this should be fixed (is it wined3d issue or should GDI
> have its heap enlarged?), otherwise I'd do it myself...
> 
> Regards,
>     Rok
> -=-=-=-=-=-
> Never say "Never" unless it is to say "Never Give Up."
> -=-=-=-=-=--=-=-=-=-=-
> * Generated by TagZilla 0.066 * http://tagzilla.mozdev.org *
> 
> 




More information about the wine-devel mailing list