XCode 16, похоже, имеет проблему со сшиваемыми ядрами в Core Image, что приводит к ошибкам сборки, как указано в этом вопросе. В качестве обходного пути я выбрал Metal 3.2 в качестве версии Metal Language Revision в проекте XCode. Он работает на новых устройствах, таких как iPhone 13 pro и новее, но создание металлической текстуры не работает на старых устройствах, таких как iPhone 11 pro. Известна ли это проблема и есть ли обходной путь? Я попытался выбрать версию языка Metal до 2.4, но возникают те же ошибки сборки, о которых сообщается в этом вопросе. Вот код, в котором на iPhone 11 Pro происходит сбой утверждения.
let vertexShader = library.makeFunction(name: "vertexShaderPassthru")
let fragmentShaderYUV = library.makeFunction(name: "fragmentShaderYUV")
let pipelineDescriptorYUV = MTLRenderPipelineDescriptor()
pipelineDescriptorYUV.rasterSampleCount = 1
pipelineDescriptorYUV.colorAttachments[0].pixelFormat = .bgra8Unorm
pipelineDescriptorYUV.depthAttachmentPixelFormat = .invalid
pipelineDescriptorYUV.vertexFunction = vertexShader
pipelineDescriptorYUV.fragmentFunction = fragmentShaderYUV
do {
try pipelineStateYUV = metalDevice?.makeRenderPipelineState(descriptor: pipelineDescriptorYUV)
}
catch {
assertionFailure("Failed creating a render state pipeline. Can't render the texture without one.")
return
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... ios-17-1-1