前面几篇文章,我们介绍了新一代图形API-Vulkan的优势及特点。由于其精细化的控制和性能特点,有的小伙伴就发出了疑问“是否需要把现有的OpenGL项目迁移到Vulkan上?”,“Vulkan效果并没有想象中的那么好是怎么回事?”。今天我们就来浅聊下这个话题。

首先我想声明的是Vulkan并非银弹并不是所有的渲染问题都可以通过替换图形API就能轻松解决的,甚至可能会有负收益和成本的问题。

场景一 业务自身性能问题

自身业务场景问题都没有有效解决,只想依靠底层提升来解决无异于杯水车薪。所有解决性能的思路都是先做度量,再根据度量结果优化项目现有问题,再通过底层基础和通用能力提升。而大部分场景都是自身问题并没有得到很好的解决。

场景二 非渲染场景下问题

当前的性能瓶颈并不是渲染相关的,可能是数据也可能是业务逻辑甚至是网络。

场景三 低延迟及少卡顿

如果你的应用对微小的卡顿或者帧率抖动比较在意,Vulkan可以显式控制场景渲染期间何时发生耗时的操作。这就得益于Vulkan的精细化控制和设计哲学,比起OpenGL驱动通过预测管理状态和资源更加有优势。

场景四 多线程渲染

如果程序性能的瓶颈在于CPU上和图形相关的部分,那么Vulkan很有可能有机会提升它的性能,因为Vulkan天生支持多线程,可以充分发挥CPU的能力,比起OpenGL的单线程渲染更有优势。或者对于想要榨干某个计算资源相对有限的平台上的性能,那么Vulkan中允许程序对所有资源直接的分配和管理也可能对性能有一定的帮助。

场景五 性能瓶颈GPU

这是一个较容易引起争议和误解的场景,我个人理解本质上图形API是与GPU驱动进行通信的一种规范,GPU驱动是CPU与GPU通信的媒介,所有这些(图形API、驱动)都是执行在CPU端,而非GPU端。

所以,不同的图形API并不能直接提升GPU本身的工作效率和提高其负载,只能改善CPU端与GPU端通信的效率,协同的方式。

虽然不能直接影响GPU的性能,但不同的图形API对GPU的操控能力的粒度不同,Vulkan远比OpenGL操控得细,也能使用(定制)更多的GPU端的功能,所以部分场景下替换成Vulkan可以为我们提供更多的控制手段,是有可能有助于改善GPU执行效率的。

场景六 生态及成本

无论是技术生态还是人力成本,Vulkan都是相对处于劣势的,所以在做项目迁移的时候一定要考虑这点,不能盲目跟从。

当然业务场景万千,开发者需要从多方面考虑谋取最大的ROI。

附:

Vulkan-实践剖析

Vulkan-性能及精细化控制

Vulkan并非“灵药“相关推荐

  1. 深度学习不是万灵药!神经网络3D重建只是图像分类

    https://www.toutiao.com/a6703122083485843972/ 2019-06-16 21:37:09 [新智元导读]随着深度学习的大热,许多研究都致力于如何从单张图片生成 ...

  2. Vulkan统一所有平台的API

    本文是系列博客文章中的第一篇,旨在更深入地探讨在"2015计算机图形图像特别兴趣小组(SIGGRAPH)"大会上披露的有关Vulkan的信息.我不是要透露任何新信息,新信息我会留待 ...

  3. (图形学笔记 - Vulkan) 1.1.3 - Validation layers(建立vulkan的验证层)

    文章目录 1.1.3 - Validation layers(建立vulkan的验证层) 参考链接 概述 学习和翻译内容 Validation layers(验证层) What are validat ...

  4. Vulkan学习--5.创建一个窗口表面和交换链

    • 创建一个窗口,窗口表面和交换链 1.检测交换链是否支持 2.启用交换链扩展 3.选择适当的表面格式 4.查找最佳的可用呈现模式 5.设置交换范围 6.创建窗口表面 7.创建交换链 8.查询交换链支 ...

  5. 将HLSL射线追踪到Vulkan

    将HLSL射线追踪到Vulkan Bringing HLSL Ray Tracing to Vulkan Vulkan标志 DirectX光线跟踪(DXR)允许您使用光线跟踪而不是传统的光栅化方法渲染 ...

  6. # 命令行新建 job 错误: ORA-01008 并非所有变量都已绑定 。

    # 命令行新建 job 错误: ORA-01008 并非所有变量都已绑定 . 1.改正前代码: DECLARE job NUMBER; begin sys.dbms_job.submit(job =& ...

  7. 斯隆奖获得者李婧翌:AI+X并非总是有效,生物数据量小、噪音大,可解释性是关键...

    智源导读:在过去20年中,由于实验技术的发展,生物领域数据出现爆发式增长,同时推动了生物学科的定量化研究.因此,如何从数据中挖掘出有意义的生物学发现,已经成为生物学领域重要问题之一. 加州大学洛杉矶分 ...

  8. 甲小姐对话稚晖君:深度学习并非AI的终点

    "人类不应该只存在在地球上,对于这么浩瀚的宇宙来说太浪费了." 作者 | 甲小姐 助理 | 沁云 近日,华为"天才少年".B站UP主稚晖君的新作自动驾驶自行车在 ...

  9. SAP MM 并非奇怪现象之MB5B报表里期初库存余额或者期末库存余额为负数?

    SAP MM 并非奇怪现象之MB5B报表里期初库存余额或者期末库存余额为负数? 笔者在做某个项目的进销存报表优化的的时候,发现了一个奇怪现象:MB5B查某个日期或某个期间的库存的时候,发现有负的库存余 ...

最新文章

  1. 1048 Find Coins(散列解法)
  2. 线性代数可以速成吗_广播/学习吉他速成靠谱吗?真的可以速成吗?
  3. 服务器时间修改日志怎么查,查看云服务器的操作日志
  4. rejection from MPhil in Technology policy at cambridge
  5. springboot异步注解_Spring Boot 2 :Spring Boot 中的响应式编程和 WebFlux 入门
  6. 百度seo排名点击器app_百度SEO优化和百度竞价优缺点 - 百度整站排名
  7. python输入框输入提交_python文本文件处理和用户输入
  8. 基于CSS3的3D旋转效果
  9. c#使用pdf控件,提示无效注册类
  10. php fseek函数,php fseek函数怎么用?
  11. SpringBoot兼容人大金仓数据库
  12. mysql航空公司订票系统_航空订票系统(JAVA+SSH+MYSQL)
  13. ODI 问题集锦 - Return Code 1722 invalid number
  14. MySQL comment 使用
  15. Netkeeper联网时报pppoe拨号模块损坏
  16. 动什么别动感情 第66节:你不是一个虚荣的女性
  17. 大早起的起来就上网瞎逛,发现了就记录下来,也算心理安慰
  18. MySQL数据库修改表某一列数据(一整列)
  19. JavaScript——问卷星自动填写
  20. 解决手机端中文输入法中keyup不灵便的方法

热门文章

  1. 简单舒服新UI制作神器微信小程序源码下载
  2. Linux系统下安装oracle R11g
  3. FLV科普5 FLV Body
  4. Linux安装禅道在web页面进行系统检查时出现:临时文件和上传文件目录不通过(敲命令:setenforce 0 搞定)
  5. Google guava工具类库的介绍和使用
  6. gRPC 的 SSL/TLS 加密认证
  7. 无盘服务器内存64G够吗,电脑究竟要不要上64G内存,听听内行人怎么说,别再花冤枉钱了!...
  8. Windows 启动服务命令大全
  9. 【C++】STL常用容器总结之五:双端队列deque
  10. PMP培训费要多少钱