UE5 Nicht genug VRAM?

  • Jain, Der "normale Ram" wird für alles benutzt was offen ist. Also Das Betriebssystem, Virenprogramme, Drucker und was alles so noch mit geladen wird wenn der Rechner hochfährt. Zusätzlich alle Programme die du öffnest. Des weiteren nutzt der CPU für seine Grafikeinheiten (Wer er das hat) den RAM, Auch onBoard Grafik nutzt den RAM. Deine Grafikkarte nutzt aber alles was die Unreal verarbeitet um das Bild anzuzeigen und neu aufzubauen, aber wenn der Speicher der Grafikkarte voll ist nutzt diese auch den RAM. Der Ram ist aber eine ganze Ecke langsamer als der von der Grafikkarte. Ich hoffe das war einigermaßen verständlich.

    Gruß

  • Hey zusammen


    Ich glaube aber irgend wo konnte man die Size einer Textur direkt in Unreal runterstellen. Ich hab das aber aus den oben genanten gründen noch nie gemacht.

    Vielleicht weiß dass jemand anderst


    Man kann in den Texture settings den LOD bias hoch stellen. Hier ein Beispiel, dass diese normal map von 2K auf max 1K runter schraubt.


  • Ich hab jetzt die Texturen die ich im Landscapematerial benutze, komprimiert. Benutzt habe ich LODBias. Funktioniert ganz gut;) Habe jetzt einen Performanceboost. VRAM um ca 1Gb reduziert. Ist nicht mehr überlastet. :__


    Allerdings stört jetzt noch die Shadercomplexity. Verstehe nur nicht wie ein simples "Wasser" material dermaßen complex sein kann.

    WasserShader ist Weiß.

    • Offizieller Beitrag

    Die Auslastung der GPU liegt nämlich meist nur bei ca 20-30%.

    Das Managed dein PC automatisch. Es gibt Aufgaben die nur von der CPU erledigt werden können und es Aufgaben die nur die GPU erledigen kann.

    Wenn die Auslastung der CPU zu hoch wird, löst dein Rechner das intelligent und gibt dann Aufgaben von der CPU an die GPU ab. Das funktioniert auch anderst rum.


    Alles auf die GPU zu optimieren, glaube nicht dass du das Steuern kannst bzw ich glaube das macht auch keinen Sinn.

    Bedenke auch wenn du alles auf deine RTX Optimierst, wird dein Spiel wohl nur Office PCs laufen.


    Schau das du die Texturen kleiner machst, du kannst LODs für Mesh und Texturen verwenden. Was weit weg ist, braucht keine 2k Textur da reicht ne 512 oder sogar gar keine Textur wenn das Mesh winzig ist.

  • Bedenke auch wenn du alles auf deine RTX Optimierst, wird dein Spiel wohl nur Office PCs laufen.

    Ja ich benutze die Steamstatistik um zu sehen wie viele, welche Graka benutzen. Und es sind verdammt viele alte unterwegs. Aber auch kein Wunder bei den Preisen. Ja Raytracing soll später optional sein. Wer es nutzen kann sollte es auch nutzen können.

    Schau das du die Texturen kleiner machst, du kannst LODs für Mesh und Texturen verwenden. Was weit weg ist, braucht keine 2k Textur da reicht ne 512 oder sogar gar keine Textur wenn das Mesh winzig ist.

    Ist ja schon soweit getan. Und LOD hab ich immer Standardmäßig. Ohne geht niemals ^^

    Gibt es eine Möglichkeit zu testen wie die Mindestanforderungen sein müssen? Weil wie du gesagt hast, das nicht nur für meine Graka optimiert sein sollte.

    • Offizieller Beitrag

    Gibt es eine Möglichkeit zu testen wie die Mindestanforderungen sein müssen? Weil wie du gesagt hast, das nicht nur für meine Graka optimiert sein sollte.

    Ausprobieren :)


    Es gibt Firmen den gibst du einen Haufen Geld und die installieren deine App oder deine Software auf vielen Rechnen mit unterschiedlichem Setting dann machen dann Benchmark. Danach weißt ganz genau auf welchem Rechner die Software wie gut läuft.

    Es kommt ja auch immer das Gesamt Paket an. Wenn du die beste RTX in lahmen I4 Rechner verbaust der 8GB Arbeitspeicher hat, dann kann sich die RTX auch nicht entfalten.

    Spannend wird dass nun auch mit der UE5 und Raytracing.


    Wenn die Engine performanter wird, dann werden auch die Shader krasser und im Endeffekt wird die Ersparnis der Performance wieder aufgefressen.


    Deswegen werden weiterhin alle auf den Polycount und die Texturgrößen etc achten.


    Was du auch nicht unterschätzen solltest die Größe deines Spiels am Schluss. Mit 8k Texturen wäre dein Spiel irgend 100 GB groß und dass will sich sicherlich niemand auf seinem Rechner installieren. Einige Spielen haben bereits 50GB und Sound nehmen auch nochmal richtig viel Platz weg.

  • Ähm. Viele Spiele haben schon 80 GB. FF7 Remake zum Beispiel.


    Also extra eine Firma dafür zu holen wird nie mir wohl nicht klappen. Das Geld spar ich mir lieber und schau dass das Spiel eine gute Performance hat. Bei mir schwankt es (mit Lumen) bei 50-80 FPS. Mal sehen wie es ohne aussieht.


    EDIT:

    Ich hab jetzt erstmal wieder auf DirectX11 umgestellt. Zwar ist die GPU jetzt auf 100% Auslastung aber dafür wird jetzt kaum der Speicher genutzt. Und habe meine 120FPS in fast jeder Szene;)

  • Ist das bei dem einen oder anderen hier noch aktuell ? Ich habe ne 160km2 große map mit World Partition 8x8k.

    ich habe auch kleinere grids eingestellt. Starte ich das Projekt einmal habe ich stetige 50 fps was eigentlich ausreicht da ich echt schon alles was geht versucht habe um sie zu erhöhen.

    Starte ich ein anderes Mal ist mein vram lt Meldung mit 8000mb überlastet. Ich benutze rvt fürs landscape, lods und culling für Foliages.


    Ich habe einen ryzen9 5900x 64 gb RAM und ne Rtx 3080.


    Hat da jemand Erfahrung ?

  • Hast du genug Platz auf der Platte das ausgelagert werden kann ?

    Jo die SSD 980pro, wo das Projekt liegt, hat noch 1,6 TB frei, sollte also reichen. Ich habe inzwischen festgestellt das der mangelnde VRAM daran liegt wie groß die Grid Größe ist. So sind ja die Tiles inzwischen bei WP gemanagte. Allerdings gibt es Videos wo der Ersteller eine 5KM Sichtweite einstellt, was einen Loading Radius von 500000 entspricht (jedenfalls laut der Angaben des Erstellers) Das Doc. von Epic lässt was das alles angeht absolut zu wünschen übrig. Mit einer Einstellung von 3000 sehe ich noch alles und die FPS ist ziemlich stabil bei 40 FPS was eigentlich dennoch zu wenig ist.

    • Offizieller Beitrag

    Dann liegt es wahrscheinlich an den Drawcalls.


    Keine Ahnung wie gut du dich mit der Technik dahinter auskennst. Aber Drawcalls sind im Grunde befehle die deine CPU an deine GPU sendet. Ein Drawcall kann zb eine Information für ein Material für ein bestimmtes Mesh sein. Oder der Schatten für ein bestimmtes Mesh.

    Jede Information ist ein Drawcall! Ein Draw kannst du vorstellen, wie wenn dein deine CPU deiner GPU Briefe mit Informationen schreibt.

    Nach dem Motto: Liebe GPU, zeichne mir ein Mesh (1 Drawcall) mit dem Material (+ 1 Draw) mit Schatten + 1 Drawcall)


    Deine GPU muss alle Briefe auspacken und lesen.


    Besser wäre deswegen, weniger Briefe zu schreiben und weniger Briefe und dafür mehr Informationen. Stichwort "Instanzieren" , oder Batsch Verarbeitung.

    In Unreal importierst du einen Stuhl, diesen Stuhl ziehst du in den Viewport. Dein Mesh im Content ist dein Parent Mesh und alle Meshes im Viewport sind Instanzen davon. Überschreibst du das Mesh, verändern sich auch automatisch alle Child Meshes im Viewport.

    Du kannst könntest jetzt aber auch den Stuhl mehrmals importieren und jeden Stuhl in den Viewport ziehen. Dies wäre dann weniger performant. So hättest du statt vielleicht 5 Drawcalls 25 oder mehr Drawcalls.


    Da du von einem großen Level gesprochen hast, ich hab keine Ahnung wie du sie aufgebaut hast. Aber ich hoffe das nicht jeder Baum ein Mesh ist sondern zumindest ein Parentmesh von einem Parent Mesh.


    Schwer zu sagen wo da dass Problem liegt.


    Aber vielleicht hilft dir dieses Verständnis weiter. Ich bin mir Relativ sicher, das deine GPU mit Drawcalls geflutet wird. Auch dinge wie Tiefenunschärfte oder LODs spielen bei solchen Entfernungen eine wichtige Rolle.

  • Draw calls und VRAM haben erst mal gar nix miteinander zu tun.


    Draw calls = Rechenaufgaben und somit GPU und nicht VRAM!


    Klassischerweise war VRAM mal "nur" dazu gedacht frames zu buffern.

    Seit es 3D Karten gibt wird VRAM aber exzessiv durch andere Dinge genutzt. Das meiste geht in der Regel drauf um Texturen zu puffern. Daneben Geometrie und Z-Buffer. Frame buffer ist verschwindend gering - bei 4K Aufloesung etwa 33 MB pro Frame. Noch ein bisschen geht fuer Spielereien wie Anti Aliasing und Shader drauf. Meist sind texturen schuld.


    Im Falle von DEX klingt es fuer mich nach einem bug. Laedt er das projekt - alles OK. Schliesst er es und laedt erneut - 8 GB VRAM fehlen auf einmal? Das ist ein bug, ganz klar. Wuerde mal schauen ob die aktuellsten Nvidia Treiber installiert sind - STUDIO, NICHT gaming.

    • Offizieller Beitrag

    Draw calls und VRAM haben erst mal gar nix miteinander zu tun.

    Doch klar so funktioniert nunmal die Renderpipeline die CPU sendet den Drawcall an die GPU. Damit die GPU loslegen kann um was auch immer auf dem Monitor darzustellen, müssen bestimmte Kriterien erfüllt sein. zb muss das Mesh und alles was zu den Texturen und dem Shader gehört im RAM geladen sein. Der Ram übergibt den Drawcall mit allem (Mesh, Texturen usw) dem VRam, sofern Platz im VRAM ist.


    Hast du zuviele Drawcalls wird die CPU vermutlich nichts an die GPU übergeben weil die Renderkriterien nicht erfüllt sind. Während die GPU wartet, wird die CPU der GPU andere Aufgaben zukommen lassen.

    Alles hängt, alles läd und alles wartet: RAM + VRAM und vielleicht noch die Festplatte sind zumindest stark ausgelastet.


    Dex

    Hier gibt es ein super Video von Unreal selbst die das ganze besser erklären können wie ich. Dort findest du auch Lösungsansetzte bzw welche Tools dir Unreal zur Verfügung stellt.

    Im Video findest auch verschiedene Konsolen Befehle, wie du dir die Performance anzeigen lassen kannst wie beispielsweise die Shader Complexity oder Light Complexity.


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Vielleicht hat Kyodai auch recht und es wirklich ein Bug. Aber kann mir nicht vorstellen, dass deswegen der RAM voll läuft.

    Bei einem Crash wäre ich eher bei dir was Bug Theorie angeht.

    Aber die Drawcalls lassen sich wie gesagt ja einfach prüfen und die Performance ein oder ausschließen.


    Bei einigen Programmen wie vielleicht vue kann man auch ganze Maps exportieren. Leider nicht immer sehr performant oder man muss dinge tun um die Maps mit Bäume etc in der UE4 oder 5 verwenden zu können.


    Vielleicht hast du so eine unperformante Map ?