Unity-- Gfx.WaitForPresentOnGfxThread占用CPU过高导致帧率低

本文讲述了作者在使用URP项目时遇到的帧率低下问题,经过分析发现是GPU性能未被充分利用。通过一系列尝试,包括更换Unity版本、优化URP设置、调整项目质量、检查显卡驱动和NVIDIA控制面板设置,最终发现是笔记本电脑的系统设置限制了GPU性能。调整为性能模式后,GPU得到释放,帧率成功提升到100+。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个新建的URP项目,里面只有几个测试模型,结果在3070的笔记本电脑上,只能运行到20帧!FPS=20! 这实在受不了,开始Profiler分析原因。发现Gfx.WaitForPresentOnGfxThread占用较高。应该是它导致了帧率这么低。

死磕了一下午,终于找到原因,解决了。下面详细说明一下:

Gfx.WaitForPresentOnGfxThread 这个东西,是CPU已经准备好绘制下一帧,但是GPU还没准备好,应用程序等待 GPU 所花费的时间。

附一个官网的说明:

https://docs.unity3d.com/Manual/profiler-markers.htmlhttps://docs.unity3d.com/Manual/profiler-markers.html

那就说明,卡在GPU的性能上了。但是我电脑是3070啊!然后打开任务管理器,发现GPU最高只跑到10%。冷静,把所有能影响GPU性能的全部列出来,挨个试验:

(1)Unity版本问题。当前使用的Unity2022。换2021 LTS版本,情况依旧。结论:无效。

(2) URP带来的问题。关闭了所有URP耗性能相关的设置,情况未有好转。结论:无效。

(3)项目质量设置问题。降低并统一了各个平台的默认质量设置。甚至删除了多质量设置。情况好转一点。多个几帧可以。结论:无效。

(4) 显卡驱动导致。关闭显卡的最大帧率限制。结论:可能有效。

 

 (5) NVDIA控制设置。按Youtube的一个哥们建议,直接点【恢复】。结论:可能有效。

 (6) 笔记本电脑的系统设置。有些笔记本电脑,是有系统设置的,可以直接影响GPU的渲染能力。切换为【性能】设置,释放GPU能力。结论:直接有效!

 

再看一下运行后的FPS:轻松上到100+了。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值