次世代图形接口 Vulkan 对行业的影响.pdfVIP

  • 16
  • 0
  • 约3.63千字
  • 约 43页
  • 2017-10-05 发布于湖北
  • 举报
次世代图形接口 Vulkan 对行业的影响

次世代图形接口 Vulkan 对行业 的影响 张静 GPU 架构师 @ NVIDIA README @ NVIDIA 上海 负责硬件部门的 OpenGL / Vulkan 性能分析工具 游戏行业经验 2K Games Ubisoft 微软 Xbox 部门 译者 OpenCV 2 计算机视觉编程手册 Processing 语言权威指南 联系方式 /vinjn /people /vinjn vinjn.z@ 知乎专栏 / 微信订阅号:黑客与画家 三个问题 Vulkan 是什么? Khronos 为什么重新造轮子? 什么项目需要用 Vulkan ? Vulkan - 德语中的火山 - 不是福尔康 Vulkan 是为今后 20 年准备的图形接口 是 OpenGL / ES 的替代者 现代、高效的设计 开放的工业标准 跨平台 (除了苹果系统……) 成立的背景 2012 年,Khronos 成立项目组重新设计 OpenGL ,不了了之 2014 年,项目提升至最高优先级,重启为 GL Next 2015 年 GDC ,首次对外公开项目细节 2016 年 GDC ,发布 1.0 得到硬件厂商支持 得到游戏厂商支持 得到工具厂商支持 新面孔:Google, Nintendo, PIXAR, Oculus VR, Valve, EA, Blizzard The Talos Principle Dota2 Doom OGL 出了什么问 题? 问题 一:OpenGL 编程模型与 GPU 硬件不 一致 OpenGL 被发明于 25 年前,用于昂贵的图形工作站中。 近年来移动 GPU 的兴起,多核 CPU 也成为常态,而 OpenGL 还是 没变。 GPU 甚至被用于图形以外的领域,无人机、计算机视觉、汽车、深 度学习等,OpenGL 无能为力。 解决方法:Vulkan 使用接近硬件的编程模型 问题 二:驱动工作量过大,行为难以预测 原因在于 OpenGL 开发者 在任意时间提供重要信息 在任意时间改变这些信息 对 GPU 不友好 OpenGL 驱动 会延迟工作,将工作转移给另一个线程 甚至基于猜测,无视开发者的命令 为了满足灵活性,增加大量的状态检验 跟踪资源之间的依赖 解决方法 开发者通过 Vulkan 实现对硬件的直接控制 在合适的时间 告诉驱动打算做什么 提供足够的细节 Vulkan 驱动会 在你让它工作时 做该做的事情 不做猜测,猜测 = 浪费 举例:OpenGL 的状态机被 PSO 取代 OpenGL 中的状态改变是全局的,在 Vulkan 中被 Pipeline State Object (PSO )替代 强迫你提前准备渲染的状态 你的工作量上去了 驱动的工作量降低了,更好优化、更快 OpenGL // 可随时随地修改渲染状态 glPolygonMode(GL_FRONT_AND_BACK, GL_LINE/GL_FILL); Vulkan // 预先创建两个 PSO 对象 vkCreateGraphicsPipelines(...pipelineCreateInfo, ..., pipelines.solid); rasterizationSta

文档评论(0)

1亿VIP精品文档

相关文档