移动端渲染优化
全库目录221
本文目录11
冷机跑得顺、持续战斗后降帧,说明设备的持续预算比短时峰值更紧。频率下降会延长同一批工作,附件往返和透明覆盖又会增加工作量与功耗。优化先确定设备能持续提供多少吞吐,再追踪一帧要求它处理什么。
持续负载与帧预算
60 FPS的显示周期约16.67毫秒,CPU和GPU各自需要在流水线允许的窗口内完成工作。单帧GPU时间12毫秒不能单独保证稳定60 FPS,CPU、呈现等待或资源创建也可能进入关键路径。先用 帧瓶颈诊断 区分等待与执行,再对主要工作建立假设。
假设某个纯计算受限通道原来为8毫秒,频率下降到原来的四分之三,理想化执行时间变成约10.67毫秒。真实变化还受访存与其他频率域影响,这个比例只说明同一工作量怎样挤占预算。减少资源访问可能降低持续能耗,是否能保持更高频率仍需热稳定实验确认。
固定设备、系统、构建、分辨率、画质和相机路线,分别记录冷机与热稳定窗口。保存温度状态、频率、有效帧数、中位数与P95/P99,并标记充电、后台负载、环境温度及动态分辨率。优化方案交替重复,才能区分收益与测试顺序造成的温升。两方案相差0.1毫秒、重复窗口波动1毫秒时,数据不足以支持收益。完整协议见 性能对照实验。
附件从生成到消费
片上驻留与外部往返
分块GPU把屏幕工作分到tile,片上存储可保留颜色、深度与多采样数据。若几何通道写出的GBuffer马上由同一像素的光照读取,驱动可能让中间值留在片上。邻域滤波需要访问其他位置,或附件总量超过实现预算时,数据可能需要写成外部纹理。
四张RGBA8附件在1920×1080下共占33,177,600字节。完整写出再完整读入的逻辑载荷为66.36 MB每帧,60帧约3.98 GB/s。若这些字段只交给逐像素光照,减少往返就有明确目标;若后续仍要采样,必须保留所需内容,不能丢弃Store后继续读取。
这是逻辑字节预算,缓存、压缩与实际访问会改变外部总线流量。Khronos Subpasses样例说明中间附件驻留与合并约束,并用计数器检查结果;来源设备的收益属于该实验,项目需自己的捕获和带宽记录。
格式、采样数与通道边界
一个附件从RGBA8改为RGBA16F,逻辑载荷翻倍,也增加片上需求。MSAA增加覆盖、深度与部分颜色存储;片上解析和把全部多采样数据保存到外部纹理具有不同流量,因此4×MSAA不能直接换算成整帧带宽四倍。
先沿消费关系判断哪些字段需要保存。深度足以重建位置时,世界位置附件可能冗余;需要HDR或负值时,又不能只为省字节改成无法表达的数据格式。布局与语义见 GBuffer布局,清除、保留和丢弃见 Render Pass与附件。
保持材质与灯光不变,比较分离通道与允许片上消费的组织方式,观察外部读写、物理tile或工具对应计数器及GPU时间。外部流量没有下降时,查实际合并、后续消费者、格式和样本数。源码减少一个Pass并不证明附件往返减少。
透明覆盖与纹理读取
同一区域的重复工作
普通透明层要保留多层颜色,同一区域会重复执行着色和混合。粒子数量因此不能直接代表成本:100个小粒子可能比10个铺满屏幕的烟雾便宜。八层平均覆盖全屏四分之一的烟雾,在1080p下合计约415万像素层;每层四次纹理查询,就约1660万次逻辑查询,尚未计深度读取与混合。
透明图片的空边缘也可能在裁剪前执行采样。收紧四边形或使用贴合轮廓的网格,减少的是无有效贡献的覆盖。先固定粒子运动、密度和颜色,只改变几何包络;若像素调用下降但时间不变,可能瓶颈在其他阶段,或新增几何抵消收益。再减少材质采样时,要单独验收被改变的噪声、软交界和遮挡效果。
低分辨率与预过滤
烟雾等低频信号可在较低分辨率生成。宽高各减半,目标像素数为四分之一,但还有升采样和深度边界重建成本。细火花在低分辨率中可能直接消失,升采样无法恢复。让细线穿过烟雾边界,分别观察缺失、前景漏色和实际耗时。
正确Mip让采样读取与屏幕足迹相近的预过滤内容;固定基级可能既闪烁又触及无用纹素。压缩改变块载荷与误差,通道打包要求字段能共享分辨率、过滤和Mip。算法见 纹理采样与过滤 与 纹理压缩格式;目标设备还需确认构建后的真实格式和回退,源PNG大小不能代表驻留内存。
着色频率与精度
保持覆盖不变,把片元输出替换成简单常量。若通道明显变快,着色与纹理路径值得继续调查;若变化很小,几何、附件、混合或同步可能占主要部分。减少ALU之前先建立这个工作量与耗时的联系。
可变着色率(VRS)允许一个结果供多个像素使用,2×2区域可在支持条件下共享着色。几何和深度仍有独立成本,不能据此推断通道加速四倍。平台对逐绘制、逐图元与屏幕着色率图的支持不同,应先查询能力。
四个像素都为0.4时,一个样本可以表示平坦信号;四点交替为0与1时,单样本可能把整块变黑或变白。天空、虚化背景可以成为候选,文字、脸部与细高光更敏感。历史对比度生成的着色率图又会滞后于新出现的边缘,生成与同步也有成本。验收须包含相机运动、遮挡揭露和焦点变化。
半精度改变每次运算与寄存器存储。原生16位路径可能减少资源需求,但实际结果由编译器和设备决定。大世界位置、深度与大动态范围累积对误差敏感,局部颜色和权重可在限定范围内比较误差。寄存器减少但出现溢出或额外转换时,源码类型变短不能证明加速。执行模型见 GPU执行与访存。
实测判据与回归
记录同一条因果链:瓶颈假设、受控修改、工作量变化、耗时与持续状态、画质及内存代价。例如收紧烟雾网格后,透明覆盖、像素调用和热稳定窗口GPU时间一起下降,才形成可追溯结论。外部流量下降但帧时间不变也有价值,其功耗收益需要另测确认。
代表设备覆盖最低配置、主要GPU厂商和系统路径。分别检查阴影、LOD、纹理清晰度、Alpha边缘、HDR色带及UI可读性;动态效果还需观察时域稳定。功能与画质通过后,确认峰值内存、持续帧时间与失败回退。
本页字节数、像素层数和频率比例是可复算预算,未取得目标手机GPU捕获、功耗或热稳定性能结果。实际通道合并、VRS收益与持续表现须由项目设备证据确认。
相关主题
参考资料
- Khronos:Subpasses,2026-10-23核读Overview、Merging、Transient attachments:片上驻留、格式约束与验证。
- Khronos:Fragment shading rate,2026-10-23核读附件控制区域着色频率;支持条件仍需查询设备特性。
- Android:Thermal API,温度状态接口入口;本轮取回超时,未用该页支持具体API行为。
- 透明、纹理、GPU执行及附件语义的推导与原始资料由相关主归属文章维护。