🧩 总体概念
Vulkan
一个让你"明确告诉 GPU 要按什么顺序干活"的接口。
Instance
Vulkan 的身份证,用来告诉系统"我要用 Vulkan"。
Physical Device
你机器里真实存在的 GPU。
Logical Device
你跟 GPU 建立的工作关系(你真正用的接口)。
🧵 执行 & 时间线
Queue
GPU 的工作队列,本质是"执行顺序的流水线"。
Command Buffer
一张「未来要执行的操作清单」,不是马上执行。
Command Pool
command buffer 的内存池(回收站 + 工厂)。
Submit
把"操作清单"交给 GPU 执行。
⏱ 同步(最容易吓人的部分)
Fence
CPU 问 GPU:「你干完了吗?」
Semaphore
一个队列告诉另一个队列:「我已经做到这里了」。
Pipeline Barrier
告诉 GPU:「后面的操作要等前面的资源状态准备好」
🧱 资源(你真正操作的东西)
Buffer
一块线性内存(顶点、索引、常量都住这)。
Image
带"用途状态"的纹理或帧缓冲。
Image Layout
图片现在是"干什么用的模式"。
(比如:画画 / 采样 / 显示)
🔁 状态与布局
UNDEFINED
"我不在乎之前是什么,反正马上要重写。"
COLOR_ATTACHMENT_OPTIMAL
我要往它上面画。
SHADER_READ_ONLY_OPTIMAL
着色器要读它。
PRESENT_SRC_KHR
给窗口系统显示用。
Layout Transition
告诉 GPU:图片用途变了。
🎨 渲染结构
Render Pass
描述一次"画画流程"里附件如何使用。
Subpass
RenderPass 里的一个阶段。
Framebuffer
RenderPass 实际用到的 image 组合。
🧠 管线相关
Pipeline
一整套 GPU 工作配置(着色器 + 状态合集)。
Shader
GPU 程序(顶点 / 片元等)。
Pipeline Layout
shader 能访问哪些资源的说明书。
📦 资源绑定
Descriptor Set
一包"我要给 shader 用的资源"。
Descriptor Layout
这包资源长什么样。
Descriptor Pool
分配 descriptor 的地方。
🧰 辅助工具
Validation Layer
Vulkan 的"唠叨但很聪明的老师"。
Swapchain
系统提供的"可显示图片队列"。
Present
把画好的图交给系统显示。
🧭 一句话总总结(最重要)
Vulkan = 用 command buffer 描述执行顺序,用同步保证顺序正确,用 layout 告诉资源当前用途。