
- 书: https://pan.baidu.com/s/1XqKbodMZYD_Bu2f_E1ghxw?pwd=y5p9
- 笔记如下:
- “Vulkan是‘面向未来的图形API’,显式控制GPU资源,替代OpenGL的隐式状态机。”
- “
vkEnumerateInstanceExtensionProperties检查扩展支持,VK_KHR_surface启用窗口系统集成。” - “队列家族(Queue Family)区分图形、计算和传输操作,
vkGetPhysicalDeviceQueueFamilyProperties查询能力。” - “交换链(Swapchain)配置三要素:表面格式(
VkSurfaceFormatKHR)、呈现模式(VkPresentModeKHR)、分辨率(VkExtent2D)。” - “管线布局(
VkPipelineLayout)绑定描述符集和推送常量(Push Constants),后者适合高频小数据更新。” - “内存类型索引(
memoryTypeIndex)区分设备本地(VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT)和主机可见内存。” - “屏障(
VkImageMemoryBarrier)控制资源访问同步,转换图像布局(如VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL)。” - “描述符池(
VkDescriptorPool)预分配描述符集,避免运行时动态分配开销。” - “多采样抗锯齿(MSAA):
VkImageCreateInfo设置sampleCount,VkPipelineMultisampleStateCreateInfo配置采样数。” - “动态渲染(
VK_KHR_dynamic_rendering)替代VkRenderPass,简化现代渲染流程。” - “间接命令(
VkDrawIndirectCommand)结合计算着色器生成绘制参数,实现GPU驱动渲染。” - “管线衍生(Pipeline Derivatives)复用基础管线状态,减少创建开销(如
VK_PIPELINE_CREATE_DERIVATIVE_BIT)。” - “时间戳查询(
VkQueryPool)测量GPU耗时,vkCmdWriteTimestamp插入标记。” - “
VK_EXT_mesh_shader引入网格着色器,替代传统顶点/图元着色器管线。” - “异步计算:提交到不同队列(图形vs计算),用
VkSemaphore同步避免资源竞争。” - “
VK_KHR_buffer_device_address允许着色器直接访问GPU内存,加速光线追踪。” - “延迟渲染优化:
VkRenderPass子通道(Subpass)共享附件数据,减少带宽消耗。” - “
VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT启用着色器printf调试,输出到主机日志。” - “管线缓存(
VkPipelineCache)跨程序启动持久化,加速管线重建。” - “开发箴言:‘验证层(Validation Layers)是最好老师——始终在调试阶段启用’。”