openGL vs. Vulkan - Memory Problem

Willkommen in der Transport Fever Community

Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.

 

Die Registrierung und Nutzung ist selbstverständlich kostenlos.

 

Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.

Das Team der Transport-Fever Community


  • Deutsch

    Hallo,

    ich habe eine neue Grafikkarte eingebaut, um die Vorteile von Vulkan nutzen zu können. Details zum verwendeten System siehe Signatur.

    Nun bin ich auf ein Problem gestossen, das ich vorher mit openGL nicht hatte.

    Mein Savegame frisst mehr als die vorhandenen 11GiB VRAM. (bzw. mit der alten Grafikkarte 5GiB). Unter openGL wurden Objekte zwischen HOST-Memory und Video-Memory hin und hergeschoben, der Vorgang war von der Performance nicht zu merken.


    Code
    GL DEBUG (source GL_DEBUG_SOURCE_API, type GL_DEBUG_TYPE_PERFORMANCE, id 131186, severity GL_DEBUG_SEVERITY_MEDIUM): Buffer performance warning: Buffer object XXXXX (bound to NONE, usage hint is GL_STATIC_DRAW) is being copied/moved from VIDEO memory to HOST memory.

    Jetzt mit Vulkan, friert der Bildschirm (respektive frieren die Bildschirme) ein. Das Spiel selbst läuft vielleicht mit ner Framerate von 3SPF (nicht FPS), andere Anwendungen auf dem anderen Bildschirme generieren einen Frame alle paar minuten.

    Laut nvidia-smi ist die GPU 100% ausgelastet, der Speicher ebenfalls zu 100%. Selbst bei pausiertem Spiel und Standbild.


    Bin ich jetzt auf ne Limitierung gestossen, die Vulkan im Vergleich zu openGL hat? Bug in Vulkan? Bug im Nvidia-Treiber? Alle sind auf neuestem Stand (s.u.)

    Oder schlechte Implementierung von Vulkan in Transport Fever 2?
    Bin etwas die Vulkandokumentation durchgegangen und, das transferrieren von Objekten zwischen Video und Host-Memory sollte kein Problem sein, wenn(!) das richtige Bit beim entsprechenden Objekt gesetzt wurde.

    Sorry, dass ich das Forum wieder mit meinen Problemen nerven muss :( Unten noch relevante Zeilen aus der Standardausgabe.

    Dankbar für jeden Hinweis (auch z.B. in Bezug auf erzeugen von debugging output durch Vulkan, relevante Umgebungsvariablen für Vulkan?)


    Ich habe noch versucht anstatt Xorg Xwayland zu testen. Mit Xwayland lädt das Spiel bis 100% und dann habe ich nur noch schwarzen Bildschirm, der TransportFever2 prozess läuft bei etwa 1% CPU-Last, reagiert jedoch nicht, minutenlang nur noch "Thread did not respond to ping. Possible hang detected!"


    Nun überlege ich noch ne bessere Grafikkarte zuzulegen, ins Auge ist mir die Nvidia Quadro RTX 8000 mit 48GiB Speicher gefallen. Mit etwa 3000 Euronen nicht ganz billig. Nur noch die Frage, ob sie auch mit PCIe x16 Gen2 funktioniert. Das habe ich den Nvidia-Support soeben gefragt.

    Hat Jemand noch Grafikkarten Tipps? Nach bislang besten Erfahrungen würde ich gerne bei Nvidia bleiben. Die Frage ist, was kompatibel ist. eben PCIe Gen 2 und maximal 300W.


    Ausgabe/output of nvidia-smi:

    Dell Precision T7600, 2 x Intel(R) Xeon(R) CPU E5-2665 (8 cores per CPU, 2 threads per core, 20MB L3 cache, 2.4/3.1GHz) (⁼32 logische CPUs), 512 GiB DDR3 ECC registered 1600 MT/s, NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (11GB GDDR5X 352 bit), SAS Hardware RAID Level 1

    Linux version 5.14.21-150400.24.60-default (geeko@buildhost) (gcc (SUSE Linux) 7.5.0, GNU ld (GNU Binutils; SUSE Linux Enterprise 15) 2.39.0.20220810-150100.7.40) #1 SMP PREEMPT_DYNAMIC Wed Apr 12 12:13:32 UTC 2023 (93dbe2e)

  • Deutsch

    In meinen Recherchen, habe ich gesehen, dass viele wohl Probleme mit Vulkan haben, wenn der VRAM nicht ausreichend gross ist. Oft scheint dann zu helfen auf openGL auszuweichen.

    Ist die Frage, ist das ein Problem von Vulkan und dort ein Bugreport wert? Oder ist es die Implementierung in TransportFever2?


    Wie gesagt, das hin und herschieben von Daten Zwischen Host und Video Speicher sollte kein Problem sein, wenn(!) entsprechendes Bit im Bufferobjekt gesetzt wird. Nun die Frage, ob das in TransportFever2 gemacht wird?

    Irgendjemand ne Idee?

    -

    (Desweiteren habe ich mir jetzt die Nvidia Quadro RTX 8000 bestellt. Und versuche solange wieder openGL. Aber ich bekomme den Spielstand gerade mit openGL garnicht mehr zum laufen :( Mit Vulkan ging es problemlos, war aber wegen des Problems nicht spielbar.)


    edit: translation added

    Dell Precision T7600, 2 x Intel(R) Xeon(R) CPU E5-2665 (8 cores per CPU, 2 threads per core, 20MB L3 cache, 2.4/3.1GHz) (⁼32 logische CPUs), 512 GiB DDR3 ECC registered 1600 MT/s, NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (11GB GDDR5X 352 bit), SAS Hardware RAID Level 1

    Linux version 5.14.21-150400.24.60-default (geeko@buildhost) (gcc (SUSE Linux) 7.5.0, GNU ld (GNU Binutils; SUSE Linux Enterprise 15) 2.39.0.20220810-150100.7.40) #1 SMP PREEMPT_DYNAMIC Wed Apr 12 12:13:32 UTC 2023 (93dbe2e)

    Einmal editiert, zuletzt von tsilaicosneknurd ()

BlueBrixx