I’m writing a C+±>SPIRV backend. spirv-val is telling me that OpMemoryModel Logical addressing is not compatible with functions that return pointer types, even when those pointer types’ storage class is Function. This is counter-intuitive to me, since I’d think all those cases could be covered by Logical addressing.
I’m not doing anything that requires true physical addressing. I’d think the normal virtual addressing would be fine, but that’s apparently not an option. Is there any text on what Physical64 addressing actually means? I checked the SPIRV, Vulkan, GLSL and GL specs and there’s basically nothing.