Took me a while to realize that NSight is lying about the mipmap contents. Was puzzled by a weird mipmaping glitch as everything looked correct at NSight side.
Specifically NSight shows his own auto-generated mipmaps for VK_FORMAT_BC3_UNORM_BLOCK 2D array images - and NOT what they actually contain.
Correct behavior: either do not show mipmaps at all or show their actual content.
Is this a known bug? Is it fixed in latest release?
While the problem is 100% reproducible, the app is not shareable at this time (too many internal dependencies). I have looked around to find some simple vulkan wrapper for this kind of purposes (something to make simple/rigid minimal test programs) - but have not found any. If you can point to any … might come handy later anyway (*).
What i can say for sure:
whatever i upload is exactly what is used to render (ex: if i upload pure white image with all mipmaps being pure red - then that is what i get it rendered as)
Nsight shows only the base image correctly and all the actual mipmaps are ignored and downsampled versions of base image get shown instead.
allocated with dedicated memory (vkExtDedicatedAllocNV)
only 2 layers uploaded, the 0th being with unmistakably wrong mipmaps (ex: white image with all its mimpams being red - which NSight will show as also being pure white [or whatever the base image would downsample into])
*) Off Topic: Currently there are some code changes underway and can not test much, but i recon i am gonna need something as i have encountered what seems to be an unrelated driver bug:
Current nvidia drivers seem to ignore or fail to adhere to “invariant” decoration in SPIR-V. At least no-one has come up with any other explanation.
Probably going to need something to make a repro app when i get back to it.