【问题标题】:Accessing a custom Metal library from another project从另一个项目访问自定义 Metal 库
【发布时间】:2020-08-07 00:07:38
【问题描述】:

我希望在 Xcode 中创建自己的 Metal 库目标。 makeLibrary(filepath:) 描述的 here 需要一个扩展名为 .metallib 的文件。我是否必须按照here 的描述使用 Metal 库目标中的每个金属文件手动创建 .metallib 文件并在运行时加载它?或者我可以以某种方式将它嵌入到我的应用程序中以允许在编译时编译着色器?第一种策略似乎效率低下,目标肯定有一些用处。

【问题讨论】:

    标签: swift xcode metal


    【解决方案1】:

    我没有找到更好的方法来告诉 Xcode 将 metallib 嵌入到我的另一个目标(在我的情况下是一个框架)中,所以我在我的框架目标中设置了一个自定义构建阶段来复制库,如下所示:

    我还将 Metal 库目标作为依赖项添加到我的框架目标中,以确保它始终首先构建。

    【讨论】:

    • 这适用于我的框架。对于另一个项目,不需要构建脚本,只需将库添加为依赖项即可(即构建 Metal 库目标),因为它的输出目录与 ${BUILT_PRODUCTS_DIR} 匹配。但我想如果我需要在编译时编译我的着色器,我需要将它们存储在我的项目中。
    • 嗯,metallib 包含已编译的着色器,因此将它们放在额外​​的目标中应该具有相同的效果。
    猜你喜欢
    • 2014-03-18
    • 2013-03-28
    • 2022-12-28
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多