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.
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.
Hello,
I built in a new video card to make use of Vulkan and its improvements. Details on the computer see signature.
I encountered a problem, which I hadn't using openGL.
My savegame needs more as the available 11GiB video memory (respectively the old one had only 5GiB). Using openGL buffer objects where transferred between video and host memory imperceptibly.
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.
Now using Vulkan, the screen (respecively the screens) freeze(s). The game runs at around 3SFP (not FPS) and other windows on another screen updates every few minutes.
According to nvidia-smi, the GPU is utilized at 100% and VRAM at 100% even if game is paused, not moving.
Did I encounter a limitation, which Vulkan has, but openGL hasn't? Bug in Vulkan? Bug in Nvidia-Driver? All are the latest available. details see below
Or bad implementation of Vulkan in Transport Fever 2?
Browsed a little through Vulkan's documentation. Copying from/to host memory shouldn't be a problem, if(!) the right bit on the object is set.
Sorry to bother you all again with my problems. Below are some relevant lines from the STDOUT.
Any hints appreciated! (also i.e. regarding debugging Vulkan or relevant environment variables?)
I also tried switching from Xorg to Xwayland. Using Xwayland, the game loads 100% but then I only have a black screen, the TransportFever2 task is running with around 1% cpu utilization, completely unresponsive, over minutes only "Thread did not respond to ping. Possible hang detected!"
I even consider buying a better video card. In my mind came the Nvidia Quadro RTX 8000 with 48GiB memory. Costing around € 3000 not exactly cheap. But the question is, if the card will work only using PCIe x16 Gen2. I asked that the Nvidia-Support.
Any tips regarding possible video cards? After best experience with nvidia I would prefer that vendor. But which cards may be compatible? Besides PCIe gen2 only 300 watts power may be drawn.
[...]
GUIVulkan_Setup
Pos_VulkanRenderContext_VkInstance 00000028
Pos_VulkanRenderContext_VkDevice 00000038
Pos_VulkanRenderContext_VkSwapchainKHR 00000150
Pos_VulkanRenderContext_swapdata 00000510
Pos_VulkanRenderContext_m_graphicQueue 00000000
Pos_VulkanRenderContext_m_presentQueue 00000000
VulkanRenderContextWrapper::posSDLWindow_width 00000018
VulkanRenderContextWrapper::posSDLWindow_height 0000001C
[...]
Requested instance extensions:
- VK_KHR_surface
- VK_KHR_xlib_surface
- VK_KHR_get_physical_device_properties2
Requested layers:
Create Vulkan instance.
Supported depth resolve: { SampleZero | Average | Min | Max }
Supperted stencil resolve: { SampleZero | Min | Max }
Found device #0: NVIDIA GeForce GTX 1080 Ti (id: 6918, vulkan version: 1.3.224, driver version: 2203910400 [525.116.4.0], vendor id: 4318 [Nvidia])
-> Selected device #0
__CRASHDB_RENDERER__ Vulkan|Nvidia|NVIDIA GeForce GTX 1080 Ti|1.3.224 525.116.4.0|1.3.224|525.116.4.0|
Count: 16
Flags: { Graphics | Compute | Transfer | SparseBinding }
Count: 2
Flags: { Transfer | SparseBinding }
Count: 8
Flags: { Compute | Transfer | SparseBinding }
Optional extension not found: 'VK_AMD_memory_overallocation_behavior'
Optional extension not found: 'VK_EXT_memory_priority'
Requested device extensions:
- VK_KHR_swapchain
[...]
- textureQuality: 2
- terrainTextureResolution: 2
[...]
GUI_Render_InitVulkan
CommonAPIVulkanRender
GUI_Render_InitVulkan doing SanityCheck
CommonAPIVulkanRender::Install
InitSwapchain
InitRenderPass
InitShaders
swapchain_width, swapchain_height = 2560,1440
InitSwapchain vkGetSwapchainImagesKHR
InitSwapchain vkGetSwapchainImagesKHR get real data
InitSwapchain Image Views
InitFonts
CreateFontsTexture
Font texture size: 512, 512 size = 1048576
Alles anzeigen
Ausgabe/output of nvidia-smi:
Fri May 12 15:47:20 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.116.04 Driver Version: 525.116.04 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:03:00.0 On | N/A |
| 32% 63C P0 86W / 250W | 11135MiB / 11264MiB | 100% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 3268 G /usr/bin/X 435MiB |
| 0 N/A N/A 3429 G /usr/bin/gnome-shell 15MiB |
| 0 N/A N/A 4033 C+G ...996906767014879283,131072 148MiB |
| 0 N/A N/A 8385 C+G ./TransportFever2 10489MiB |
+-----------------------------------------------------------------------------+
Alles anzeigen