protonscr

Borderlands 3 stuttering

dxvkclosed game bug
doitsujin/dxvk#3561 · opened 2023-07-12 by adolfotregosa · updated 2023-07-22 · 21 comments · github
Aadolfotregosa 2023-07-12 github

Guys, I'm trying, really trying but I don't know what more to do, I mean I know but..

The only way to stop the game from stuttering Is to use dxvk_async version. I tried normal dxvk all the way from 1.10 to 2.2 and t's kinda of unplayable without async working.

Any suggestions besides pray that dxvk_async keeps living?

Thank you

Nvidia card over here if that matters, don't think it does but I'll mention it.

KK0bin maintainer 2023-07-12 github

Please provide logs and information about your system. The stuff that was in the issue template before you deleted it.

BBlisto91 2023-07-12 github

I gather this might just be how the game behaves even on Windows and just have draw time shader compilation? If so there's not so much dxvk can do besides what it already does. Outside if you using the async versions that is.
You could try the d3d12 version and see if that behaves any better

Note that the Nvidia 535.54.03 driver currently have a bug with the shader cache so it doesn't work properly.

Aadolfotregosa 2023-07-12 github

Yeah, I "agree". Borderlands 3 "stutters" but not like this. The game with dxvk_async plays like on windows with my hardware.

  • GPU: 3090
  • Driver: 535.54.03 open
  • Wine version: used proton 7 and 8
  • DXVK version: from 1.10 to 2.2
  • AMD 5950x + 32Gb Ram + nvme 980pro

Latest everything arch+i3.

What logs do you need ?

Have a look at these videos. I know dxvk version is not the same but believe me, it doesn't matter for showing stutters, at least for me. DX12 version is a stutter mess also. Older versions of nvidia driver was not better as far I remember. I always went dxvk_aync route but since dxvk_async seams to be a in danger specie... I'm asking for ideas.

https://tregosacloud.duckdns.org/s/Qor9789WtPLGTsk

KK0bin maintainer 2023-07-13 github

Okay, VK_EXT_graphics_pipeline_libraries are supported by your driver and the video shows them working.

So whats happening here is most likely simply Unreal Engine 4. The engine doesn't give DXVK (or any other graphics driver) enough time to compile shaders.

Aadolfotregosa 2023-07-13 github

Okay, VK_EXT_graphics_pipeline_libraries are supported by your driver and the video shows them working.

So whats happening here is most likely simply Unreal Engine 4. The engine doesn't give DXVK (or any other graphics driver) enough time to compile shaders.

But remember , under windows it plays like dxvk_async so that thought does not seam correct, says me thinking out loud. Hopefully something can be done so dxvk_async is not needed.

BBlisto91 2023-07-13 github

I don't know how much can realisticly be done from dxvk's side so I'll let the devs comment on that.

At the moment I think it is expected that it won't be as fast as on Windows, at least on Nvidia. AMD radv will probably fare very well in comparison to Windows just because ACO is so impressive. I don't know how Nvidias Vulkan compiler fares against their Direct3D, if there even is a difference.

Aadolfotregosa 2023-07-13 github

I don't know how much can realisticly be done from dxvk's side so I'll let the devs comment on that.

At the moment I think it is expected that it won't be as fast as on Windows, at least on Nvidia. AMD radv will probably fare very well in comparison to Windows just because ACO is so impressive. I don't know how Nvidias Vulkan compiler fares against their Direct3D, if there even is a difference.

I would but I can't go amd route unless they finally, I mean finally enable hdmi 2.1 under linux. Probably September it seams but honestly I'm not holding my breath on that one. I had a 6900xt before changing to 3090 to have hdmi 2.1 under linux. The game in windows plays like async so something works better over there. I mean, if it only stuttered once and next time it would be stutter free It would be "fine" (compromise) but unfortunately that's not the case.

Mmbriar 2023-07-13 github

There is no point to switch to AMD for this, even ACO isn't as fast as nvidia's d3d11 shader compiler and still has noticeable stutters in a bunch of UE4 games.

