Jump to content
Unity Insider Forum

Profiler GPU - Other


Kojote

Recommended Posts

Hi!

Ich bereite gerade die erste Alpha für mein Spiel vor und kontrolliere gerade noch einmal die Leistung. Beim GPU habe ich unter Other ziemliche Leistungsverluste. Ohne Other komme ich auf 250 Frames und habe keine Pikes. Mit Other hingegen stürzen meine Frames jedoch bis auf 60 Frame herunter mit Pikes aller 3-5 Sekunden. Habe nun etwas herum getestet und vermute sehr stark das unter Other der Unity Editor zu finden ist. Deaktiviere ich die Game- und Scene- View habe ich zwar keine Informationen vom Spiel mehr, aber immer noch ein kräftigen Frame-Verlust durch Other.

Sind meine Vermutungen richtig?

Grüße von Kojote

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wollt halt auch mal gerne bei den GPU nachschauen, da ich bei der CPU so ein paar Probleme habe, die auch mit der GPU zusammen hängen könnten.

PlayerLoop: 50.35 ms

PostLateUpdate.FinishFrameRendering: 39,50 ms

Camera.Renderer: 33.29 ms

Gfx.WaitForPresentOnGfxThread: 31.92 ms

Semaphore.WaitForSignal: 31.91 ms

Irgend sorgt hier für ziemliche Verzögerung und lande gerade mal bei 60 FPS. Obwohl ich bei der selben Scene schon einmal um die 160 Frame hatte.

natunz48.jpg

gll4w6ik.jpg

yk26czpx.jpg

 

 

 

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das ist ja jetzt wieder ein Debug Build, der sich im Profiler einklinkt. Warum nicht einfach einen ganz normalen Release Build erstellen und die fps messen? Dann kriegst du die Antwort auf die Frage, ob das editorbedingt ist oder nicht?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mir wurde von Lennert von VSPro geraten dies so zu tun, da man hier ide genaueren Werte bekommt. Ich habe hier im Profiler Werte von 60 FPS. Laut Ingame-Anzeige habe ich 19 FPS, was ja nicht sein kann. Irgendwie muss ich ja mal an realistische Werte kommen. Mein Spiel ist Low Poly und renne um die 60 Frames herum. Andere machen High Poly und schaffen auch 60 Frames, also muss irgendwas nicht stimmen. Wie gesagt, ich hatte es ja schon einmal bei ~150 Frames. Irgendwas kostet mir also gut und gerne 80 Frames.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was spricht denn dagegen trotzdem mal ein kleines Script zu nutzen um die FPS zu messen und es einfach auf irgendein GUI Elemet ausgeben zu lassen?

Selbst wenn es nicht 100% genau wäre, hättest du wenigstens mal eine Anzeige.
Wieviel Zeit du mit dem Profiler verbrätst ohne auf ein Ergebnis zu kommen...

Du bist echt Zäh! :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vielleicht drück ich mich falsch aus. 😁

Ich hatte ja schon hier geschrieben was da für Zahlen heraus kommen:

Zitat

Mir wurde von Lennert von VSPro geraten dies so zu tun, da man hier ide genaueren Werte bekommt. Ich habe hier im Profiler Werte von 60 FPS. Laut Ingame-Anzeige habe ich 19 FPS, was ja nicht sein kann. Irgendwie muss ich ja mal an realistische Werte kommen. Mein Spiel ist Low Poly und renne um die 60 Frames herum. Andere machen High Poly und schaffen auch 60 Frames, also muss irgendwas nicht stimmen. Wie gesagt, ich hatte es ja schon einmal bei ~150 Frames. Irgendwas kostet mir also gut und gerne 80 Frames.

Ich weis ja schon und habe es gerade noch einmal getestet. Ich bekomme laut Profiler als Build Version nach den Spielerein von heute Nachmittag nicht mehr nur 60 Frames, sondern 100 hin. Laut Ingame FPS Messung, also nicht mit dem Profiler, habe ich angeblich 31 Frames. Das kann aber nicht sein. Ich weis wie es ist bei 31 Frames zu spielen und das funktioniert sicherlich nicht so flüssig wie hier bei mir gerade.

Also würde ich gern heraus finden was hier los ist, da die Werte sich ja net Ansatzweise ähneln. Wenn mir der Profi 110 Anzeigen würde und Ingame 90 stehen würde, könnte ich damit ja leben und sagen das sind Messungenauigkeiten. Aber das ist schon etwas extrem.

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wo kommt denn deine Ingame Anzeige her? Redest du überhaupt von einem Build?
Deine Werte sind ja keine Ungenauigkeit sondern einfach nur ungenügend.

Mach dir mal ein kleines Script mit ein paar Variablen und häng da ein UI Textelement an.
Mit diesem Code in der Update:

deltaTime += (Time.deltaTime - deltaTime) * 0.1f;
msec = deltaTime * 1000.0f;
fps = 1.0f / deltaTime;
if (msec > 1.0f)
{
  FPStext.text = string.Format("{0:0.0} ms ({1:0.} fps)", msec, fps);
}


 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ingame-Anzeige kommt von meinem FPS Script. Jap und wir reden von einer Build Version. :)

Hier mal eine Übersicht über Build (DEV), Build und Editor Version:

 

EDITOR

Script: ~19 ms ~57 fps

Profiler: ~90 fps

 

BUILD (DEV)

Script: ~33,3 ms ~30 fps

Profiler: 120 fps

 

BUILD

Script: ~33,3 ms ~30 fps

 

So, was ich nun verstehe ist, dass der Profiler im Editor weniger FPS anzeigt als in der Build Version, dass ist klar. Warum sind aber meine FPS bei 30 und die msec werden sogar noch einmal um 14 ms in der Build Version erhöht?

 

EDIT:

Damit ihr mal wisst, warum mir meine Stirnfalten sonst wohin rutsch:

oxy5gj6o.jpg

Es sind gut und gerne 10 Bäume, etwas Gras und ein Baum in der Ferne, das wars! Das ergibt laut meinem Script (links oben) und Malzbies Script (rechts oben) 33.3 ms und 30 fps. Irgendwie nicht ganz nachzuvollziehen. Da sind mir die Werte aus dem Profiler mit ~130 Frames schon plausibler, aber immer noch zu wenige. Hier sollten eigentlich einige FPS mehr da stehen. Selbst wenn ich nun noch die Bäume und das Terrain fast komplett ausblende, komme ich immer noch nicht großartig in der FPS Zahl nach oben.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Interessant, ich habe bisher die Unity Version 2019.4.24 genutzt und habe diese Werte.

Dann habe ich heute mal auf die neueste 2019er gewechselt - selbes Problem.

Dann mal die 2020er geladen und siehe da: Wo ich im Editor erst noch knapp 30 Frames in den Scripten waren, sind es nun plötzlich 78 Frames. Der Profiler ist nun nicht mehr bei 90 Frames sondern 130 Frames und das im Editor- Modus. Morgen früh werde ich einmal eine Version erstellen und bin da einmal auf die FPS gespannt.

Ahja, die Millisekunden sind von 23 auf 12 runter! Gleiche Scene, gleiche Blickrichtung, nichts geändert!

EDIT: Doch noch mal jetzt getestet und auch bei diesem Build 31 Frames. -,-

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also diese 30fps kommen mir so vor, als hättest du VSync auf 2 also everySecondBlank . Dann geht der natürlich auf 30 anstatt auf 60.

Kannst du denn ingame die VSync Einstellungen ändern? Hast du also ein Menü drin?

Wenn nein, dann mach das mal und nutze einen Toggle, damit du schnell mal die Änderungen sehen kannst.

 public void VSync(bool on)
{
   if (on)
   {
     QualitySettings.vSyncCount = 1; //1 = every blank also idR. 60fps
            
   }
   else
   {
     QualitySettings.vSyncCount = 0; 
   }
}

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

In den Qualitys habe ich VSync count auf Don´t Sync gestellt. Aber stimmt, in den Voreinstellungs-Settings hatte ich:

QualitySettings.vSyncCount = 1; 

drin. Habe den VSync mal auf 0 gesetzt und mache nun noch einmal ein Build. Mal sehen was jetzt heraus kommt. Aber woher kommt der Extreme Unterschied zwischen Unity 2019 und 2020. Wie gesagt, ich habe ja nichts geändert. War da ein Bug von Unity am werkeln?

EDIT: Na sieh mal einer an 71 Frames laut Anzeige, ca. 150 Frames laut Profiler. Jetzt die Frage, woher kommt jetzt dieser Unterschied? Ansich ist ja in der Scene nicht sonderlich viel Enthalten. Müsste nicht in der Anzeige eher 100 - 150 Frames stehen, statt im Profiler?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Compleate Terrain Shader 2019 - Shader für das Terrain.

Irgendwie scheint mit dem etwas nicht zu stimmen. Ich hatte jetzt seit heute Nacht durchgehend 80 Frames. Dann auf einmal 2 h lang 26 Frames, auch nach mehreren Starts. Mach mir was zu essen und starte mit... 80 Frames. Irgerndwas im CTI2019 zieht wahnsinnig. Laut Profiler ist es DeferredPrePass und ShadowsDepth was Probleme macht.

 

Am meisten zieht mir im GPU: QuadTreeNode.Renderer und Shadows.RendererJobDir

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hatte Mal nach ca. 1 Stunde Zocken immer FPS verlust. Da half auch kein Neustart. Musste dann die PC Leistung eine weile reduzieren, dann ging es wieder 1 Stunde. Am Ende stellte sich raus, das meine GPU kochte, weil Lüfter defekt war. Nicht das bei deiner Hardware etwas heiß läuft. Würde erklären warum Neustarts nix bringt und nur eine Pause deine Hardware zum Abkühlen bringt. Ich hatte 25-30 FPS dabei. Ah und Shader geht bestimmt voll auf die GPU.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...