protonscr

Borderlands GOTY Enhanced massive performance drop rendering particle effects

dxvkclosed performance
doitsujin/dxvk#1012 · opened 2019-04-13 by lavadrop · updated 2022-03-16 · 10 comments · github
Llavadrop 2019-04-13 github

When playing the Island of Dr. Ned DLC, having more than 2 particle effects on screen impacts performance heavily.
I'm getting 60 fps normally, but when the games renders fire or lightning, my performance drops to 14 FPS. The issue can be triggered easily when shooting bats on the beach with a shock weapon.
I did an apitrace but apitrace makes Borderlands hang right after launching. All I could do is get Proton logs all the way to the bug.

Software information

Borderlands GOTY Enhanced. 729040.
Custom graphics level, Borderless window, 2560*1080 60Hz, VSync On, Pause game on focus On, Framerate locking off, 16x Anisotropic filtering, FXAA on, Dynamic shadows on, Ultra shadow detail, bullet decals on, Foliage Texture and Detail High, Ambient occlusion Bloom DOF Flare outs ON, Level of detail High.

System information

  • GPU: RX 580
  • Driver: DRM 3.27.0, 5.0.2-050002-generic, LLVM 9.0.0, OpenGL 4.5 (Compatibility Profile) Mesa 19.1.0-devel - padoka PPA
  • Wine version: Proton 4.2-2
  • DXVK version: 1.0.1

Apitrace file(s)

Log files

Ddoitsujin maintainer 2019-04-13 github

And that is 100% a DXVK bug and doesn't happen on Windows? Particle effects are inherently slow due to overdraw, so 15 FPS are kind of expected at your resolution when the entire screen is covered with them.

I also can't do anything without a working apitrace.

Llavadrop 2019-04-13 github

I have no idea, I don't have Windows.
Is there any other way to get apitrace to work? I've tried running the Ubuntu repository apitrace but I can't get it to record anything.

Ddoitsujin maintainer 2019-04-13 github

See https://github.com/doitsujin/dxvk/wiki/Common-issues#apitrace on how to apitrace stuff. If that doesn't work, you're kind of screwed.

Llavadrop 2019-04-13 github

I did exactly that and I can't even reach the title screen.

Ddoitsujin maintainer 2019-04-13 github

Since you're using almost the same GPU as me you could also try RenderDoc, assuming that the game is 64-bit - just install it and put ENABLE_VULKAN_RENDERDOC_CAPTURE=1 %command% into the Steam launch options and hit F12 as soon as the problem starts occuring, it'll then create a .rdc file in /tmp/RenderDoc.

Not quite as useful since it hides the D3D11 side of things entirely, but maybe it shows something.

Llavadrop 2019-04-21 github

I’ll try that

EErikEklund 2019-05-16 github

Seen similar issues in World of Warcraft. Windows has silky smooth 60 fps with some boss particle effect covering the screen, Wine without DXVK runs slow (30-ish I seem to remember) but not a major slowdown with the same effect (a few fps), and DXVK runs 60 fps smooth until particle effects come and then drops to < 5 fps. All on the same hardware. I do suspect there is some dxvk-specific slowdown.

Ddoitsujin maintainer 2019-05-16 github

@ErikEklund Assuming that you're on RADV, does enabling dxvk.useEarlyDiscard = True in dxvk.conf (see wiki) help?

In general, there's absolutely nothing I can do to optimize alpha blending performance, and there is also nothing wrong with it in DXVK or the RADV driver. The gfxbench alpha blending tests run at the same performance as with the native D3D11 driver.

BBlisto91 2022-03-16 github

Unless the original author complains then i think this one can be closed.
I have not been able to reproduce this on my R9 380 with mesa 21.3.7. And that's even with me trying to go all the way back to dxvk 1.0.3 to test.

This game has this other issue where when i set vsync on or fps limiter below 100 i can get horrible fps drops (and dxvk hud shows gpu utilization going down to one digit) when i move my mouse around. And even shows in game selection menu since it has vsync on i think. When i turn off vsync and set fps limiter to unlimited it seems fine ingame.
This does not happen on windows. But it also doesn't happen on windows with dxvk, so i think that is another issue.

Edit: Actually scratch the last part. That issue seems to go away completely when the game is launched in gamemode

Proton versions

Launch lines