金属纹理的 RGBA 和 BGRA 格式之间的权衡

Trade-offs between RGBA and BGRA formats for Metal textures

我正在使用 Metal 开发一个 iOS 应用程序,并且可以选择使用 RGBA 或 BGRA 作为纹理格式。申请将是:

选择 RGBA 而不是 BGRA 是否有任何性能权衡?后两点将我引向 RGBA,但我还注意到 MTKTextureLoader 默认为 BGRA 纹理。我找不到任何解决 Metal 中 RGBA 和 BRGA 之间差异的应用说明。

BGRA 是 iOS 设备上纹理和图像数据的默认和最佳格式。虽然支持 RGBA,但在使用 UIImage 和 CoreGraphics 读取 RGBA 纹理时,使用 RGBA 格式可能会导致实际性能问题,因为这些层可以静默地为每个像素重新排序字节(这会损害每个像素的性能)。可以通过设备上的 memcpy() 复制 BGRA 本机数据。