- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
次世代图形接口 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)