Quick benchmark to check out regressions and such.
With a fps script that uses ongui, frequency 30 seconds, 2060rtx i5 8400
Scene uses no realtime lights or lightprobes, 1 refprobe, all baked & realtime volume lit by The Bakery, 20 vfx graph, 580K tris, 100 skinmesh, rufat’s post processing bloom
editor fullscreen 1280x720:
2020.1.17 105fps
2021.1.1 80fps
regression of 25%
build fullscreen 1440p:
2020.1.17 328fps → 310fps (drops slowly to 310)
2021.1.1 296fps → 310fps (ramps up slowly to stabilize at 310fps)
4 Likes
Can you share the FPS script?
using UnityEngine;
using System.Collections;
[AddComponentMenu( "Utilities/HUDFPS")]
public class FPS : MonoBehaviour
{
// Attach this to any object to make a frames/second indicator.
//
// It calculates frames/second over each updateInterval,
// so the display does not keep changing wildly.
//
// It is also fairly accurate at very low FPS counts (<10).
// We do this not by simply counting frames per interval, but
// by accumulating FPS for each frame. This way we end up with
// corstartRect overall FPS even if the interval renders something like
// 5.5 frames.
public Rect startRect = new Rect( 10, 10, 75, 50 ); // The rect the window is initially displayed at.
public bool updateColor = true; // Do you want the color to change if the FPS gets low
public bool allowDrag = true; // Do you want to allow the dragging of the FPS window
public float frequency = 0.5F; // The update frequency of the fps
public int nbDecimal = 1; // How many decimal do you want to display
private float accum = 0f; // FPS accumulated over the interval
private int frames = 0; // Frames drawn over the interval
private Color color = Color.white; // The color of the GUI, depending of the FPS ( R < 10, Y < 30, G >= 30 )
private string sFPS = ""; // The fps formatted into a string.
private GUIStyle style; // The style the text will be displayed at, based en defaultSkin.label.
void Start()
{
StartCoroutine( FP() );
}
void Update()
{
accum += Time.timeScale/ Time.deltaTime;
++frames;
}
IEnumerator FP()
{
// Infinite loop executed every "frenquency" secondes.
while( true )
{
// Update the FPS
float fps = accum/frames;
sFPS = fps.ToString( "f2");
//Update the color
color = (fps >= 30) ? Color.green : ((fps > 10) ? Color.red : Color.yellow);
accum = 0.0F;
frames = 0;
yield return new WaitForSeconds( frequency );
}
}
void OnGUI()
{
// Copy the default label skin, change the color and the alignement
if( style == null ){
style = new GUIStyle( GUI.skin.label );
style.normal.textColor = Color.white;
style.alignment = TextAnchor.MiddleCenter;
}
GUI.color = updateColor ? color : Color.white;
GUI.Label( new Rect(0, 0, startRect.width, startRect.height), $"{sFPS} FPS", style );
}
}
2 Likes
It’s likely that the editor portion of the gameloop got slower. Could you report a bug on this?
2 Likes
You’ve been reporting a lot of good performance regression bugs lately. I’m sure our lord and savior @Peter77 is proud up there in the sky.
8 Likes
shame he ascended with his RTX 2080
8 Likes
It’s not really related to the RTX Unity Technologies sent me, it’s more related to my interests having shifted. That’s mainly the reason why I’m not so much around here lately. But I see how it looks like I was bought and it’s a funny thought.
9 Likes