Aadolfotregosa 2023-07-13 github

These are for me the three compelling things to change to amd, gamescope with vrr, hdr and upscaling everywhere. FSR everywhere also died with the launch of proton 8.

Edit: FSR returned with proton-ge 8.7, nice. Thank you Ph42oN

Xxpander69 2023-07-17 github

I think you should be able to do the regular UE4 trick for this game, if its not enabled by default:

to enable compiling of shaders in pre-game menu or during loading screens with graphics pipeline library

edit
Engine.ini
located somewhere at:
~/pfx/drive_c/users/username/AppData/Local/gamename/Saved/Config/WindowsNoEditor/

Add
[/script/engine.renderersettings]
r.CreateShadersOnLoad=1
niagara.CreateShadersOnLoad=1

Aadolfotregosa 2023-07-17 github

I think you should be able to do the regular UE4 trick for this game, if its not enabled by default:

to enable compiling of shaders in pre-game menu or during loading screens with graphics pipeline library

edit Engine.ini located somewhere at: ~/pfx/drive_c/users/username/AppData/Local/gamename/Saved/Config/WindowsNoEditor/

Add [/script/engine.renderersettings] r.CreateShadersOnLoad=1 niagara.CreateShadersOnLoad=1

Well I'm trying, the path seams to be: ...SteamLibrary/steamapps/compatdata/397540/pfx/drive_c/users/steamuser/Documents/My Games/Borderlands 3/Saved/Config/WindowsNoEditor/Engine.ini
but everytime I start the game the file gets re-writen. Making it read-only makes it stick but I don't see any difference!

Mmbriar 2023-07-17 github

There are UE4 games where you can't change any of the settings in the Engine.ini without some "unlocker" mod or where the trick from above just doesn't help. Not sure what the case is with BL3.

Xxpander69 2023-07-17 github

Hmm.. Maybe ther's some other Engine.ini somewhere that gets applied instead. No idea about this specific game, but it generally helps a lot with many UE4 games.

Aadolfotregosa 2023-07-17 github

Hmm.. Maybe ther's some other Engine.ini somewhere that gets applied instead. No idea about this specific game, but it generally helps a lot with many UE4 games.

If there is one, I'm not finding it.

BBananaWorks07 2023-07-21 github

doesn't the 535 driver have shader cache issues? (so it's obviously going to end up stuttering?)

Xxpander69 2023-07-21 github

doesn't the 535 driver have shader cache issues? (so it's obviously going to end up stuttering?)

535.86.05 seems to have fixed it. Though the gpl should take care of the most stutters anyway, even if the shader cache isn't working. But UE4 games are known to have some stutters still ofc.
535.54.04 ones had issues yes.

BBananaWorks07 2023-07-21 github

doesn't the 535 driver have shader cache issues? (so it's obviously going to end up stuttering?)

535.86.05 seems to have fixed it. Though the gpl should take care of the most stutters anyway, even if the shader cache isn't working. But UE4 games are known to have some stutters still ofc. 535.54.04 ones had issues yes.

yeah so I think this issue needs a retest :)

Aadolfotregosa 2023-07-21 github

I will retest in a few hours. My past experience has been that only async removed the stutters but ill give it a shot.

Aadolfotregosa 2023-07-22 github

I re tested with driver 535.86.05 with proton-ge-8.8 and indeed the stutters are gone. I still feel dxvk_async is better but it could be the brain playing tricks but I'll close the issue for now.
Thank you guys !

BBlisto91 2023-07-22 github

Good to hear. 🎉
Then I'm guessing that older drivers (510 and after) should have worked fine as the 535.86.06 driver fix is just for a regression in 535.54.04. 🙂

Aadolfotregosa 2023-07-22 github

Good to hear. tada Then I'm guessing that older drivers (510 and after) should have worked fine as the 535.86.06 driver fix is just for a regression in 535.54.04. slightly_smiling_face

Unless I was not doing something correctly, I didn't over here. Had to use dxvk_async

Nothing extracted yet.