If I had to guess, I think that the issue is something that has worked for iOS 13 and before is no longer properly working with either iOS 15 SDK or possibly iOS 14 SDK.
Building for iOS 13 then building for iOS 15 works, because I suspect that something is actually being cached when I build for iOS 13 that should not be cached after deleting the derived files. So I fear the “correct” behavior is for it to complain about something and not successfully compile at all using the iOS 15 SDK. I’m pretty much forced to only support iOS 15 because of a severe issue that it resolved with CoreML or I would be glad to just leave it at iOS 13 and shrug it off.
The most suspicious difference is in iOS 13 Float16 was not supported yet so I am using Uint8 with a Float16 alias.
I tried commenting out by Float16 alias (which just pointed to UInt8) and to use the SDK for Float16 instead, but it still had the same issue of taking 30 seconds to compile the shader and hanging.
Can anyone tell me what iOS uses under the hood for to represent Float16? Does it have the same alignment as UInt8?
For all of by MTLBuffers and parameters I use MemoryLayout’s Stride. Should I be using Size instead of Stride for iOS 15?
All the metal structures are defined in a C header which is suppose to enforce Metal compatibility as I understand it.
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags: