打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【酷学堂】性能再升级!小米带来国内安卓系统GPU驱动首次更新!
userphoto

2020.05.14

关注
去年12月,高通宣布率先开放 GPU 驱动更新,骁龙865、骁龙765等系列将在后期获得公开的 GPU 驱动更新,首批支持的机型有小米10/10Pro和 Redmi K30 Pro等。基于此点,前些时间小米10系列和 Redmi K30 Pro系列率先支持并提供了国内首次 Adreno GPU 驱动独立更新,用户可以像更新应用程序一样简单便捷地更新 Adreno GPU 驱动。而此次更新内容主要包括:优化 OpenGL ES 性能,提高崩坏3、和平精英、堡垒之夜游戏运行的稳定性;优化Vulkan性能等。基于小伙伴们对此可能不是很了解,接下来就让小编编带大家一起走进 GPU 的世界吧。
集CPU、GPU一体的手机芯片
一、 GPU概述
首先,为区分手机 GPU 与电脑 GPU 有关内容,在正式了解 Adreno GPU 驱动更新有关知识前,我们先来了解了解大概念下的 GPU :图形处理单元(GPU,Graphic Processing Unit),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器,主要用于管理和提高视频和图形的性能,GPU是相对于CPU的一个概念,它与CPU类似,只不过GPU是专为执行复杂的数学和几何计算而设计的,这些计算是图形渲染所必需的。
我们常说的电脑’GPU‘——显卡
0x01 GPU与CPU的区别:
CPU 由专为顺序串行处理而优化的几个核心组成,功能模块多,适合复杂的运算环境,大部分晶体管用在控制电路和Cache上,少部分晶体管用来完成运算工作。而 GPU 则由数以千计的更小、更高效专为同时处理多重任务而设计的核心组成,拥有大量的高速内存和一个的大规模并行计算架构,最初被设计用于游戏,计算机图像处理等,主要擅长做类似图像处理的并行计算。 GPU的控制相对简单,且不需很大的Cache,大部分晶体管可被用于各类专用电路和流水线,因此GPU的计算速度大增,拥有强大的浮点运算能力。
CPU、GPU架构对比
CPU和GPU本身架构方式和运算目的不同,CPU主要是负责多任务管理、调度,它是领导者,负责指挥,计算能力方面没有GPU强。而GPU主要是用于大量的重复计算,它是计算专家,但协议、管理不是它的专长。它的计算执行能力很强。两者不可相互取代,需融合在一起,互相配合。
0x02 GPU与显卡的区别:
GPU 是图像处理芯片,外表与 CPU 相似,它是显卡的核心,因其并行计算任务较重,功耗较大,一般只能焊接在显卡的电路板上使用,不能单独作为外接扩展卡使用。而显卡也称显示适配器,由 GPU、显存、电路板,还有 BIOS 固件组成的,分为独立显卡和主板上集成显卡两类。显卡上都有 GPU,它是区分显性能的最主要元件。两者是“寄生与被寄生”关系,因而并不等同。(一般情况下,我们所说的 GPU 即指显卡)
GPU与显卡关系动图说明
0x03 GPU的功能:
l  纹理映射l  硬件覆盖 l  渲染多边形 l  MPEG 解码 l  支持 YUV 色彩空间l  二维或三维图形处理和渲染 l  数字输出到平板显示器监视器 l  应用程序支持 AutoCAD 等高强度图形软件以上功能可减少 CPU 的工作并产生更快的视频和图形。
二、Adreno GPU 简介
Adreno GPU 是 Qualcomm Snapdragon 处理器一体化设计的一部分,开拓性置于 Qualcomm Snapdragon 处理器内部。Adreno 是目前最先进的移动图形处理背后的发电站,它能加速游戏、用户界面和网络浏览器中复杂几何体的渲染,能够满足当今移动设备的游戏、用户界面、Web技术所要求的性能水平,并能以优异的图形性能带来良好的移动体验。Adreno GPU 专为移动API(应用程序接口)和移动设备限制而设计,重点在于性能和高效的电源使用。最初的 Adreno 130 变体仅支持OpenGL ES 1.1,Adreno 2xx系列及其后续版本支持OpenGL ES 2.0。 Adreno 3xx系列增加了对OpenGL ES 3.0和OpenCL的支持。 Adreno 4xx增加了对OpenGL ES 3.1和Android Extension Pack的支持。
Qualcomm Snapdragon865
三、 Adreno GPU的主要功能:
0x01 纹理功能
纹理映射(Texture Mapping)指通过数字化技术把纹理图案覆盖或者映射或者投射到三位物体的表面,给物体增加表面细节的过程,是绘制复杂场景真实感图形最为常用的技术,它可以通过纹理来表达表面丰富的几何细节和光照细节,甚至可以通过映射后纹理的变形来表达物体的几何形状:在未增加物体多边形数情况下,增强了物体的真实感效果。而Adreno GPU纹理功能包括多纹理 、视频纹理 、纹理压缩 、浮点纹理 、无缝边缘的立方体映射 、3D纹理几方面;可节省片段着色器的算法逻辑单元(ALU)成本,并避免不必要的顶点变换,显着提高图形应用程序的性能和缩短加载时间,减轻了在实时应用中使用阴影贴图可以看到的锯齿问题。
手机芯片常用架构
0x02 能见度处理(Visibility processing)
1、早期Z拒绝(Early Z rejection)早期Z拒绝提供了一种快速遮挡方法,可以拒绝从视图位置看不到(隐藏)的对象的不需要的渲染过程。 Adreno 3xx系列可以以高达4倍的绘制像素填充率来抑制被遮挡的像素,这对于具有高深度复杂性的应用有着重大意义。(此项有类于MIUI 12桌面切换至负一屏的高斯模糊效果)
早期Z拒绝图解
2、混合延迟和直接渲染模式(FlexRenderTM)QTI(高通技术公司)推出了新的FlexRender解决方案,作为Adreno 3xx的一部分。 FlexRender是指GPU在间接渲染(分箱或延迟渲染)和直接渲染到帧缓冲区之间切换的能力。直接渲染模式和延迟渲染模式各有优点。 而Adreno GPU 旨在通过动态方式在两种模式之间切换来获取最大化性能。
0x03 Shader(着色器)支持
1、统一的shader结构 shader 是专门用来渲染 3D 图形的一种技 ,通过 shader,程序设计人员可以自己编写显卡渲染画面的算法,使画面更漂亮、更逼真。shader 又分两种 ,一种是顶点 shader(3D图形都是由一个一个三角形组成,顶点 shader 就是计算顶点位置,并为后期像素渲染做准备),另一种是像素 shader,像素 shader 是以像素为单位,计算光照、颜色的一系列算法。而所有 Adreno GPU 都支持统一着色器模型,该模型允许在所有着色器类型(顶点和片段着色器)中使用一致的指令集,从而 Adreno GPU 可根据场景构成智能地最有效地使用着色器资源。
shader渲染管线示意
2、标量架构Adreno 3xx具有标量组件架构。 Adreno 3xx可以支持的最小组件是标量组件。 这样可以更有效地使用硬件资源来处理标量组件,并且不会浪费完整的矢量组件来处理标量。 与当今使用矢量架构的其他移动GPU相比,Adreno 3xx的标量架构可以提供两倍的功率效率,并且可以提供两倍于处理使用中等精度浮点(mediump)的片段着色器的性能。
四、OpenGL ES介绍
OpenGL(Open Graphics Library)定义了一个跨编程语言、跨平台编程的专业图形程序接口。可用于二维或三维图像的处理和渲染,它是一个功能强大、调用方便的底层图形库。对于嵌入式设备,其提供了 OpenGL ES(OpenGL for Embeddled Systems)版本,该版本是针对手机、Pad等嵌入式设备而设计的,是 OpenGL 的一个子集,它是从 OpenGL 去除了 glBegin/glEnd(两者为 OpenGL 函数),四边形(GL_QUADS)、多边形(GL_POLYGONS)等复杂图元等许多非绝对必要特性裁剪定制而来的。而文章开头说的驱动升级带来 OpenGL ES优化,便是指三维图形应用程序接口的优化。
OpenGL ES渲染流程
五、Vulkan 介绍
Vulkan是一个跨平台的二维或三维绘图应用程序接口(API),与前面OpenGL类似。同OpenGL一样,Vulkan针对实时3D程序(如电子游戏)而设计,并计划提供高性能和低CPU管理负担,它是 AMD Mantle 的后续版本,继承了AMD Mantle 强大的低开销架构,使软件开发人员能够全面获取 GPU 与多核 CPU 的性能、效率和功能。相对于 OpenGL,Vulkan大幅降低了 CPU 在提供重要特性、性能和影像质量时的“API 开销”(CPU 在分析游戏的硬件需求时所执行的后台工作),而且可以使用通常通过 OpenGL 无法访问的 GPU 硬件特性。
Vulkan提升游戏体验
与OpenGL|ES相比Vulkan的优势:
l  更简单的显示驱动层Vulkan提供了能直接控制和访问底层 GPU 的显示驱动抽象层, 显示驱动只是对硬件薄薄的封装,这样能够显著提升操作GPU硬件的效率和性能。之前 OpenGL 的驱动层对开发者隐藏的很多细节,现在都暴露出来。Vulkan 甚至不包含运行期的错误检查层。驱动层干的事情少了,隐藏的 bug 也就少了。l  支持多线程Vulkan 不再使用 OpenGL 的状态机设计,内部也不保存全局状态变量。显示资源完全由应用层负责管理,包括内存管理、线程管理、多线程绘制命令产生、渲染队列提交等。应用程序可以充分利用 CPU 的多核多线程的计算资源,减少 CPU 等待,降低延迟。 带来的问题是,线程间的同步问题也由应用程序负责,从而对开发人员的要求也更高。
Vulkan与OpenGL ES的对比
l  预编译Shaders驱动层不提供前端shader编译器,只支持标准可移植中间表示二进制代码(SPIR-V)。即提高了执行Shaders的效率又增加了将来着色语言的灵活性。
六、GPU 驱动升级相关内容:
对于PC游戏玩家,他们早已熟悉了通过GPU驱动更新来获得体验的进化,包括性能优化、功能提升,以及游戏体验的持续升级。相比于PC,移动端操作系统和GPU驱动更新机制更为复杂,涉及手机操作系统版本、游戏兼容性等诸多因素,因此想要在手机上实现这一PC端游级的体验,需要整个手机产业链的支持。手机驱动此前并不能像电脑一样安装,不过现在这种情况已经开始改变,今年的高通旗舰骁龙865已经支持独立更新GPU驱动。而此次国内使用骁龙865的机型中,小米10系列率先支持并上架了新驱动。
小米此次驱动升级内容
0x01 为何之前安卓没有GPU驱动升级
安卓之所以长时间以来,没法像 Windows 那样灵活升级驱动,是和系统架构息息相关的。安卓基于使用宏内核的Linux,系统内核和驱动等模块结合紧密。在传统安卓系统架构中,可见显示驱动、相机驱动等等都是被打包在 Linux 内核当中的,宏内核将驱动和系统内核耦合在一起,即便是只升级驱动,往往也需要连同系统一起升级。而Windows 的架构更接近于微内核,系统各模块之间分离度较高,并且微软为兼容更多硬件,还为驱动设计了如图形驱动的 WDDM,音频架构 UAA 等标准模型,只要驱动编写符合 WDDM、UAA 等架构,就可以自行安装升级驱动,而无需对系统内核进行改动。
微内核与宏内核的对比
尽管宏内核在驱动升级方面不够灵活,但因其高耦合度,可以带来更高的进程间 IPC 通讯效率,更为出色的性能而被广泛运用。
0x02 为什么当下又支持GPU驱动升级
在当下移动互联网/物联网时代,各式各样智能设备迅速涌现,不同硬件之间的适配对于宏内核这样更偏一体的架构就显得很被动和繁琐。以安卓机为例,市面上的安卓机使用了不同的 CPU、GPU、基带、CODEC 等等,由于宏内核的高耦合度,安卓机很难对操作系统和硬件驱动进行单独升级,无论想要升级系统还是想要升级驱动,厂商都需要为每个安卓机型号单独制作系统镜像。但并不是每个厂商都会选择投入大精力到系统维护当中的,这导致了安卓系统和驱动升级困难,最后的结果就是安卓机系统版本的碎片化。而对此,Google 其实早已察觉,为改变安卓的形态,Google 在安卓8.0中推行了 Project Treble 机制,将系统(Android OS framework)单独分区,和硬件驱动(Vendor implementation)分离,此后厂商可以为设备单独推送新版安卓,而不需要重新适配驱动,大大简化了安卓系统的升级流程。
Treble前后对比
在之后的安卓10当中,Google 更是推行了一项被认为是安卓至今为止最重要的更新——Project Mainline,系统进一步被细分模块化。14个系统组件被 Mainline 化,媒体解码器、权限控制器、网络组件等系统组件,都可以像普通APP一样,通过应用商店来更新——小米 GPU 驱动能够独立更新,就得益于此。可以说,安卓通过 Project Treble和Project Mainline,正变得越来越“微内核”。各项安卓驱动独立升级也正变得与 Window 端驱动升级一般简便与可行。
0x03 GPU驱动升级的优点
1、很多GPU驱动都会对主流游戏针对性的优化,升级GPU驱动之后,不仅可提高游戏运行稳定,性还能显著提升游戏画质。而小米此次带来的GPU 驱动更新升级便对崩坏3、和平精英、堡垒之夜三款游戏进行优化,提升了三者运行的稳定性,使玩家可获得更好的游戏体验。
GPU驱动带来游戏体验升级
2、新版本的GPU驱动可能改善旧版本存在的兼容性问题,更有效的利用GPU的资源,提高游戏性能。同时还可以进一步挖掘GPU硬件的功能,使得部分硬件功能(特别是Direct 3D部分)得以充分发挥。3、新版驱动有可能会包含对旧版本的驱动的一些 BUG 的修复,以及增加一些新的功能,也可能包含一些对 GPU 驱动要求较高的游戏的各项优化。
0x04 GPU 驱动更新升级常见问题汇总
GPU驱动更新升级FAQ
好啦,这期有关 GPU 驱动的介绍就先到这里啦。喜欢小编编文章的小朋友可以点赞+关注Mi_毓珣哈。有大家支持带来的动力,小编编会为大家带来更多精彩作品哒!
【酷学堂】:为 毓珣 主营科普专栏,旨在为小伙伴们提供更多优秀的专业科普内容。“让技术仅是知识,让科技就在字里行间”是我们的创作宗旨,希望大家喜欢并多加支持。
本篇原创内容首发于小米社区,著作权归创作者@Mi_毓珣 所有,未经允许严禁引用转载或用于商业用途!(部分图源网络,侵删)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
性能之争 三星S8 VS 苹果iPhone7
初探Vulkan
手机玩游戏为何选骁龙?Elite Gaming整体实现体验加分
GPU通用计算API的变迁和趋势
Basemark GPU测试初体验:Bug蛮多、对AMD卡不友好
高通骁龙处理器哪款最强?代表机型是什么?为你购机提供参考
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服