vkd3d-proton
vkd3d-proton copied to clipboard
Borderlands 3 (397540) - Damage Numbers are Rendered Incorrectly in DX12 Mode
I am having the issue described in this Steam discussion, where damage numbers do not show a K or M for thousands and millions respectively. I've tried the latest Proton-GE, Proton 7.0-4, and Proton Experimental. It occurs in all of them. According to the thread the problem is fixed in 6.5-GE-2 but the game doesn't launch for me on that version so unfortunately that's not an option for me.
The Ks and Ms do work in DX11 mode (DXVK) so that leads me to believe it is something with VKD3D and not an issue with Proton itself and the problem is probably purely graphical/rendering related. Unfortunately I don't think this is something that shows up in an error log anywhere so I'm not sure how to go about diagnosing the cause.
System Information:
OS: Arch Linux
CPU: AMD Ryzen 9 5900X
GPU: AMD Radeon RX 6800XT
Driver Version: Mesa 22.2.1
Kernel Version: 6.0.7.zen1
Can you post some screenshots?
DXVK:
VKD3D:
I had never actually done a comparison like this but it seems the K is actually turning into a 7 which is even more strange than if it didn't show up at all. No wonder I was so confused about my damage.
Can you explain how to reproduce this in-game as easily as possible, assuming you're talking to someone that knows nothing about the game? Maybe a save game would also be helpful.
You could also try to record a renderdoc capture. For that, you would install the renderdoc package from the AUR, start the game with ENABLE_VULKAN_RENDERDOC_CAPTURE=1 %command%
as launch option in steam, and then capture a frame that shows the issue with F12. The capture will be in /tmp somewhere.
When doing large amounts of damage to an enemy, if you do over a certain amount the numbers appearing will convert to K for thousands and M for millions. So instead of saying "35432" it will just say "35K". In VKD3D that same value would display as "357" instead. For damage in the millions the M is omitted entirely in VKD3D so instead of seeing "18M" there will just be an "18." The actual damage being dealt to enemies is still correct so it is purely visual.
In my screenshots I shot the dummy in the main hub area but shooting any enemy with high level weapons will trigger the bug. At max level even the weakest weapons do damage in the thousands so the bug is very noticeable. Here is my game save. Saves are stored in SteamLibrary/steamapps/compatdata/397540/pfx/drive_c/users/steamuser/My Documents/My Games/Borderlands 3/Saved/SaveGames
. Shoot any enemy in DX11, and then again in DX12 for the easiest comparison of what it should look like.
As for the RenderDoc capture, it is over 3GiB so I've zipped it and uploaded it to Google Drive. I hope that's alright. When I tried to open it I got nothing but a black screen but hopefully someone else can get some useful data out of it.