如何排查优化URP内置Shader冗余

1)如何排查优化URP内置Shader冗余
2)运行时Shader内存下降的原因


这是第454篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

From 问答社区

Q1:请教一下Shader冗余应该怎么查,似乎好几个Shader运行时都有两份?

A:资源冗余最常见的原因是AssetBundle没有依赖打包导致的,可以使用UWA的在线AssetBundle检测进行冗余检测先试试。

Q2:测了AssetBundle,确实有冗余,但AssetBundle冗余的Shader和运行时冗余的Shader好像又不一致。实际运行时的冗余都是Hidden/Universal Render Pipeline/xxx。这又是为什么呢?

A:这些是URP的Shader,通常是URP Asset的引用导致的,因为URP Asset会引用这些Shader。而内存中出现两份Shader,说明内存中出现了两个来源路径不一样的URP Asset,通常一份是在PlayerSetting中引用的URP Asset,另外一份可能来自AssetBundle中动态加载的URP Asset。RendererData里面会引用到PostProcessData,PostProcessData就会引用这些Shader,如果代码里面动态加载的AssetBundle里面也有这种资源,也会引用一份Shader进内存,就会造成冗余。

Q3:请问这个怎么处理,直接删去吗?

A:一般只处理内存占用比较大的即可,其他的内存占用比较小,冗余开销也不大。比如Hidden/Universal Render Pipeline/Uberpost,需要删除其中用不到的Keyword来降低占用;又比如Hidden/Universal Render Pipeline/HBAO,看是否确实要用到,用不到就解除引用。

欢迎大家转至社区交流:
https://answer.uwa4d.com/question/69245652244ce21ce9ec095c


From 问答社区

Q:请问在游戏运行过程中不同时刻截帧后同一个Shader的内存占用为什么不一样?用UWA的资源列表观察完整生命周期曲线后更明显了,全程都在轻微但持续地下降,这是什么原因呢?

A:这是因为,内存分析工具统计到的是在Unity引擎层Native Object处的Shader内存。引擎会在ShaderCreateGPUProgram操作时,将Shader Code信息转化为运行时GPU实际要用到的信息。因此会表现为Shader本体资源内存下降,但系统层Native Heap和GFX内存都会显著上升。

这个现象在UWA DAY 2025的话题中正好有相应的原理讨论和实验,分别为:
Unity移动游戏工业级性能优化指南 3.0
《心动小镇》内存优化经验谈

欢迎大家转至社区交流:
https://answer.uwa4d.com/question/69245c90244ce21ce9ec095f

无论是社区里开发者们的互助讨论,还是AI基于知识沉淀的快速反馈,核心都是为了让每一个技术难题都有解、每一次踩坑都有回响。本期分享分别来自UWA AI问答和UWA问答社区,希望这些从真实开发场景中提炼的经验,能直接帮你解决当下的技术卡点,也让你在遇到同类问题时,能更高效地找到破局方向。

封面图来源于网络


今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com
UWA学堂:edu.uwa4d.com

相关推荐
Mikko77 小时前
用 Java 复刻了高中时在塞班上玩的「熔岩矿车」:纯 Swing、零依赖、没有一张图片,一个 jar 双击就能玩
java·游戏开发·swing
郝学胜_神的一滴12 小时前
游戏设计:原型与开发 06:读懂游戏设计最容易被忽略的文化层
游戏·游戏开发
SmalBox13 小时前
05-03-源码-运行模式体系(PlayMode)
unity3d·游戏开发
9527出列13 小时前
基于oss的断点续传实现
http·性能优化
AliCloudROS14 小时前
从 1 万到 20 万:OOS Loop 任务规模提升 20 倍的攻坚记录
运维·性能优化
yunwei3715 小时前
eBPF 示例:使用 CUPTI 构建 GPU 火焰图分析器
linux·后端·性能优化
打工仔折腾 AI16 小时前
从零开始大模型微调:基于 PyTorch 与 ChatGLM 的 LoRA 实践指南
人工智能·pytorch·后端·python·深度学习·性能优化·ai agent 实战
Cx330❀18 小时前
深入浅出 Qt 绘图机制:从 QPainter 到四大图像类解析
开发语言·qt·ui·性能优化·图形渲染
江厌0119 小时前
128GB 统一内存能跑多大模型?PGX 的容量、带宽与适用边界
性能优化
西红柿炖牛腩35419 小时前
机房电脑不能联网,怎么离线把课件里的 3D 模型压小?Draco / Meshopt 参数清单
前端·javascript·3d·性能优化·大屏端