http://bugs.winehq.org/show_bug.cgi?id=16456
Jeffrey Bonggren 7wtjvu302@sneakemail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |7wtjvu302@sneakemail.com
--- Comment #17 from Jeffrey Bonggren 7wtjvu302@sneakemail.com 2009-01-17 21:19:27 --- (In reply to comment #4)
The error is caused by a memory leak in Sins of a Solar Empire. Presumably, the Windows implementation of Direct3D uses system RAM for textures in the IWineD3DSurface interface. In wine's implementation, it uses pixel buffer objects if the video card supports it. This is because it is faster to do it this way.
I just ran a test on my Windows machine with all of the effects settings maxed. I had Task Manager up on another screen. There was no evidence of any memory leak. The memory usage stayed around 1.3GB throughout a several-hours long lame.
If there is a memory leak in SoaSE, it is being triggered by Wine, because it just isn't happening on Windows.
I am using wine 1.1.12 (RPM) on Fedora 10 64-bit. My PC is an i7 with 6GB RAM. The vid card is a NVidia 9800gtx+ with 1GB video RAM.
When the effects settings are maxed-out, my games last less than 5 minutes before getting the GL_OUT_OF_MEMORY error. It is hard to believe that whatever leak is going on is eating up 1GB of video RAM that fast!
I am running the latest version of SoaSE. I just updated it yesterday (2009-01-16). I can't find the version number anywhere, so the date is the best I can do!
Below are the first few lines of the Wine output after the failure. I trust they are the same as what everyone else is seeing.
fixme:d3d_surface:surface_prepare_system_memory >>>>>>>>>>>>>>>>> GL_OUT_OF_MEMORY (0x505) from glBufferDataARB @ surface.c / 1031 fixme:d3d_surface:IWineD3DSurfaceImpl_LockRect >>>>>>>>>>>>>>>>> GL_OUT_OF_MEMORY (0x505) from glMapBufferARB @ surface.c / 1178
I have not yet tried the surface_prepare_system_memory workaround patch.