TLDR: proposed warning code for non-loading of non-standard PNGs. (Git-commit here
Last night there was an issue with a set of hires textures not appearing, which stumped the entire Discord, including Rachel, Marisa, and WildWeasel. This led to me having to download the latest source and run it with breakpoints to find why some relatively standard publicly available PBR materials were silently failing to show in-game. After rooting around with breakpoints, I finally found the culprit, which is a set of lines which determine if the PNG in question fits the specific criteria which GZDoom supports: it turns out the images had a bit-depth of 16, instead of 8, AKA 64 bit color.These lines have no Warnings on them, and lead to a totally-silent failure on a completely undocumented caveat that very few people in the community would even about.
These were not rare images: they were from one of the first sites that come up when looking for non-commercial PBR materials. ( https://cc0textures.com/
) Not only were they in a perfectly valid format which everything else in the typical development stack (GIMP, Slade, UDB) treated as normal without any warnings, but it should be expected that other people will come across similar resources and use them more frequently as time goes on: 64 bit color is overkill for games, but for the high-end rendering these were made for, it's becoming common to find them in the wild.GZDoom is the ONLY program in the typical development stack which has this narrow of support for the PNG format.
As such, the average developer will have no other way to figure out what's going wrong without these: these CANNOT be allowed to fail silently.
As things like PNG-compression and 64-bit color become more common in royalty-free PBR materials, support should probably be an eventual target, but in the meantime, and even when support is achieved, there should still be a warning to prevent this from being an issue the next time things change.The following commit adds warnings
to prevent the dreaded silent-failure scenario I was experiencing, so that other people won't get stuck with no explanation when they try to unknowingly use 64-bit PNGs...https://github.com/coelckers/gzdoom/commit/6a89da4647f8bbc705c987f4f1e2c0bd986c2ba7
The pk3 that was giving the problem, for reference, is at the following link. It will load in both SLADE and UDB without any issue, but will fail silently in the current build of GZDoom.https://drive.google.com/file/d/1ConZy866Zy86QtuqzFZLwJKniWy44fMn/view?usp=sharing