According to the Metal 3.0 Feature Set Tables document, MTLPixelFormats bgra8Unorm and rgba16Float may not be supported on all devices. They are marked by footnote 8 which states:
"Support for this pixel format varies by device. Query the depth24Stencil8PixelFormatSupported property of MTLDevice to determine support."
While MTLDevice on macOS supports the property isDepth24Stencil8PixelFormatSupported, iOS and tvOS do not. Are we to assume those platforms always support those pixel formats, as claimed by Metal 3.0 Feature Set Tables?
It seems bizarre that a Mac would not support bgra8Unorm or rgba16Float pixel formats. Even the MTKView documentation states the default colorPixelFormat is bgra8Unorm. If neither bgra8Unorm or rgba16Float are supported by MTKView on macOS, that leaves only support for bgra8Unorm_srgb. Could someone at least give me an example of a Mac that would only support bgra8Unorm_srgb as its MTKView pixelFormat?
Thanks for any help.
I know this topic is quite old and seems you haven't got your answer yet. Recently I also asked a similar question about BGRA8Unorm tied with isDepth24Stencil8PixelFormatSupported property, yet one of the MBP reports isDepth24Stencil8PixelFormatSupported=false but BGRA8Unorm can be used to create CAMetalLayer without any issue.
I have an acquaintance who knows someone in Apple dev team. He asked them directly and they replied that the documents are wrong, BGRA8Unorm is always supported.