https://bugs.winehq.org/show_bug.cgi?id=38274
--- Comment #7 from Stefan Dösinger stefan@codeweavers.com --- (In reply to Sergey Isakov from comment #5)
Yes, it is possible that this game needs compressed volumes. What are its minimum requirements? Is it supposed to work on a Geforce 7 card?
No this game installed on computer with Radeon card
I meant if the game is supposed to work when you run it with a Geforce 7 GPU. According to http://www.game-debate.com/games/index.php?g_id=742&game=Heroes%20of%20M... it needs at least a geforce 8, which is d3d10 capable. This card may have DXTn volume support.
Strange but the testing utility DxTex.exe from DirectxSDK is not working on this computer with any wine version, may be there is my mistake.
It's been a while since I looked at DxTex.exe, but if my memory serves me right it tries to use ddraw blits to convert compress and decompress DXTn textures. We don't implement this because the compression and decompression algorithms are covered by U.S. patent 5956431. All we can do is pass the data to the OpenGL implementation and let the GPU vendor deal with the patent.
There may also be other problems that prevent DxTex from working. A long time ago it had problems with child window d3d rendering, and the ddraw version of this utility had problems with our DDSCAPS_* handling when loading / saving compressed textures. Child window d3d should work these days, and I don't know if the version from the last dx sdk still uses ddraw.dll for handling .dds files.
(In reply to Sergey Isakov from comment #6)
I propose to make uncompress volume_textures before send GL_EXTCALL(glTexImage3D(GL_TEXTURE_3D, volume->texture_level, srgb ? format->glGammaInternal : format->glInternal, volume->resource.width, volume->resource.height, volume-> resource.depth, 0, format->glFormat, format->glType, mem)); checkGLcall("glTexImage3D");
Patches are welcome. Properly integrating conversion like this is a challenge of course. You can also try to re-order the 2D blocks into 3D blocks that make GL_NV_texture_compression_vtc happy. The format conversion infrastructure in utils.c is a good place to start, but you'll have to add the ability to limit conversion to volumes.