DDS crash

Find any bugs in Vega Strike? See if someone has already found it, or report them here!
Post Reply
ace123
Lead Network Developer
Lead Network Developer
Posts: 2560
Joined: Sun Jan 12, 2003 9:13 am
Location: Palo Alto CA
Contact:

DDS crash

Post by ace123 »

Valgrind wrote: CREATING A LOCAL SHIP : dumbfire
Hi helper play 0
==9527==
==9527== Invalid read of size 1
==9527== at 0x4C22370: memcpy (mc_replace_strmem.c:406)
==9527== by 0x7A71CC2: (within /usr/lib/libGLcore.so.100.14.11)
==9527== by 0x7A6E3C6: (within /usr/lib/libGLcore.so.100.14.11)
==9527== by 0xF621B5: GFXTransferTexture(unsigned char*, int, TEXTUREFORMAT, TEXTURE_IMAGE_TARGET, int, unsigned char) (gl_texture.cpp:820)
==9527== by 0xCF9B83: Texture::Transfer(int, unsigned char) (aux_texture.cpp:787)
==9527== by 0xCFA0D6: Texture::Bind(int, unsigned char) (aux_texture.cpp:854)
==9527== by 0xCFB5B5: Texture::Load(char const*, char const*, int, FILTER, TEXTURE_TARGET, TEXTURE_IMAGE_TARGET, float, int, unsigned char, int, unsigned char, unsigned char, ADDRESSMODE) (aux_texture.cpp:719)
==9527== by 0xCFB7E0: Texture::Texture(char const*, char const*, int, FILTER, TEXTURE_TARGET, TEXTURE_IMAGE_TARGET, float, int, unsigned char, int, unsigned char, unsigned char, ADDRESSMODE) (aux_texture.cpp:445)
==9527== by 0xDD27C7: VSSprite::VSSprite(char const*, FILTER, unsigned char) (sprite.cpp:111)
==9527== by 0xD0E1CF: GameCockpit::beginElement(std::string const&, XMLSupport::AttributeList const&) (cockpit_xml.cpp:434)
==9527== by 0xBE79D8: Cockpit::beginElement(void*, char const*, char const**) (cockpit_generic.cpp:40)
==9527== by 0x6065092: (within /usr/lib/libexpat.so.1.0.0)
==9527== Address 0x1AAE1D38 is 0 bytes after a block of size 349,552 alloc'd
==9527== at 0x4C20A69: malloc (vg_replace_malloc.c:149)
==9527== by 0xE03DB4: VSImage::ReadDDS() (vsimage.cpp:774)
==9527== by 0xE04E7D: VSImage::ReadImage(VSFileSystem::VSFile*, unsigned char* (*)(int&, int&, unsigned long&, unsigned long&, unsigned char**), bool, VSFileSystem::VSFile*) (vsimage.cpp:126)
==9527== by 0xCFB546: Texture::Load(char const*, char const*, int, FILTER, TEXTURE_TARGET, TEXTURE_IMAGE_TARGET, float, int, unsigned char, int, unsigned char, unsigned char, ADDRESSMODE) (aux_texture.cpp:515)
==9527== by 0xCFB7E0: Texture::Texture(char const*, char const*, int, FILTER, TEXTURE_TARGET, TEXTURE_IMAGE_TARGET, float, int, unsigned char, int, unsigned char, unsigned char, ADDRESSMODE) (aux_texture.cpp:445)
==9527== by 0xDD27C7: VSSprite::VSSprite(char const*, FILTER, unsigned char) (sprite.cpp:111)
==9527== by 0xD0E1CF: GameCockpit::beginElement(std::string const&, XMLSupport::AttributeList const&) (cockpit_xml.cpp:434)
==9527== by 0xBE79D8: Cockpit::beginElement(void*, char const*, char const**) (cockpit_generic.cpp:40)
==9527== by 0x6065092: (within /usr/lib/libexpat.so.1.0.0)
==9527== by 0x6065F63: (within /usr/lib/libexpat.so.1.0.0)
==9527== by 0x6066FC8: (within /usr/lib/libexpat.so.1.0.0)
==9527== by 0x606803A: (within /usr/lib/libexpat.so.1.0.0)
==9527==
safemode
Developer
Developer
Posts: 2150
Joined: Mon Apr 23, 2007 1:17 am
Location: Pennsylvania
Contact:

Post by safemode »

fixed as of 11565 in trunk and 11563 in safemode branch.
safemode
Developer
Developer
Posts: 2150
Joined: Mon Apr 23, 2007 1:17 am
Location: Pennsylvania
Contact:

Post by safemode »

nvcompress is broken, It doesn't produce Nx1 mipmaps.

I fixed nvcompress to generate the correct number of mipmaps, but i have to use the slower (yet higher quality) kaiser downsampler.

I'll have to recompress all uneven textures with my patched nvcompress and revert my hack workaround i committed today to the dds loader.


Gimp-dds does not suffer this problem at all.

For some reason in their infinite wisdom over at nvidia, someone decided that nobody compresses 1024x1 textures.
Post Reply