https://bugs.winehq.org/show_bug.cgi?id=39472
Bug ID: 39472 Summary: World of Warships 0.4.x/0.5.x client runs out of GL memory after many consecutive games Product: Wine Version: 1.7.53 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: directx-d3d Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net Distribution: ---
Hello folks,
by having a large number of consecutive games within same session, the client will eventually run out of GL memory. Not sure if this is a Wine bug or a bug in the game engine itself.
It doesn't matter if ARB or GLSL shader backend (default), CSMT or non-CSMT (default) is used. Plain Wine and Wine-Staging (for CSMT).
The leak is around 50-70 MB per game so it takes 20-30 games until it becomes apparent. When that happens you get strange effects due to failing GL calls.
Console output at the exact point:
--- snip --- ... 0028:err:d3d_texture:texture2d_prepare_texture >>>>>>>>>>>>>>>>> GL_OUT_OF_MEMORY (0x505) from glTexImage2D @ /home/focht/projects/wine/wine.repo/staging-src/dlls/wined3d-csmt/../wined3d/texture.c / 1000 0028:err:d3d_texture:wined3d_texture_bind >>>>>>>>>>>>>>>>> GL_OUT_OF_MEMORY (0x505) from glGenTextures @ /home/focht/projects/wine/wine.repo/staging-src/dlls/wined3d-csmt/../wined3d/texture.c / 199 0028:err:d3d_texture:texture2d_prepare_texture >>>>>>>>>>>>>>>>> GL_OUT_OF_MEMORY (0x505) from glTexImage2D @ /home/focht/projects/wine/wine.repo/staging-src/dlls/wined3d-csmt/../wined3d/texture.c / 1000 0028:err:d3d_surface:wined3d_surface_upload_data >>>>>>>>>>>>>>>>> GL_INVALID_VALUE (0x501) from glTexSubImage2D @ /home/focht/projects/wine/wine.repo/staging-src/dlls/wined3d-csmt/../wined3d/surface.c / 1732 0028:err:d3d_draw:draw_strided_fast >>>>>>>>>>>>>>>>> GL_INVALID_FRAMEBUFFER_OPERATION (0x506) from glDrawArrays @ /home/focht/projects/wine/wine.repo/staging-src/dlls/wined3d-csmt/../wined3d/drawprim.c / 91 005a:trace:seh:__regs_MSVCRT__setjmp3 buf=0x2cc5da20 ebx=351af2d0 esi=2f6c5150 edi=351af2a0 ebp=0ea7e928 esp=0ea7e914 eip=00d65da3 frame=0ea7ea48 0028:err:d3d_surface:surface_blt_fbo >>>>>>>>>>>>>>>>> GL_INVALID_FRAMEBUFFER_OPERATION (0x506) from glReadBuffer() @ /home/focht/projects/wine/wine.repo/staging-src/dlls/wined3d-csmt/../wined3d/surface.c / 1078 0028:err:d3d_draw:draw_strided_fast >>>>>>>>>>>>>>>>> GL_INVALID_FRAMEBUFFER_OPERATION (0x506) from glDrawArrays @ /home/focht/projects/wine/wine.repo/staging-src/dlls/wined3d-csmt/../wined3d/drawprim.c / 91 0028:err:d3d_texture:texture2d_prepare_texture >>>>>>>>>>>>>>>>> GL_OUT_OF_MEMORY (0x505) from glTexImage2D @ /home/focht/projects/wine/wine.repo/staging-src/dlls/wined3d-csmt/../wined3d/texture.c / 1000 0028:err:d3d_shader:shader_arb_select >>>>>>>>>>>>>>>>> GL_INVALID_FRAMEBUFFER_OPERATION (0x506) from glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, priv->current_fprogram_id); @ /home/focht/projects/wine/wine.repo/staging-src/dlls/wined3d-csmt/../wined3d/arb_program_shader.c / 4692 0028:err:d3d_draw:draw_strided_fast >>>>>>>>>>>>>>>>> GL_INVALID_FRAMEBUFFER_OPERATION (0x506) from glDrawArrays @ /home/focht/projects/wine/wine.repo/staging-src/dlls/wined3d-csmt/../wined3d/drawprim.c / 91 --- snip ---
I continuously monitor the GPU memory usage using 'nvidia−smi' tool from another terminal:
--- snip --- $ watch -n2 nvidia-smi ...
Fri Oct 16 18:26:51 2015 +------------------------------------------------------+ | NVIDIA-SMI 352.41 Driver Version: 352.41 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 850M Off | 0000:01:00.0 Off | N/A | | N/A 50C P8 N/A / N/A | 1385MiB / 2047MiB | 0% Default | +-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 4151 G /usr/libexec/Xorg 49MiB | | 0 4485 G ...mes\World_of_Warships\worldofwarships.exe 1325MiB | +-----------------------------------------------------------------------------+
--- snip ---
Regards
https://bugs.winehq.org/show_bug.cgi?id=39472
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://worldofwarships.eu/e | |n/game/download/
https://bugs.winehq.org/show_bug.cgi?id=39472
mazhe@alkumuna.eu changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mazhe@alkumuna.eu
https://bugs.winehq.org/show_bug.cgi?id=39472
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |NOTOURBUG
--- Comment #1 from Anastasius Focht focht@gmx.net --- Hello folks,
revisiting.
The GL memory leak was most likely a game client bug and fixed some time ago with late 0.5.x or 0.6.x series (current version: 0.6.5.0)
I didn't encounter this one for a long time, even after 30+ consecutive games without restart/reconnect.
The usage hovers around 500-800 MiB with medium graphics settings.
--- snip --- $ watch -n2 nvidia-smi ...
Sun May 21 21:26:55 2017 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 367.27 Driver Version: 367.27 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 850M Off | 0000:01:00.0 Off | N/A | | N/A 68C P0 N/A / N/A | 589MiB / 2002MiB | 56% Default | +-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 12453 G /usr/libexec/Xorg 21MiB | | 0 12947 G ...mes\World_of_Warships\worldofwarships.exe 567MiB | +-----------------------------------------------------------------------------+ --- snip ---
Resolving 'upstream'.
Regards
https://bugs.winehq.org/show_bug.cgi?id=39472
Matteo Bruni matteo.mystral@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|NOTOURBUG |INVALID Component|directx-d3d |-unknown
--- Comment #2 from Matteo Bruni matteo.mystral@gmail.com --- (In reply to Anastasius Focht from comment #1)
Hello folks,
revisiting.
The GL memory leak was most likely a game client bug and fixed some time ago with late 0.5.x or 0.6.x series (current version: 0.6.5.0)
We generally resolve application bugs as INVALID, reserving NOTOURBUG for upstream (e.g. drivers, libraries) / downstream (e.g. distro) issues.
https://bugs.winehq.org/show_bug.cgi?id=39472
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #3 from Austin English austinenglish@gmail.com --- Closing.
https://bugs.winehq.org/show_bug.cgi?id=39472
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://worldofwarships.eu/e | |n/game/download/ | Keywords|download |
--- Comment #4 from Anastasius Focht focht@gmx.net --- Hello folks,
removing download link. No snapshot of WOWS 0.4.x/0.5.x client exists. Even then one wouldn't be able to reproduce because one can't login to servers without a forced client upgrade.
Regards