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

Posted 常城

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity-- Gfx.WaitForPresentOnGfxThread占用CPU过高导致帧率低相关的知识,希望对你有一定的参考价值。

一个新建的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+了。

 

unity灯光问题

为什么我再UNITY里面灯光一多就好像互相干扰,有的灯就不亮了,是我显卡不好么?

你设置的最大像素灯光个数太少 参考技术A kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

以上是关于Unity-- Gfx.WaitForPresentOnGfxThread占用CPU过高导致帧率低的主要内容,如果未能解决你的问题,请参考以下文章

unity和unity3D的区别

Unity3D资源文件 ③ ( Unity 资源包简介 | 导出 Unity 资源包 | 导出资源包的包含依赖选项 | 导入 Unity 资源包 | Unity 资源商店 )

Unity前景如何?现在unity还能找到工作吗?

Unity学习笔记:unity介绍

unity游戏unity 攻击范围绘制圆圈怎么做

unity如何用脚本刷新窗口