[英]How to specify Metal Shader Language version?
我的应用程序第三次被“ Binary Rejected
”。 崩溃日志没有帮助(我已将它们符号化,但是它们不包含任何打印日志...)。
在iPhone 6s
, iPhone X
和iPad Pro 12.9
上运行良好
我正在使用目标iOS 11
在iOS 12
进行测试
由于iOS版Metal无法在模拟器中运行,因此我尚未在iOS 11
进行过测试
所以我得到了Crashlytics,并获得了有关crash_info_entry_0
键的一些信息:
...错误域= AGXMetalA8X代码= 3“功能...正在使用与该OS不兼容的语言版本2.1。” ...
它发生在运行iOS 11.4.1
的iPad Air 2 (A8)
上
所以我想问题是iOS 11
不支持金属language version 2.1
如何将语言版本更改为2.0
?
更新1:
在检查我的Metal Lib之后,确实确实有iOS 12
的目标。 它与iOS 11
应用程序目标运行良好。 我现在已经将Metal Lib目标更改为iOS 11
,希望也能更改Metal Language版本...
我希望编译器或App Store上载器能够抓住这一点。
更新2:
有效! 更改Metal Lib的iOS版本目标也会更改Metal Shader Language版本。
在包含Metal代码的目标中,有一个名为“ Metal语言修订版”的构建设置(实际键为MTL_LANGUAGE_REVISION
,有效值包括Metal12
和Metal20
,分别对应于语言版本1.2和2.0),它允许您指定首选语言MSL版本。 如果未设置,则此设置选择适合当前SDK和部署目标的默认值,在您的情况下似乎过于激进了。 如果您不使用MSL 2.1功能,则可以在目标设置的“构建设置”部分中将其显式设置为“金属2.0”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.