GPU随想——Vulkan 1.1.107(+KHR扩展) spec浅译0
与OpenGL作对比……
目录
1. 概述 1.1 文档约定 2. Vulkan基础知识 2.1 host与device环境 2.2 Vulkan系统的执行模型 2.3 对象模型 2.4 应用程序二进制接口 2.5 命令语法及其执行过程 2.6 线程行为 2.7 执行过程中的错误 2.8 数值表示及其计算 2.9 定点(fixed-point)数据的转换 2.10 通用对象类型 3. 出屎化 3.1 命令函数指针 3.2 实例(instances) 4. 设备与队列 4.1 物理设备 4.2 设备 4.3 队列 5. 命令缓冲区 5.1 命令缓冲区的生命周期 5.2 命令池 5.3 命令缓冲区的分配与管理 5.4 命令缓冲区记录命令 5.5 提交命令缓冲区 5.6 队列中命令缓冲区的提交进程 5.7 二级命令缓冲区的执行 5.8 命令缓冲区设备掩码 6. 同步与缓存(cache)控制 6.1 执行与内存依赖 6.2 隐式同步保障 6.3 围栏(fences) 6.4 信号量(semaphores) 6.5 事件 6.6 流水线同步屏障(barrier) 6.7 内存同步屏障 6.8 空等(wait idle)操作 6.9 保障host写入顺序 6.10 同步及多物理设备 7. 渲染过程(render pass) 7.1 创建渲染过程 7.2 渲染过程的兼容性 7.3 帧缓冲区(framebuffers) 7.4 渲染过程中的命令 8. 着色器 8.1 着色器模块 8.2 执行着色器 8.3 着色器内存的访问顺序 8.4 着色器的输入与输出 8.5 顶点着色器 8.6 曲面细分控制(tessellation control)着色器 8.7 曲面细分求值(tessellation evaluation)着色器 8.8 几何着色器 8.9 片段着色器 8.10 计算着色器 8.11 插值装饰器(interpolation decorations) 8.12 静态使用着色器 8.13 调用组(invocation groups)以及导数组(derivative groups) 8.14 子组(subgroup) 9. 流水线 9.1 计算流水线 9.2 图形流水线 9.3 流水线的销毁 9.4 创建多流水线 9.5 流水线的继承 9.6 流水线缓存 9.7 特殊常量 9.8 绑定流水线 9.9 动态状态 10. 分配内存 10.1 host内存 10.2 device内存 11. 创建资源 11.1 缓冲区 11.2 缓冲区视图(view) 11.3 图像 11.4 图像(在内存中的)布局 11.5 图像视图 11.6 资源与内存的关系 11.7 资源共享模式 11.8 内存别名(aliasing) 12. 采样器 13. 资源描述符(descriptor) 13.1 描述符类型 13.2 描述符集 14. 着色器接口 14.1 着色器输入与输出接口 14.2 顶点输入接口 14.3 片段输出接口 14.4 片段输入附件(input attachment)接口 14.5 着色器资源接口 14.6 内建变量 15. 针对图像的操作 15.1 图像操作之概览 15.2 颜色格式的转换公式 15.3 纹素输入操作 15.4 纹理输出操作 15.5 导数运算 15.6 归一化纹素坐标运算 15.7 非归一化纹素坐运算 15.8 整型纹素坐标运算 15.9 图像样本操作 15.10 图像操作步骤 16. 查询 16.1 查询池 16.2 查询操作 16.3 遮挡查询(occlusion query) 16.4 查询流水线统计信息 16.5 查询时间戳 17. 清除命令 17.1 清除某渲染过程实例之外的图像 17.2 清除某渲染过程实例之内的图像 17.3 清除值 17.4 填写缓冲区 17.5 更新缓冲区 18. 复制命令 18.1 复制命令的通用操作 18.2 在缓冲区之间复制数据 18.3 在图像之间复制数据 18.4 在缓冲区与图像间复制数据 18.5 图像复制过程中的潜在操作 18.6 解析多重采样图像 19. 绘制命令 19.1 图元拓扑 19.2 图元次序 19.3 可编程图元着色 20. 固定功能(fixed-function)顶点处理 20.1 顶点属性 20.2 顶点输入描述 20.3 举个栗子 21. 曲面细分 21.1 镶嵌器(tessellator) 21.2 镶嵌器对面片置之不理的情况 21.3 镶嵌器空间 21.4 曲面细分图元次序 21.5 镶嵌器顶点绕序 21.6 三角形曲面细分 21.7 四边形曲面细分 21.8 等值线(isoline)曲面细分 21.9 曲面细分点模式 21.10 曲面细分流水线状态 22. 几何体着色 22.1 几何着色器输入图元 22.2 几何着色器输出图元 22.3 几何着色器的多次调用 22.4 几何着色器的图元次序 23. 固定功能(fixed-function)的顶点后置处理(post-processing) 23.1 平直着色法(flat shading) 23.2 图元裁剪 23.3 对着色器的输出进行裁剪 23.4 坐标变换 23.5 控制视口 24. 光栅化 24.1 光栅化执行前就丢弃图元的设置 24.2 光栅化次序 24.3 多重采样 24.4 样本着色 24.5 点 24.6 线段 24.7 多边形 25. 片段操作 25.1 逐片段提前测试 25.2 裁剪测试 25.3 样本遮罩 25.4 片段提前测试模式 25.5 逐片段后期测试 25.6 多重采样的覆盖情况(multisample coverage) 25.7 深度与模板的相关运算 25.8 深度范围(depth bounds)测试 25.9 模板测试 25.10 深度测试 25.11 样本计数 25.12 片段范围的缩减(coverage reduction) 26. 帧缓冲区 26.1 混合 26.2 逻辑运算 26.3 颜色写入掩码 27. 分发命令(dispatching commands) 28. 稀疏资源(sparse resources) 28.1 稀疏资源的特征 28.2 稀疏缓冲区与整体驻留(fully-resident)图像 28.3 稀疏部分驻留(sparse partially-resident)缓冲区 28.4 稀疏部分驻留图像 28.5 稀疏内存别名(aliasing) 28.6 稀疏资源的实现指东 28.7 稀疏资源API 28.8 举个栗子