If i create a compacted bottom AS with the ALLOW_UPDATE flag, querying for MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH returns a size of 0 with non-zero alignment and type bits. But when i use this AS as the target of an update build (with the source having same flags and compacted size, which was copied to before), some amount of scratch memory is written to by the GPU. It will overwrite my own data if i do not leave some space. The amount seems to be quite small, like 1 float.
Workaround seems easy, simply adjust the returned size if it is 0, changing it to 4 seems to be enough with my hardware/driver/data, but you might want to use 64k to be more save. But i would still like a fix that returns the actual size.
LunarG SDK 220.127.116.11
Vulkan Header 1.1.94
MSVC 2017 15.9.5