godot
godot copied to clipboard
Fix decompressing textures with dimensions that are not multiples of 4
Fixes #97862
Fixes the alignment of some compressed textures when decompressing. This issue seems to stem from the fact that the extra padding on compressed images is not taken into account when importing as VRAM compressed.
Also, the image linked in the issue's MRP seems to not decompress properly. Looking into the image's data, it looks like the endpoint indices are unusual (set to 1, for solid color blocks most compressors set them to 0). This tricks bcdec into thinking that the block has punchthrough transparency and incorrectly decompresses it. Godot doesn't support the BC1 punchthrough mode, so the compressed images appear fine.
@lyuma could you review this since you debugged an earlier problem like this
Here are the original glbs that the texture was from if anyone wants to figure out how the images were imported like that: https://github.com/user-attachments/files/17269720/SmallShips.zip
Thanks!
Could it fix https://github.com/godotengine/godot/issues/85747 too?