Forums » Bugs

Linux Vulkan Renderer - Dynamic Lights causes massive drop in FPS on RADV

Oct 11, 2023 darknessrise13 link
System information: Asus Zephyrus G14 GA401QM
Ryzen R9 5900HS
iGP Radeon RX Vega 8
dGPU Nvidia GTX 3060 Mobile
24GB DDR4
Fedora 38
Kernel: 6.5.6-200.fc38.x86_64
Gnome 44.5
Mutter on Wayland
4k display with 150% scaling, effective resolution of 1440p. Game is run at 1440p. Issue persists at 1080p as well.

When running the game on the Vulkan renderer on the integrated GPU, when dynamic lights are set past level 2 (only other option is 10), the in-game menus drop to anywhere between 1 and 5 fps. This makes moving the cursor next to impossible to do accurately. I have verified which settings caused this by individually decreasing dynamic lights til disabled, then altering shadows on and off for each dynamic lighting setting. I then did the same on OpenGL 4 renderer, my normal rendering driver. This issue is not present when the game is rendered on the RTX 3060.

Side note for this issue: When dynamic lights are enabled on OpenGL 4, docking stations cause a huge drop in FPS on the integrated GPU. On Vulkan, it drops to nearly a slideshow. Unsure if this is past the capability of the GPU or if there is a particular shader functionality causing this. Vulkan seems to run far more smoothly in any other capacity in my current testing.

Another bug I noticed with the Vulkan renderer with any dynamic lighting setting: With VSYNC turned off, the entire game slows to a crawl randomly but frequently. FPS jumps wildly between 1 and 90.

Let me know if any other scenarios should be tested for these. Vulkan does seem to fix the corrupted textures bug when changing video options. OpenGL 4 and Reference driver both become a rainbow of corrupted textures after changing *ANY* video setting until the game is restarted. Vulkan also enables proper windowed mode (thank god).

Edit: One scenario I encountered when disabling my dedicated GPU after it was set as the rendering device, the renderer was defaulted to LLVMPipe. This made the game a slideshow at the login screen, rendering it near impossible to get to the menu to change the rendering device. I would suggest, if possible, not allowing the game to set rendering to LLVMpipe.
Oct 11, 2023 darknessrise13 link
https://youtu.be/GnmVJRXwCBU 1080p internal display, 10 dynamic lights, Vulkan

https://youtu.be/ee-4h_k50h4 1080p windowed, external display, 10 dynamic lights, Vulkan

https://youtu.be/hKlghZbtmME 1440p windowed, external display, 10 dynamic lights, Vulkan

https://youtu.be/ZXtSKqa4-Rg 1440p windowed, external display, 2 dynamic lights, Vulkan

https://youtu.be/SDYjurRFzkQ 1440p windowed, external display, 0 dynamic lights, Vulkan

https://youtu.be/BQWe6hOe3cI 1440p, windowed, external display, 10 dynamics lights THEN 2, OpenGL. This has a pause between settings changes. As you can see before the pause, OpenGL settings changes causes the textures to go haywire. OpenGL does not seem to reflect the same menu lags, but does still reflect the dynamic lighting lag within docking stations.

All tests were performed on the internal GPU, RX Vega 8 (Renoir) - Will edit with some testing done with GNOME scaling enabled. See VO #General Discord for scaling comment. GNOME scaling seems to make the game crash when attempting to open.
Oct 11, 2023 darknessrise13 link
https://youtu.be/gN9NoLjmATs 1440p external display, 3840x2160 scaled at 150% using GNOME, this was taken with GNOME screencast. OBS absolutely refused to record this due to the scaling. It does reflect the lag in the menus but it is exaggerated due to the screencast software. Grain of salt here or disregard entirely. My current observation is that GNOME's scaling affects things in a very negative fashion.
Oct 13, 2023 incarnate link
There were some significant Linux updates yesterday, please let us know if these problems still occur for you?
Oct 16, 2023 darknessrise13 link
Confirming dynamic lights do not break everything now. RADV on Vega 8 Mobile, 10 dynamic lights, solid 60fps. Even at a docking station. I will update if I see anything else.