I've been asked to update our app from the current metal code to Metal 3, and one of the concerns is whether we have to worry about any changed or deprecated features. Is there a way to confirm that our app won't behave differently now that it's under Metal 3? I am able to compile the iOS app targeting iOS 16, and shaders and pipelines are working as expected, is that proof enough that we are good to go? I don't see any version declarations or import dependencies to specific metal versions (ie. like in openGL where you would declare the shader version with #version 150 or something)...
You are precompiling shaders to a specific metal version, and then that should be compatible with all newer versions of Metal and MSL. There are support checks, and availability macros and weak symbols so you can call ahead to newer functionality but have a minspec for iOS/macOS.