22 个版本 (破坏性)
0.30.0+38 |
|
---|---|
0.19.0+1.2.8 | 2024年4月3日 |
0.18.0+1.2.8 | 2024年3月19日 |
0.16.0+1.2.6 | 2023年11月3日 |
0.1.0 | 2019年6月28日 |
#17 in macOS 和 iOS API
每月514次下载
在 6 个 crate 中使用 (直接使用 3 个)
30KB
553 行
ash-molten
基于 ash 构建,并暴露了一个新的入口点以静态链接到 MoltenVK。
编译需要 Xcode 14 和 Mac OS 10.15 (Catalina)。
为什么?
- 你想要编译成一个不需要设置任何环境变量的单一可执行文件。
- 你只想尝试 MoltenVK,而不需要设置 SDK。
为什么不?
- ash 已经支持通过运行时链接使用 MoltenVK。运行时链接是使用 Vulkan 的首选方式,因为加载器可以在任何时候更新,而不需要重新编译。
ash-molten
没有访问验证层,因此不能输出任何调试信息。
如何?
let entry = ash_molten::MoltenEntry::load().expect("Unable to load Molten");
let app_name = CString::new("Hello Static Molten").unwrap();
let appinfo = vk::ApplicationInfo::builder()
.application_name(&app_name)
.application_version(0)
.engine_name(&app_name)
.engine_version(0)
.api_version(vk_make_version!(1, 0, 0));
let create_info = vk::InstanceCreateInfo::builder().application_info(&appinfo);
let instance = entry.create_instance(&create_info, None).expect("Instance");
let devices = instance.enumerate_physical_devices();
println!("{:?}", devices);
您可以使用以下命令运行示例:cargo run
。
它是如何工作的?
ash-molten
静态链接到 MoltenVK,然后使用 vkGetInstanceProcAddr
在运行时解析所有函数指针。
特性
cargo build
将克隆 MoltenVK 的特定版本,编译并与其应用程序静态链接。使用 cargo build
--features pre-built 将从 ash-molten 的发布版下载预构建的 MoltenVK 版本。cargo build
--features external 提供自己的 MoltenVK 库。
如果您想自己编译 MoltenVK,可以使用 external
特性。cargo build
--features external 需要 libMoltenVK
可见(LD_LIBRARY_PATH
)。
如何更新
要更新使用的 MoltenVK 版本,更改以下内容
- 在
build.rs
中,将static VERSION = "1.1.0"
更改为新的 MoltenVK 发布 标签名 - 更新
Cargo.toml
中的 crate 版本- 增加补丁版本
- 将版本元数据设置为 MoltenVK 发布版。
- 例如,
0.2.0+1.1.9
->0.2.1+1.1.10
。
- 在您可以提交 PR 之前,您还必须更新预构建版本。请参阅下一节。
更新预构建版本
要更新 ash-molten 使用的 MoltenVK 预构建版本,更改以下内容
- 遵循上述步骤。
- 从 Vulkan SDK for Mac 或自行构建 MoltenVK 下载 MoltenVK XCFramework。
- 如果从外部来源下载,请确保 MoltenVK 版本与
static VERSION
匹配。
- 如果从外部来源下载,请确保 MoltenVK 版本与
- 从 XCFramework 文件夹中,对需要支持的每个平台分别压缩 MoltenVK 构建版本中的文件夹。
- 使用标签:MoltenVK-{版本号} 创建发布版。
- 将 zip 文件上传到带有 MoltenVK-{版本号} 标签的发布版。
贡献
我们欢迎社区为此项目做出贡献。
有关如何开始的信息,请阅读我们的 贡献指南。
许可证
以下任一许可证下授权
- Apache License,版本 2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
根据您的选择。
贡献
除非您明确表示否则,根据Apache-2.0许可证定义,您有意提交并包含在作品中的任何贡献,将如上双许可,不附加任何额外条款或条件。
依赖项
~5.5MB
~134K SLoC