xcode
近期有自定义CoreImage的CIFilter的需求,前期通过CIKL 定义 CIKernel完成了任务,后面了解到CoreImage新特性支持metal的方式直接自定义 CIKernel,提高效率。
CIKL的方式,存在两个问题:
- 编写 kernel 的时候,没有报错提示,哪怕是参数名错误都无法检查处理。效率极低。
- 翻译转换,编译,都是发生到运行时,导致第一次使用滤镜的时候,耗时较久。
Metal: 在build阶段 就可以编译 链接 .metal文件

参考苹果的官方文档 Metal Shading Language for CoreImage Kernels ,在xcode integration 部分提到在build setting 设置 Other Metal Compiler Flags, 文档已经很老了(2018年的),新版的xcode已经没有这个选项了,如果不做处理,会有报错 "/air-lld:1:1: symbol(s) not found for target 'air64-apple-ios12.0.0'" and "air-lld command failed with exit code 1 (use -v to see invocation)"

