#descriptor-set #spir-v #shader #reflection #hlsl #glsl

spirv-reflect

针对SPIR-V着色器字节的Rust反射API,适用于Vulkan应用程序

14个版本

0.2.3 2019年11月3日
0.2.2 2019年11月3日
0.2.1 2019年3月30日
0.1.9 2019年3月10日
0.1.6 2018年11月21日

#19渲染引擎

Download history 468/week @ 2024-03-13 759/week @ 2024-03-20 718/week @ 2024-03-27 835/week @ 2024-04-03 704/week @ 2024-04-10 678/week @ 2024-04-17 700/week @ 2024-04-24 600/week @ 2024-05-01 562/week @ 2024-05-08 622/week @ 2024-05-15 702/week @ 2024-05-22 743/week @ 2024-05-29 644/week @ 2024-06-05 499/week @ 2024-06-12 532/week @ 2024-06-19 567/week @ 2024-06-26

2,345 每月下载量
用于 47 个crate (4 直接)

MIT/Apache

350KB
7K SLoC

Rust 3.5K SLoC // 0.0% comments C 3.5K SLoC // 0.0% comments

spirv-reflect

spirv-reflect on travis-ci.com Latest version Documentation MIT APACHE2

针对SPIR-V着色器字节的Rust反射API,适用于Vulkan应用程序。

此crate提供了一个FFI层和惯用的Rust封装,用于优秀的SPIRV-Reflect C/C++库。

特性

  • 从SPIR-V字节数据中提取描述符绑定,以协助生成Vulkan描述符集和管道布局。
  • 从SPIR-V字节数据中提取推送常量块大小,以协助生成管道布局。
  • 从SPIR-V字节数据中提取均匀缓冲区和推送常量块的全布局数据,以协助更新这些结构。
  • 从SPIR-V字节数据中提取输入/输出变量(包括HLSL着色器的语义修饰符),以协助验证管道输入/输出设置。
  • 轻松将Vulkan类型映射到DirectX 12资源类型
  • 重新映射描述符绑定,并相应地更新源SPIR-V字节数据。
  • 以人类可读的文本记录所有反射数据。

计划中的特性

  • 广泛的单元测试和示例。
  • 纯Rust版本。
  • 用于反射和操作的命令行工具。

用法

将此添加到您的Cargo.toml

[dependencies]
spirv-reflect = "0.2.3"

并将此添加到您的crate根目录

extern crate spirv_reflect;

示例

目前只有一个单一代码示例demo,它展示了某些用法。计划开发一个CLI工具,它将是一个有用的工具,并且作为一个干净的用法模式的示例。

cargo run --release --example demo

许可证

根据您的选择,许可如下

致谢和特别感谢

贡献

除非您明确声明,否则您提交给此软件包的任何有意包含在内的贡献,根据Apache-2.0许可证定义,应以上述方式双许可,不附加任何其他条款或条件。

欢迎贡献;请查看问题跟踪器了解已记录的已知改进。

行为准则

spirv-reflect软件包的贡献是在贡献者协约的条款下组织的,spirv-reflect的维护者@gwihlidal承诺将介入以维护该行为准则。

依赖关系

~0.7–1.7MB
~37K SLoC