驱动开发系列86 - Mesa Zink Query 分析

张开发
2026/4/16 20:25:58 15 分钟阅读

分享文章

驱动开发系列86 - Mesa Zink Query 分析
一:相关 vulkan 接口1. vkCreateQueryPool /vkDestroyQueryPool #创建和销毁Query资源池2. vkResetQueryPool #重置query,每帧或每次使用前必须reset3. vkBeginQuery / vkEndQuery #统计一段GPU执行,常用于遮挡查询、Pipeline统计4. vkBeginQueryIndexedEXT / vkEndQueryIndexedEXT #带index的query,常用于 transform feedback、多视图5. vkBeginConditionalRenderingEXT /vkEndConditionalRenderingEXT #根据查询结果决定是否执行 draw,GPU侧条件执行,避免CPU-GPU同步6. vkWriteTimestamp #记录GPU时间点,计算draw/dispatch时间7. vkGetCalibrateTimestampsEXT #CPU时间与GPU时间对齐,避免时钟不同步8. vkQueryPoolResults #CPU读取 query 结果9. vkCopyQueryPoolResults #GPU读取 query结果,后续shader使用结果二:zink_query结构体介绍1. threaded_query 作用是为驱动实现提供统一的线程上下文支持,包含未flush查询链表和是否已flush字段。

更多文章