移动端Alpha Test费性能的原因

news/2025/1/15 18:15:58/

SwordMaster关注

0.072018.03.01 18:31:35字数 393阅读 4,841

调查了下现在移动端的GPU厂商,主要有Imagenation technology公司的Power VR 系列

高通的骁龙系列,Mali的MP系列。


各品牌手机使用的GPU

苹果手机->Power VR

魅族->Power VR

三星手机->骁龙

小米手机->骁龙

华为手机->Mali

每家芯片的特性不同,根据向framebuffer写法的不同,分为tile-based的mobile cpu,如PowerVR,Mali,一部分老版本Adreno。对tile-based的GPU来说,一旦使用打开alpha test或者其他discard功能的指令,就意味着这个fragment shader上不再只绘制一次像素了。这样会增加额外的性能消耗,所以一般都是建议用不实用alpha test,或者用alpha blend来代替。


PowerVR文档对Alpha Test的建议:

传送门:http://cdn.imgtec.com/sdk-documentation/PowerVR+Performance+Recommendations.The+Golden+Rules.pdf

个人理解:

由于Power VR使用了基于瓦片的延时渲染技术。

普通物体由于Early-Z技术的存在,使得被遮挡的物体片元的着色器不会被执行,马上更新深度缓冲的值

使用了Alpha Test的物体破坏了Early-Z技术,硬件检测后禁掉Early-Z技术,使得即使被遮挡的片元的片元着色器执行完才更新深度缓冲的值。(片元着色器被多执行了)

使用Alpha Test会导致性能降低,所以尽量使用Alpha Blend代替Alpha Test.

原文链接:https://www.jianshu.com/p/b32f4f70b4d0


http://www.ppmy.cn/news/186527.html

相关文章

Alpha和Beta测试的区别

AutoRunner是一款自动化测试工具。AutoRunner可以用来执行重复的手工测试。主要用于:功能测试、回归测试的自动化。它采用数据驱动和参数化的理念,通过录制用户对被测系统的操作,生成自动化脚本,然后让计算机执行自动化脚本&#…

[转载]Alpha、Beta、RC、GA版本的区别

最近在搞llvm,发现很多个版本不同的名称。便好奇各个名称的意义,在此记录一下 Alpha:是内部测试版,一般不向外部发布,会有很多Bug.一般只有测试人员使用。 Beta:也是测试版,这个阶段的版本会一直加入新的功能。在Alph…

beta版和alpha版

外部测试版的意思。 软件会出现三种版本 1.alpha内部测试版本,极不稳定,一般也不会出现的公众视线,仅供内部测试人员测试用。 2.beta公共测试版,就是对外发布软件的测试版,收集公众的意见和建议。 3.就是正式版了&…

Android:alpha换算表

 安卓颜色为16进制颜色 1、#ff000000 此为16进制颜色代码,前2位ff为透明度,后6位为颜色值(000000为黑色,ffffff为白色,可以用ps等软件获取)。 而#ff000000的 ff(startColorstr的…

2023年前端面试题汇总-性能优化

1. CDN 1.1. CDN的概念 CDN(Content Delivery Network,内容分发网络)是指一种通过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其他文件发送给用户&…

Alpha-Beta剪枝(Alpha Beta Pruning)

Alpha-Beta剪枝算法(Alpha Beta Pruning) [说明] 本文基于<<CS 161 Recitation Notes - Minimax with Alpha Beta Pruning>>&#xff0c;文中的图片均来源于此笔记。 Alpha-Beta剪枝用于裁剪搜索树中没有意义的不需要搜索的树枝&#xff0c;以提高运算速度。 假设α…

Alpha通道

什么是Alpha通道 阿尔法通道&#xff08;α Channel或Alpha Channel&#xff09;是指一张图片的透明和半透明度。 例如&#xff1a;一个使用每个像素16比特存储的位图&#xff0c;对于图形中的每一个像素而言&#xff0c;可能以5个比特表示红色&#xff0c;5个比特表示绿色&a…