У меня проблемы с чтением MTLTexture с пиксельным форматом .rgba16Float, основная причина в том, что Swift, похоже, не имеет соответствующего формата SIMD4.
Для .rgba32Float я могу просто использовать SIMD4 Формат , например,
if let texture = texture {
let region = MTLRegionMake2D(x, y, 1, 1)
let texArray = Array<SIMD4<Float>>(repeating: SIMD4<Float>(repeating: 0), count: 1)
texture.getBytes(UnsafeMutableRawPointer(mutating: texArray), bytesPerRow: (MemoryLayout<SIMD4<Float>>.size * texture.width), from: region, mipmapLevel: 0)
let value = texArray[0]
}
Это прекрасно работает, так как тип данных Swift Float 32-битный, как я могу сделать то же самое для 16-битной текстуры .rgba16Float?