33 个版本
0.9.0 | 2021 年 6 月 19 日 |
---|---|
0.7.0 | 2021 年 1 月 30 日 |
0.6.5 | 2020 年 10 月 15 日 |
0.5.11 | 2020 年 7 月 22 日 |
0.1.0 | 2018 年 12 月 27 日 |
#1029 in 图形 API
11,441 每月下载量
用于 142 个工具包 (12 个直接使用)
650KB
12K SLoC
gfx-backend-vulkan
Vulkan 后端为 gfx-rs。
归一化坐标
渲染 | 深度 | 纹理 |
---|---|---|
![]() |
![]() |
![]() |
绑定模型
模型尺寸
- 着色器阶段:vs, fs, cs, 其他
- 描述符集:0 ..
max_bound_descriptor_sets
- 绑定:稀疏,但预期相对紧密
镜像
HAL 模式模仿 Vulkan,因此一切应该是 1:1 的。
lib.rs
:
Vulkan 后端内部实现。
堆栈内存
大部分代码只是传递数据。唯一影响所有部分的问题是相关的内存分配:Vulkan 期望切片,但 API 给我们 Iterator
。所以我们最终使用了很多 inplace_it
来收集堆栈上的数据。
帧缓冲区
具有实际逻辑的部分之一与帧缓冲区相关。HAL 模式模仿无图像帧缓冲区。如果 Vulkan 实现支持它,我们将其 1:1 映射,一切都很完美。如果它不公开 KHR_imageless_framebuffer
,那么我们必须在内部同步映射中保留所有创建的帧缓冲区,每个 B::Framebuffer
。
依赖项
~11MB
~245K SLoC