vkd3d-proton icon indicating copy to clipboard operation
vkd3d-proton copied to clipboard

Borderlands 3 (397540) - Damage Numbers are Rendered Incorrectly in DX12 Mode

Open TheFeelTrain opened this issue 1 year ago • 4 comments

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

TheFeelTrain avatar Nov 06 '22 23:11 TheFeelTrain

Can you post some screenshots?

K0bin avatar Nov 07 '22 00:11 K0bin

DXVK: Screenshot_20221107_063109

VKD3D: Screenshot_20221107_062827-1

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.

TheFeelTrain avatar Nov 07 '22 14:11 TheFeelTrain

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.

mbriar avatar Nov 07 '22 18:11 mbriar

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.

TheFeelTrain avatar Nov 07 '22 23:11 TheFeelTrain