diff --git a/.buildinfo b/.buildinfo index 1669282..ce0702a 100644 --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: ef9afda11aa1c502d42dc1a4fc45b8d4 +config: feea49b46bdab24ed05b97fb0780dea5 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/Changelog.html b/Changelog.html index 86d6147..76deff7 100644 --- a/Changelog.html +++ b/Changelog.html @@ -326,16 +326,15 @@
此更新日志为纵览更新,对于具体文章的更新位于每个文章的开头的 更新记录
中。
-
- -
更新
欢迎来到 Vulkan 入门精要
文档- +
更新
开始于 Vulkan SDK
文档更新
纵览
文档
- @@ -343,23 +342,24 @@
更新
资源与内存
文档2024/5/21¶
-
- +
更新
资源与内存
文档更新
资源
文档
-
- +
更新
资源与内存
文档- +
更新
欢迎来到 Vulkan 入门精要
文档更新
开始于 Vulkan SDK
文档
- @@ -367,7 +367,7 @@
更新
资源与内存
文档2024/5/13¶
- @@ -375,31 +375,31 @@
更新
资源与内存
文档2024/5/11¶
-
- +
更新
资源
文档更新
资源与内存
文档
-
- +
更新
资源
文档更新
资源与内存
文档
-
- +
更新
资源
文档更新
资源与内存
文档
- @@ -407,7 +407,7 @@
更新
资源
文档2024/4/23¶<
- @@ -415,7 +415,7 @@
更新
资源
文档2024/4/20¶<
- @@ -423,7 +423,7 @@
更新
资源
文档2024/4/18¶<
- @@ -431,7 +431,7 @@
更新
资源
文档2024/4/17¶<
- @@ -439,7 +439,7 @@
更新
资源
文档2024/4/16¶<
- @@ -447,26 +447,23 @@
更新
资源
文档2024/4/15¶<
- -
更新
资源
文档- -
增加
相关链接
文档更新
欢迎来到 Vulkan 入门精要
文档
-
更新
内存
文档更新
资源
文档
- @@ -474,23 +471,26 @@
更新
资源
文档2024/4/10¶<
- +
更新
资源
文档- +
增加
相关链接
文档更新
欢迎来到 Vulkan 入门精要
文档
+
更新
内存
文档更新
资源
文档
- @@ -498,7 +498,7 @@
更新
资源
文档2024/4/2¶
- @@ -506,7 +506,7 @@
更新
资源
文档2024/3/31¶<
- @@ -514,7 +514,7 @@
更新
资源
文档2024/3/29¶<
- @@ -522,7 +522,7 @@
更新
资源
文档2024/3/28¶<
- @@ -530,31 +530,31 @@
更新
资源
文档2024/3/27¶<
-
- +
更新
内存
文档更新
资源
文档
-
- +
更新
内存
文档更新
资源
文档
-
- +
更新
内存
文档更新
资源
文档
- @@ -562,7 +562,7 @@
更新
内存
文档2024/3/19¶<
- @@ -570,7 +570,7 @@
更新
内存
文档2024/3/17¶<
- @@ -578,7 +578,7 @@
更新
内存
文档2024/3/16¶<
- @@ -586,7 +586,7 @@
更新
内存
文档2024/3/15¶<
- @@ -594,7 +594,7 @@
更新
内存
文档2024/3/14¶<
- @@ -602,7 +602,7 @@
更新
内存
文档2024/3/10¶<
- @@ -610,7 +610,7 @@
更新
内存
文档2024/3/9¶
- @@ -618,7 +618,7 @@
更新
内存
文档2024/3/3¶
- @@ -626,7 +626,7 @@
更新
内存
文档2024/2/27¶<
- @@ -634,7 +634,7 @@
更新
内存
文档2024/2/21¶<
- @@ -642,32 +642,31 @@
更新
内存
文档2024/2/17¶<
-
- +
更新
逻辑设备
文档更新
内存
文档
-
- +
更新
逻辑设备
文档更新
内存
文档
-
- -
更新
逻辑设备
文档- +
更新
最初之物 VkInstance
文档更新
内存
文档
- @@ -675,57 +674,58 @@
更新
逻辑设备
文档2024/2/5¶
-
- -
更新
设备队列
文档- +
更新
纵览
文档更新
逻辑设备
文档
-
- +
更新
设备队列
文档- +
更新
逻辑设备
文档更新
最初之物 VkInstance
文档
-
- -
更新
最初之物 VkInstance
文档- +
更新
物理设备
文档更新
逻辑设备
文档
-
- +
更新
最初之物 VkInstance
文档- +
更新
设备队列
文档更新
纵览
文档
-
- +
更新
最初之物 VkInstance
文档更新
设备队列
文档
- +
更新
最初之物 VkInstance
文档更新
物理设备
文档
- @@ -733,31 +733,31 @@
更新
最初之物 VkInstance
文档2024/1/25¶<
-
- +
更新
纵览
文档更新
最初之物 VkInstance
文档
-
- +
更新
纵览
文档更新
最初之物 VkInstance
文档
-
- +
更新
纵览
文档更新
最初之物 VkInstance
文档
- @@ -765,7 +765,7 @@
更新
纵览
文档2024/1/9¶
- @@ -773,16 +773,15 @@
更新
纵览
文档2024/1/8¶
- -
更新
纵览
文档
source/_static/css
中增加custom_content.css
和custom_sidebar_drawer.css
自定义css
文件。用于将文章区域变宽,看着舒服。
- @@ -790,7 +789,7 @@
更新
纵览
文档2024/1/5¶
- @@ -798,15 +797,40 @@
更新
纵览
文档2024/1/4¶
- +
更新
纵览
文档
source/_static/css
中增加custom_content.css
和custom_sidebar_drawer.css
自定义css
文件。用于将文章区域变宽,看着舒服。
+++
+- +
更新
纵览
文档
+++
+- +
更新
纵览
文档
+++
+- +
更新
纵览
文档
- @@ -822,32 +846,32 @@
更新
开始于 Vulkan SDK
文档2024/1/2¶
更新
可调用着色器
文档
更新
glTF 场景
文档
更新
glTF 场景
文档
- @@ -855,24 +879,24 @@
增加
Visual Studio Code
文档2023/10/31¶
更新
glTF 场景
文档
更新
glTF 场景
文档
- @@ -880,16 +904,16 @@
增加
glTF 场景
文档2023/10/24¶
更新
纵览
文档
- @@ -898,32 +922,32 @@
更新
纵览
文档2023/10/21¶
更新
纵览
文档
更新
纵览
文档
更新
相交着色器
文档
- @@ -932,40 +956,40 @@
增加
可调用着色器
文档2023/10/16¶
更新
纵览
文档
更新
纵览
文档
更新
相交着色器
文档
更新
相交着色器
文档
- @@ -974,40 +998,40 @@
增加
相交着色器
文档2023/10/7¶<
更新
纵览
文档
更新
纵览
文档
更新
纵览
文档
更新
环境配置
文档
- @@ -1015,8 +1039,8 @@
增加
Android 平台适配
随笔文档2023/9/23¶<
- @@ -1025,8 +1049,8 @@
更新
动态更新
文档2023/9/22¶<
- @@ -1035,8 +1059,8 @@
增加
动态更新
文档2023/9/20¶<
- @@ -1044,8 +1068,8 @@
更新
着色器绑定表
文档2023/9/15¶<
- @@ -1053,16 +1077,16 @@
更新
Vulkan KHR 光线追踪标准
文档2023/9/14¶<
更新
多重最近命中着色器
文档
- @@ -1071,8 +1095,8 @@
更新
反射
文档2023/9/12¶<
- @@ -1081,16 +1105,16 @@
更新
实例化
文档2023/9/7¶
更新
实例化
文档
- @@ -1098,24 +1122,24 @@
增加
实例化
文档2023/9/1¶
更新
任意命中着色器(Any Hit Shaders)教程
文档
更新
相机抖动抗锯齿教程
文档
- @@ -1123,8 +1147,8 @@
更新
相机抖动抗锯齿教程
文档2023/8/25¶<
- @@ -1133,80 +1157,80 @@
更新
NVIDIA Vulkan 光线追踪教程
文档2023/8/24¶<
更新
NVIDIA Vulkan 光线追踪教程
文档
更新
VK_KHR_ray_tracing_pipeline
文档
更新
VK_KHR_ray_tracing_pipeline
文档
更新
VK_KHR_ray_tracing_pipeline
文档
更新
WebGPU Shader Compiler
文档
更新
WebGPU Shader Compiler
文档
更新
WebGPU Shader Compiler
文档
更新
WebGPU Shader Compiler
文档
更新
WebGPU Shader Compiler
文档
- @@ -1216,8 +1240,8 @@
更新
WebGPU Shader Compiler
文档2023/7/25¶
- @@ -1228,24 +1252,24 @@
增加
WebGPU
文件夹,用于存储WebGPU
的可执行文件2023/7/24¶
更新
VK_KHR_ray_tracing_pipeline
文档
更新
VK_KHR_ray_tracing_pipeline
文档
- @@ -1253,8 +1277,8 @@
更改总站访问统计方式。从
PV
改为UV
统计2023/7/14¶
- @@ -1262,48 +1286,48 @@
更新
纵览
文档2023/7/10¶
更新
纵览
文档
更新
纵览
文档
更新
VK_KHR_buffer_device_address
文档
更新
纵览
文档
更新
纵览
文档
- @@ -1311,16 +1335,16 @@
更新
纵览
文档2023/6/29¶
更新
纵览
文档
- @@ -1328,32 +1352,32 @@
将浏览数量合理安排至页脚两侧
2023/6/27¶
更新
纵览
文档
更新
纵览
文档
更新
纵览
文档
- @@ -1361,8 +1385,8 @@
更新
开始于 Vulkan SDK
文档2023/6/23¶
- @@ -1370,16 +1394,16 @@
更新
VK_KHR_buffer_device_address
文档2023/6/21¶
增加
VK_KHR_buffer_device_address
文档
- @@ -1387,16 +1411,16 @@
更新
VK_KHR_acceleration_structure
文档2023/6/15¶
更新
VK_KHR_acceleration_structure
文档
- @@ -1404,64 +1428,64 @@
更新
Vulkan KHR 光线追踪标准
文档2023/6/13¶
更新
Vulkan KHR 光线追踪标准
文档
更新
Vulkan KHR 光线追踪标准
文档
更新
Vulkan KHR 光线追踪标准
文档
更新
Vulkan KHR 光线追踪标准
文档
更新
Vulkan KHR 光线追踪标准
文档
更新
Vulkan KHR 光线追踪标准
文档
更新
Vulkan KHR 光线追踪标准
文档
- @@ -1469,16 +1493,16 @@
增加
随笔
栏目,用于记录学习随笔。2023/6/5¶<
更新
NVIDIA Vulkan 光线追踪教程
文档
- @@ -1486,96 +1510,96 @@
更新
NVIDIA Vulkan 光线追踪教程
文档2023/6/3¶<
更新
NVIDIA Vulkan 光线追踪教程
文档
更新
NVIDIA Vulkan 光线追踪教程
文档
更新
NVIDIA Vulkan 光线追踪教程
文档
更新
NVIDIA Vulkan 光线追踪教程
文档
更新
NVIDIA Vulkan 光线追踪教程
文档
更新
NVIDIA Vulkan 光线追踪教程
文档
更新
NVIDIA Vulkan 光线追踪教程
文档
更新
NVIDIA Vulkan 光线追踪教程
文档
更新
NVIDIA Vulkan 光线追踪教程
文档
更新
NVIDIA Vulkan 光线追踪教程
文档
更新
NVIDIA Vulkan 光线追踪教程
文档
- @@ -1587,24 +1611,24 @@
增加
sphinx_design
的sphinx
的扩展2023/5/22¶
更新
NVIDIA Vulkan 光线追踪教程
文档
更新
NVIDIA Vulkan 光线追踪教程
文档
- @@ -1612,8 +1636,8 @@
增加
source/application
文件夹,用于存放Vulkan
应用文档。2023/5/19¶
- @@ -1621,8 +1645,8 @@
更新
开始于 Vulkan SDK
文章2023/5/18¶
- @@ -1630,8 +1654,8 @@
更新
开始于 Vulkan SDK
文章2023/5/17¶
- @@ -1640,8 +1664,8 @@
更新
纵览
文章2023/5/16¶
- @@ -1653,8 +1677,8 @@
增加
纵览
文章2023/5/15¶
- @@ -1664,8 +1688,8 @@
文献
中增加序言
章节2023/5/14¶
- @@ -1674,8 +1698,8 @@
修改
.github/workflows/release.yml
部署脚本和./source/conf.py
配置文件,使其支持拷贝代码按钮2023/5/12¶
- @@ -1685,16 +1709,16 @@
增加
markdownTest.md
,用于测试Sphinx
支持Markdown
2023/5/11¶
增加
test.rst
,用于学习测试reStructuredText
语法
- @@ -1702,8 +1726,8 @@
README.md
中增加文档链接2023/5/9¶<
- @@ -1780,169 +1804,172 @@
创建此项目仓库
2023/5/8¶<
diff --git a/Overview.html b/Overview.html index 3cc2048..befa78a 100644 --- a/Overview.html +++ b/Overview.html @@ -498,6 +498,7 @@
- 更新日志
-
- 2024/8/29
-- 2024/5/21
-- 2024/5/18
-- 2024/5/17
-- 2024/5/13
-- 2024/5/11
-- 2024/5/7
-- 2024/4/29
-- 2024/4/25
-- 2024/4/23
-- 2024/4/20
-- 2024/4/18
-- 2024/4/17
-- 2024/4/16
-- 2024/4/15
-- 2024/4/14
-- 2024/4/13
-- 2024/4/10
-- 2024/4/9
-- 2024/4/6
-- 2024/4/2
-- 2024/3/31
-- 2024/3/29
-- 2024/3/28
-- 2024/3/27
-- 2024/3/26
-- 2024/3/24
-- 2024/3/23
-- 2024/3/19
-- 2024/3/17
-- 2024/3/16
-- 2024/3/15
-- 2024/3/14
-- 2024/3/10
-- 2024/3/9
-- 2024/3/3
-- 2024/2/27
-- 2024/2/21
-- 2024/2/17
-- 2024/2/16
-- 2024/2/8
-- 2024/2/7
-- 2024/2/5
-- 2024/2/4
-- 2024/2/3
-- 2024/2/2
-- 2024/2/1
-- 2024/1/30
-- 2024/1/28
-- 2024/1/25
-- 2024/1/20
-- 2024/1/14
-- 2024/1/10
-- 2024/1/9
-- 2024/1/8
-- 2024/1/6
-- 2024/1/5
-- 2024/1/4
-- 2024/1/3
-- 2024/1/2
-- 2023/11/4
-- 2023/11/2
-- 2023/11/1
-- 2023/10/31
-- 2023/10/28
-- 2023/10/26
-- 2023/10/24
-- 2023/10/22
-- 2023/10/21
-- 2023/10/19
-- 2023/10/18
-- 2023/10/17
-- 2023/10/16
-- 2023/10/15
-- 2023/10/12
-- 2023/10/10
-- 2023/10/8
-- 2023/10/7
-- 2023/10/6
-- 2023/10/4
-- 2023/10/3
-- 2023/9/25
-- 2023/9/23
-- 2023/9/22
-- 2023/9/20
-- 2023/9/15
-- 2023/9/14
-- 2023/9/13
-- 2023/9/12
-- 2023/9/7
-- 2023/9/4
-- 2023/9/1
-- 2023/8/31
-- 2023/8/29
-- 2023/8/25
-- 2023/8/24
-- 2023/8/23
-- 2023/8/4
-- 2023/8/3
-- 2023/8/1
-- 2023/7/31
-- 2023/7/29
-- 2023/7/28
-- 2023/7/27
-- 2023/7/26
-- 2023/7/25
-- 2023/7/24
-- 2023/7/21
-- 2023/7/17
-- 2023/7/14
-- 2023/7/10
-- 2023/7/9
-- 2023/7/8
-- 2023/7/4
-- 2023/7/2
-- 2023/6/30
-- 2023/6/29
-- 2023/6/28
-- 2023/6/27
-- 2023/6/26
-- 2023/6/25
-- 2023/6/24
-- 2023/6/23
-- 2023/6/21
-- 2023/6/20
-- 2023/6/15
-- 2023/6/14
-- 2023/6/13
-- 2023/6/12
-- 2023/6/11
-- 2023/6/10
-- 2023/6/9
-- 2023/6/8
-- 2023/6/7
-- 2023/6/6
-- 2023/6/5
-- 2023/6/4
-- 2023/6/3
-- 2023/6/2
-- 2023/6/1
-- 2023/5/31
-- 2023/5/30
-- 2023/5/29
-- 2023/5/28
-- 2023/5/27
-- 2023/5/26
-- 2023/5/25
-- 2023/5/24
-- 2023/5/23
-- 2023/5/22
-- 2023/5/21
-- 2023/5/20
-- 2023/5/19
-- 2023/5/18
-- 2023/5/17
-- 2023/5/16
-- 2023/5/15
-- 2023/5/14
-- 2023/5/12
-- 2023/5/11
-- 2023/5/10
-- 2023/5/9
-- 2023/5/8
+- 2024/9/14
+- 2024/9/6
+- 2024/9/3
+- 2024/8/29
+- 2024/5/21
+- 2024/5/18
+- 2024/5/17
+- 2024/5/13
+- 2024/5/11
+- 2024/5/7
+- 2024/4/29
+- 2024/4/25
+- 2024/4/23
+- 2024/4/20
+- 2024/4/18
+- 2024/4/17
+- 2024/4/16
+- 2024/4/15
+- 2024/4/14
+- 2024/4/13
+- 2024/4/10
+- 2024/4/9
+- 2024/4/6
+- 2024/4/2
+- 2024/3/31
+- 2024/3/29
+- 2024/3/28
+- 2024/3/27
+- 2024/3/26
+- 2024/3/24
+- 2024/3/23
+- 2024/3/19
+- 2024/3/17
+- 2024/3/16
+- 2024/3/15
+- 2024/3/14
+- 2024/3/10
+- 2024/3/9
+- 2024/3/3
+- 2024/2/27
+- 2024/2/21
+- 2024/2/17
+- 2024/2/16
+- 2024/2/8
+- 2024/2/7
+- 2024/2/5
+- 2024/2/4
+- 2024/2/3
+- 2024/2/2
+- 2024/2/1
+- 2024/1/30
+- 2024/1/28
+- 2024/1/25
+- 2024/1/20
+- 2024/1/14
+- 2024/1/10
+- 2024/1/9
+- 2024/1/8
+- 2024/1/6
+- 2024/1/5
+- 2024/1/4
+- 2024/1/3
+- 2024/1/2
+- 2023/11/4
+- 2023/11/2
+- 2023/11/1
+- 2023/10/31
+- 2023/10/28
+- 2023/10/26
+- 2023/10/24
+- 2023/10/22
+- 2023/10/21
+- 2023/10/19
+- 2023/10/18
+- 2023/10/17
+- 2023/10/16
+- 2023/10/15
+- 2023/10/12
+- 2023/10/10
+- 2023/10/8
+- 2023/10/7
+- 2023/10/6
+- 2023/10/4
+- 2023/10/3
+- 2023/9/25
+- 2023/9/23
+- 2023/9/22
+- 2023/9/20
+- 2023/9/15
+- 2023/9/14
+- 2023/9/13
+- 2023/9/12
+- 2023/9/7
+- 2023/9/4
+- 2023/9/1
+- 2023/8/31
+- 2023/8/29
+- 2023/8/25
+- 2023/8/24
+- 2023/8/23
+- 2023/8/4
+- 2023/8/3
+- 2023/8/1
+- 2023/7/31
+- 2023/7/29
+- 2023/7/28
+- 2023/7/27
+- 2023/7/26
+- 2023/7/25
+- 2023/7/24
+- 2023/7/21
+- 2023/7/17
+- 2023/7/14
+- 2023/7/10
+- 2023/7/9
+- 2023/7/8
+- 2023/7/4
+- 2023/7/2
+- 2023/6/30
+- 2023/6/29
+- 2023/6/28
+- 2023/6/27
+- 2023/6/26
+- 2023/6/25
+- 2023/6/24
+- 2023/6/23
+- 2023/6/21
+- 2023/6/20
+- 2023/6/15
+- 2023/6/14
+- 2023/6/13
+- 2023/6/12
+- 2023/6/11
+- 2023/6/10
+- 2023/6/9
+- 2023/6/8
+- 2023/6/7
+- 2023/6/6
+- 2023/6/5
+- 2023/6/4
+- 2023/6/3
+- 2023/6/2
+- 2023/6/1
+- 2023/5/31
+- 2023/5/30
+- 2023/5/29
+- 2023/5/28
+- 2023/5/27
+- 2023/5/26
+- 2023/5/25
+- 2023/5/24
+- 2023/5/23
+- 2023/5/22
+- 2023/5/21
+- 2023/5/20
+- 2023/5/19
+- 2023/5/18
+- 2023/5/17
+- 2023/5/16
+- 2023/5/15
+- 2023/5/14
+- 2023/5/12
+- 2023/5/11
+- 2023/5/10
+- 2023/5/9
+- 2023/5/8
纵览¶<
2024/1/20 增加
vkWaitForFences
章节。2024/2/4 增加
VkInstanceCreateFlags
章节。并增加VkFlags 与 位域
说明。- +
2024/2/4 更新
VkQueueFlags
章节。将其中的VkFlags
说明转移至VkInstanceCreateFlags
章节的VkFlags 与 位域
说明中。2024/9/14 增加
模棱两可的函数获取
注释说明。由于
@@ -745,7 +746,12 @@Vulkan
比较复杂,为了更好的入门Vulkan
,还是大致过一遍Vulkan
的核心思路,这对以后的学习很有帮助。Vulkan 函数分类
vkGetInstanceProcAddr 和 Device 域函数
-在
+Vulkan
中并没有禁止用户使用vkGetInstanceProcAddr
获得Device
域函数,但这是不推荐的,当有多个硬件设备时会造成模棱两可的函数获取。比如电脑上插着两个显卡,一个是摩尔线程的,一个是景嘉微的,这两个设备都支持绘制函数vkCmdDraw
函数 ,但是到底获取的是哪个设备的实现是由Vulkan Loader
定义的,用户并不能知道返回的函数是哪个设备的实现。在
+Vulkan
中并没有禁止用户使用vkGetInstanceProcAddr
获得Device
域函数,但这是不推荐的,当有多个硬件设备时会造成 “模棱两可” 的函数获取。比如电脑上插着两个显卡,一个是摩尔线程的,一个是景嘉微的,这两个设备都支持绘制函数vkCmdDraw
函数 ,但是到底获取的是哪个设备的实现是由Vulkan Loader
定义的,用户并不能知道返回的函数是哪个设备的实现。+模棱两可的函数获取
++
vkGetInstanceProcAddr
对于获取Device 域
函数:当调用这些Device 域
函数时 一定 是作用在某一个句柄(设备句柄或其子句柄)上,而句柄间有明确的子父关系 ,Vulkan Loader
会根据句柄的子父关系查找到对应的设备句柄,并调用对应设备上的函数实现。 +Vulkan Loader
在其中作为中间商进行了内部的函数调度,这种调度是需要消耗一部分调度时间的,为了得到更加高效的执行效率,推荐直接 获取 Device 域函数 并调用,这将直接省去内部函数调度。
在创建完逻辑设备 VkDevice
之后,与 VkDevice
及其产生的子对象(句柄)的所有交互函数都属于 Device 域函数
。我们通过 Vulkan
提供的 vkGetDeviceProcAddr
函数获取 Device
域函数。
2024/5/7 增加 二维多级渐远纹理
示例章节。
2024/5/7 增加 多采样二维颜色附件纹理
示例章节。
2024/5/7 增加 深度-模板附件纹理
示例章节。
2024/9/3 修正 VkImageTiling
打印错误。
在 Vulkan
中只有 2
种资源 :
其中 VkImageCreateInfo::tiling
的 VkImageTiling
类型定义如下:
多级渐远纹理内部数据
如上示意图中各级的渐远纹理中每个像素都是有确切图像值的,这些只是帮助您从逻辑上理解多级渐远,但是在实际通过 vkCreateImage(...)
创建带有多级渐远纹理中,图片数据全都是初始值(可能为 0
)。每一级别的多级渐远图片中每个像素具体为何值,需要通过执行 GPU指令
手动运算赋值。这将会在之后的章节进行讲解。
其中 VkImageCreateInfo::tiling
的 VkImageTiling
类型定义如下:
VkMemoryRequirements
章节。
2024/5/21 更新 VkMemoryRequirements
章节。
2024/5/21 增加 资源与设备内存绑定
章节。
2024/9/6 更新 对应关系
章节。
在 资源 章节中我们知道一个资源仅仅是一个 虚拟资源句柄
,其本质上并没有相应的内存实体用于存储数据。所以在创建完资源后,需要分配内存并与资源进行绑定,用于之后的数据读写。
所以一个 32
位的 VkMemoryRequirements::memoryTypeBits
完全可以覆盖到所有的 VkPhysicalDeviceMemoryProperties::memoryTypes
对应索引。
示意图如下:
+ +假如, VkPhysicalDeviceMemoryProperties::memoryTypes
有 10
个内存类型,其中 VkMemoryRequirements::memoryTypeBits
比特位为 1
所对应的内存索引的那个 设备内存
支持该为资源分配内存。
由于 VkMemoryRequirements::memoryTypeBits
中是按比特位存储的索引,所以我们需要遍历 32
位的每一位,来确定对应位是否为 1
。示例代码如下: