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

Download history 2646/week @ 2024-03-13 3774/week @ 2024-03-20 3593/week @ 2024-03-27 3777/week @ 2024-04-03 3359/week @ 2024-04-10 3616/week @ 2024-04-17 3684/week @ 2024-04-24 3063/week @ 2024-05-01 3097/week @ 2024-05-08 3174/week @ 2024-05-15 3436/week @ 2024-05-22 3625/week @ 2024-05-29 2934/week @ 2024-06-05 2413/week @ 2024-06-12 2920/week @ 2024-06-19 2614/week @ 2024-06-26

11,441 每月下载量
用于 142 个工具包 (12 个直接使用)

MIT/Apache

650KB
12K SLoC

gfx-backend-vulkan

Vulkan 后端为 gfx-rs。

归一化坐标

渲染 深度 纹理
render_coordinates depth_coordinates texture_coordinates

绑定模型

模型尺寸

  1. 着色器阶段:vs, fs, cs, 其他
  2. 描述符集:0 .. max_bound_descriptor_sets
  3. 绑定:稀疏,但预期相对紧密

镜像

HAL 模式模仿 Vulkan,因此一切应该是 1:1 的。


lib.rs:

Vulkan 后端内部实现。

堆栈内存

大部分代码只是传递数据。唯一影响所有部分的问题是相关的内存分配:Vulkan 期望切片,但 API 给我们 Iterator。所以我们最终使用了很多 inplace_it 来收集堆栈上的数据。

帧缓冲区

具有实际逻辑的部分之一与帧缓冲区相关。HAL 模式模仿无图像帧缓冲区。如果 Vulkan 实现支持它,我们将其 1:1 映射,一切都很完美。如果它不公开 KHR_imageless_framebuffer,那么我们必须在内部同步映射中保留所有创建的帧缓冲区,每个 B::Framebuffer

依赖项

~11MB
~245K SLoC