bg
02-23-2012, 05:40 PM
When first seeing a spell being cast in-game, the game will freeze for about 1/4 of a second. It happens every game, every time, though the impact might be greater with some spells than others. Plague extinguish and Vindicator curse are two that for sure have an effect (I might test others conclusively when I have time). This has been happening for at least a few months now, and I don't remember it being a problem long before. I feel like it definitely has an impact on playability because it happens during important combat sequences. It certainly gets irritating.
I have a rather fast computer, so lack of hardware isn't the problem. Relevant specs:
- i7 quad core with hyperthreading at 4GHz
- 12GB DDR3 RAM
- ATI 5850 video card, using latest proprietary Catalyst drivers
- Arch Linux 64bit, up to date (edit: also happens in Win7 64bit in OpenGL mode)
- Corsair Force 3 160GB SSD (latest firmware)
I have a likely lead regarding the cause. I just recreated the freezes in practice mode and watched the console. When the freeze happens, a bunch of GLSL shaders have to be compiled, which obviously takes some time. A simple fix would be to compile all shaders relevant to the current game during load time rather than in-game.
If you want a console log, I can post one later, though I'll paste some of the lines that happen during the spellcast:
Compiling pixel shader: mesh_color_lightmap.psh (ps_glsl)
Linking shaders: mesh_color.vsh and mesh_color_lightmap.psh (glsl)
Compiling pixel shader: mesh_color_unit_team.psh (ps_glsl)
Linking shaders: mesh_color_unit.vsh and mesh_color_unit_team.psh (glsl)
Compiling pixel shader: mesh_color_flat_lightmap.psh (ps_glsl)
Linking shaders: mesh_color_flat.vsh and mesh_color_flat_lightmap.psh (glsl)
Compiling pixel shader: terrain_color.psh (ps_glsl)
Linking shaders: terrain_color.vsh and terrain_color.psh (glsl)
Compiling pixel shader: mesh_color_lightmap.psh (ps_glsl)
Linking shaders: mesh_color.vsh and mesh_color_lightmap.psh (glsl)
Compiling pixel shader: mesh_color.psh (ps_glsl)
Linking shaders: mesh_color.vsh and mesh_color.psh (glsl)
Linking shaders: mesh_color.vsh and mesh_color_lightmap.psh (glsl)
Compiling pixel shader: mesh_color_unit_team.psh (ps_glsl)
Linking shaders: mesh_color_unit.vsh and mesh_color_unit_team.psh (glsl)
Compiling pixel shader: foliage_color.psh (ps_glsl)
Linking shaders: foliage_color.vsh and foliage_color.psh (glsl)
Compiling pixel shader: terrain_color.psh (ps_glsl)
Linking shaders: terrain_color.vsh and terrain_color.psh (glsl)
Compiling vertex shader: mesh_depth_opacity.vsh (vs_glsl)
Compiling pixel shader: mesh_depth_opacity.psh (ps_glsl)
Linking shaders: mesh_depth_opacity.vsh and mesh_depth_opacity.psh (glsl)
Linking shaders: mesh_color_unit.vsh and mesh_color_unit_team.psh (glsl)
Compiling pixel shader: mesh_depth_opacity.psh (ps_glsl)
Linking shaders: mesh_depth_opacity.vsh and mesh_depth_opacity.psh (glsl)
Linking shaders: mesh_color_unit.vsh and mesh_color_unit_team.psh (glsl)
Compiling pixel shader: mesh_depth_opacity.psh (ps_glsl)
Linking shaders: mesh_depth_opacity.vsh and mesh_depth_opacity.psh (glsl)
Linking shaders: mesh_color_unit.vsh and mesh_color_unit_team.psh (glsl)
edit: Here's the log: http://tools.heroesofnewerth.com/view.php?key=914c5e451e279783&action=download
I have a rather fast computer, so lack of hardware isn't the problem. Relevant specs:
- i7 quad core with hyperthreading at 4GHz
- 12GB DDR3 RAM
- ATI 5850 video card, using latest proprietary Catalyst drivers
- Arch Linux 64bit, up to date (edit: also happens in Win7 64bit in OpenGL mode)
- Corsair Force 3 160GB SSD (latest firmware)
I have a likely lead regarding the cause. I just recreated the freezes in practice mode and watched the console. When the freeze happens, a bunch of GLSL shaders have to be compiled, which obviously takes some time. A simple fix would be to compile all shaders relevant to the current game during load time rather than in-game.
If you want a console log, I can post one later, though I'll paste some of the lines that happen during the spellcast:
Compiling pixel shader: mesh_color_lightmap.psh (ps_glsl)
Linking shaders: mesh_color.vsh and mesh_color_lightmap.psh (glsl)
Compiling pixel shader: mesh_color_unit_team.psh (ps_glsl)
Linking shaders: mesh_color_unit.vsh and mesh_color_unit_team.psh (glsl)
Compiling pixel shader: mesh_color_flat_lightmap.psh (ps_glsl)
Linking shaders: mesh_color_flat.vsh and mesh_color_flat_lightmap.psh (glsl)
Compiling pixel shader: terrain_color.psh (ps_glsl)
Linking shaders: terrain_color.vsh and terrain_color.psh (glsl)
Compiling pixel shader: mesh_color_lightmap.psh (ps_glsl)
Linking shaders: mesh_color.vsh and mesh_color_lightmap.psh (glsl)
Compiling pixel shader: mesh_color.psh (ps_glsl)
Linking shaders: mesh_color.vsh and mesh_color.psh (glsl)
Linking shaders: mesh_color.vsh and mesh_color_lightmap.psh (glsl)
Compiling pixel shader: mesh_color_unit_team.psh (ps_glsl)
Linking shaders: mesh_color_unit.vsh and mesh_color_unit_team.psh (glsl)
Compiling pixel shader: foliage_color.psh (ps_glsl)
Linking shaders: foliage_color.vsh and foliage_color.psh (glsl)
Compiling pixel shader: terrain_color.psh (ps_glsl)
Linking shaders: terrain_color.vsh and terrain_color.psh (glsl)
Compiling vertex shader: mesh_depth_opacity.vsh (vs_glsl)
Compiling pixel shader: mesh_depth_opacity.psh (ps_glsl)
Linking shaders: mesh_depth_opacity.vsh and mesh_depth_opacity.psh (glsl)
Linking shaders: mesh_color_unit.vsh and mesh_color_unit_team.psh (glsl)
Compiling pixel shader: mesh_depth_opacity.psh (ps_glsl)
Linking shaders: mesh_depth_opacity.vsh and mesh_depth_opacity.psh (glsl)
Linking shaders: mesh_color_unit.vsh and mesh_color_unit_team.psh (glsl)
Compiling pixel shader: mesh_depth_opacity.psh (ps_glsl)
Linking shaders: mesh_depth_opacity.vsh and mesh_depth_opacity.psh (glsl)
Linking shaders: mesh_color_unit.vsh and mesh_color_unit_team.psh (glsl)
edit: Here's the log: http://tools.heroesofnewerth.com/view.php?key=914c5e451e279783&action=download