http://bugs.winehq.org/show_bug.cgi?id=30367
Bug #: 30367 Summary: Dota 2 claims it runs out of memory Product: Wine Version: 1.5.1 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: kelvie@ieee.org Classification: Unclassified
After a while, Dota 2 claims it runs out of memory:
$ zgrep DebugStr 2012-05-07-0009-wine-from-git.log.gz | uniq -c 1 000b:warn:debugstr:OutputDebugStringA "CHTTPRequestCache took 235 milliseconds to initialize\n" 1 0009:warn:debugstr:OutputDebugStringA "Adding license for package 515\n" 1 0009:warn:debugstr:OutputDebugStringA "Adding license for package 251\n" 1 0009:warn:debugstr:OutputDebugStringA "Adding license for package 1064\n" 1 0009:warn:debugstr:OutputDebugStringA "Adding license for package 2535\n" 1 0009:warn:debugstr:OutputDebugStringA "Adding license for package 4840\n" 1 0009:warn:debugstr:OutputDebugStringA "Adding license for package 0\n" 1 002a:warn:debugstr:OutputDebugStringA "roaming config store loaded successfully - 592 bytes.\n" 1 002a:warn:debugstr:OutputDebugStringA "migrating temporary roaming config store\n" 1 0009:warn:debugstr:OutputDebugStringA "Errors in resource\layout\uinavigatorpanel.layout:\nUnknown key 'scaling' set in style 'URLStatusImage' in file 'resource\layout\uinavigatorpanel.layout'\n" 1 0009:warn:debugstr:OutputDebugStringA "ExecCommandLine: ""C:\Program Files\Steam\steam.exe" -applaunch 570"\n" 1 0009:warn:debugstr:OutputDebugStringA "System startup time: 31.81 seconds\n" 1 002a:warn:debugstr:OutputDebugStringA "Game update: AppID 570 "Dota 2", ProcID 96, IP 0.0.0.0:0\n" 1 002a:warn:debugstr:OutputDebugStringA "saving roaming config store to 'sharedconfig.vdf'\n" 1 002a:warn:debugstr:OutputDebugStringA "roaming config store 2 saved successfully\n" 1 0061:warn:debugstr:OutputDebugStringA "GetWMIDeviceStats - Could not connect.\n" 1 0061:warn:debugstr:OutputDebugStringA "***** OUT OF MEMORY! attempted allocation size: 0 ****\n" 1 0061:warn:debugstr:OutputDebugStringA "Illegal termination of worker thread! Threads must negotiate an end to the thread before the CThread object is destroyed.\n" 238 001c:warn:debugstr:OutputDebugStringA "Failed to parse command (0)" 1 002a:warn:debugstr:OutputDebugStringA "Game removed: AppID 570 "Dota 2", ProcID 96 \n" 1 0009:warn:debugstr:OutputDebugStringA "Error: texture file 'public\steam_cloudsync' does not exist or is invalid\n" 1 002a:warn:debugstr:OutputDebugStringA "saving roaming config store to 'sharedconfig.vdf'\n" 1 002a:warn:debugstr:OutputDebugStringA "roaming config store 2 saved successfully\n"
TID 0061 has a lot of d3d warnings, so I assume it's the main thread, or the rendering thread? I'm not too well-versed into how games are coded.
Anyway, I have these d3d settings:
[Software\Wine\Direct3D] 1322029591 "DirectDrawRenderer"="opengl" "Multisampling"="disabled" "OffScreenRenderingMode"="pbuffer" "PixelShaderMode"="enabled" "UseGLSL"="disabled" "VertexShaderMode"="hardware" "VideoMemorySize"="1024"
I've attached the output after running with WINEDEBUG=err+all,fixme+all,warn+all,+tid
I initially suspected it was ALSA (as the sound would loop when it freezes), but I built this version of wine without ALSA support (latest Git version as of yesterday).
The game was run with -nod3d9ex (as we are supposed to for Source games).
I've tried to do a full trace, but it slows down the game too much to be of any use. I can fairly reliably reproduce this, and I am a code monkey myself (who isn't nowadays), so I can maybe help you guys fix this, if someone can show me how to debug this.
http://bugs.winehq.org/show_bug.cgi?id=30367
--- Comment #1 from Kelvie Wong kelvie@ieee.org 2012-04-06 12:55:41 CDT --- Created attachment 39698 --> http://bugs.winehq.org/attachment.cgi?id=39698 WINEDEBUG=err+all,fixme+all,warn+all,
It had many many repeated messages of the following, and I have filtered them out to make the log size 20M compressed, to 12k compressed.
I used the filters:
egrep -v '(FILE|warn:keyboard:|AddFontToList|warn:ntdll:NtQueryAttr|GDI_GetObjPtr|warn:module:load_|CreateFileW)'
and
egrep -v '(WINED3D_TS_WORLD_MATRIX|debug_d3dtstype Unrecognized transform state|debug_d3drenderstate Unrecognized .*render state|winsock:WS2_recv_base|wined3d_device_set_stream_source_freq Divider is 0)'
There are many (20M compressed worth of) lines of messages like
0045:warn:winsock:WS2_recv_base -> ERROR 10035 004b:warn:winsock:WS2_recv_base -> ERROR 10035 0050:warn:winsock:WS2_recv_base -> ERROR 10035 0069:warn:winsock:WS2_recv_base -> ERROR 10035 0061:fixme:d3d:debug_d3drenderstate Unrecognized [0-197] render state! 0061:fixme:d3d:debug_d3dtstype Unrecognized transform state [0-0xff] 0061:fixme:d3d:debug_d3dtstype WINED3D_TS_WORLD_MATRIX([257-511]). 1..255 not currently supported. 0061:warn:d3d:wined3d_device_set_stream_source_freq Divider is 0, returning D3DERR_INVALIDCALL.
http://bugs.winehq.org/show_bug.cgi?id=30367
--- Comment #2 from Rico kgbricola@web.de 2012-04-07 02:11:16 CDT --- In general this looks like a broken setup. You probably shouldn't use obsolete / unsupported registry keys (http://wiki.winehq.org/UsefulRegistryKeys). What's the behavior which you expect you get from such an entry? What else did you change by accident?
What's your graphics card and driver version?
You may have a look in the appdb (http://appdb.winehq.org/objectManager.php?sClass=version&iId=24458) and also add your bug there (see http://wiki.winehq.org/Bugs). The app is rated "platinum" with wine-1.5.0 , does it work with that version for you?
http://bugs.winehq.org/show_bug.cgi?id=30367
--- Comment #3 from Kelvie Wong kelvie@ieee.org 2012-04-09 12:10:38 CDT --- Thanks for the reply; I cleaned out the registry flags. The only ones I've changed were the direct3d ones that were recommended on the AppDB pages for other apps.
I've turned them all off, and attached another trace.
http://bugs.winehq.org/show_bug.cgi?id=30367
--- Comment #4 from Kelvie Wong kelvie@ieee.org 2012-04-09 12:11:38 CDT --- Created attachment 39737 --> http://bugs.winehq.org/attachment.cgi?id=39737 Trace after disabling custom registry keys
Generated with:
zcat /tmp/wine-dota2.log.gz| egrep -v '(WINED3D_TS_WORLD_MATRIX|debug_d3dtstype Unrecognized transform state|debug_d3drenderstate Unrecognized .*render state|winsock:WS2_recv_base|wined3d_device_set_stream_source_freq Divider is 0)' | gzip -9 > out.gz
Let me know if you need these messages that are filtered out.
http://bugs.winehq.org/show_bug.cgi?id=30367
--- Comment #5 from Kelvie Wong kelvie@ieee.org 2012-04-09 12:13:05 CDT --- As for video card:
OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: GeForce GT 330M/PCIe/SSE2 OpenGL version string: 3.3.0 NVIDIA 295.33
Linux pantagruel 3.0.0-17-generic #30-Ubuntu SMP Thu Mar 8 20:45:39 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
http://bugs.winehq.org/show_bug.cgi?id=30367
--- Comment #6 from Kelvie Wong kelvie@ieee.org 2012-04-09 12:16:56 CDT --- (In reply to comment #4)
Created attachment 39737 [details] Trace after disabling custom registry keys
Generated with:
zcat /tmp/wine-dota2.log.gz| egrep -v '(WINED3D_TS_WORLD_MATRIX|debug_d3dtstype Unrecognized transform state|debug_d3drenderstate Unrecognized .*render state|winsock:WS2_recv_base|wined3d_device_set_stream_source_freq Divider is 0)' | gzip -9 > out.gz
Let me know if you need these messages that are filtered out.
Sorry, I forgot to mention; WINEDEBUG was:
WINEDEBUG=err+all,fixme+all,warn+all,fixme+alsa,warn+alsa,warn+heap,err+d3d,warn+d3d9,fixme+heap,+tid
http://bugs.winehq.org/show_bug.cgi?id=30367
--- Comment #7 from Kelvie Wong kelvie@ieee.org 2012-04-09 12:20:39 CDT --- I'm compiling 1.5.0 right now to test. I think the results may be different because I'm on x86_64. I'll update the title to reflect that
http://bugs.winehq.org/show_bug.cgi?id=30367
Kelvie Wong kelvie@ieee.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Dota 2 claims it runs out |Dota 2 claims it runs out |of memory |of memory on x86_64
http://bugs.winehq.org/show_bug.cgi?id=30367
--- Comment #8 from Kelvie Wong kelvie@ieee.org 2012-04-09 12:55:40 CDT --- I ran it in 1.5.0, and it crashed in a different spot (though it may be a coincidence).
Before the audio starts freezing up and ALSA starts spouting error messages, I get this error instead:
0018:warn:heap:allocate_large_block Could not allocate block for 00100010 bytes
http://bugs.winehq.org/show_bug.cgi?id=30367
Vitaliy Margolen vitaliy-bugzilla@kievinfo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Platform|x86 |x86-64 Summary|Dota 2 claims it runs out |Dota 2 claims it runs out |of memory on x86_64 |of memory
--- Comment #9 from Vitaliy Margolen vitaliy-bugzilla@kievinfo.com 2012-04-09 21:38:32 CDT --- In the future, unless you have been asked to attach debug output with specific debug flags set you need to attach regular terminal output as a plain text file.
http://bugs.winehq.org/show_bug.cgi?id=30367
rmlipman@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |rmlipman@gmail.com
--- Comment #10 from rmlipman@gmail.com 2012-05-06 17:22:21 CDT --- I'm having similar "out of memory" crashes, usually right when joining a game. I've only tested it in solo and bot games, not in multiplayer.
http://bugs.winehq.org/show_bug.cgi?id=30367
--- Comment #11 from rmlipman@gmail.com 2012-05-12 20:43:39 CDT --- I believe the source of the crashes is that dota.exe is not set for Large Address Aware. Setting that on the exe seems to fix it for me.
http://bugs.winehq.org/show_bug.cgi?id=30367
Jerome Leclanche adys.wh@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |adys.wh@gmail.com
--- Comment #12 from Jerome Leclanche adys.wh@gmail.com 2012-05-13 10:24:42 CDT --- This could potentially make it an application issue.
http://bugs.winehq.org/show_bug.cgi?id=30367
--- Comment #13 from rmlipman@gmail.com 2012-05-17 23:52:40 CDT --- Dota 2 is now large address aware by default as of the latest update. If it was an application issue, it should be fixed now. Can anyone else confirm?
http://bugs.winehq.org/show_bug.cgi?id=30367
Kelvie Wong kelvie@ieee.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED
--- Comment #14 from Kelvie Wong kelvie@ieee.org 2012-05-18 00:42:16 CDT --- Seems like this was the problem, at least for me. I'll close this as resolved
http://bugs.winehq.org/show_bug.cgi?id=30367
Jerome Leclanche adys.wh@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED Resolution|FIXED |INVALID
--- Comment #15 from Jerome Leclanche adys.wh@gmail.com 2012-05-18 00:47:44 CDT --- Invalid.