- 书: 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)是最好老师——始终在调试阶段启用’。”
Post Views: 760
发表回复