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

Borderlands3: Very low performance compared to Windows

Open pingubot opened this issue 2 years ago • 3 comments

Hi,

i did a performance test of BL3 on windows vs vkd3d (0e216b2b10f1835e2dc2769a77f9916a890ed669) + Budget_bar pr applied.

System:    Host: gamebox Kernel: 5.13.12-tkg-idlefix x86_64 bits: 64 compiler: gcc v: 11.1.1 Desktop: KDE Plasma 5.22.5 
           tk: Qt 5.15.2 wm: kwin_x11 dm: SDDM Distro: openSUSE Tumbleweed 20210913 
CPU:       Info: 8-Core model: AMD Ryzen 7 3700X bits: 64 type: MT MCP arch: Zen 2 rev: 0 cache: L2: 4 MiB 
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm bogomips: 115089 
           Speed: 2196 MHz min/max: 2200/3600 MHz boost: enabled Core speeds (MHz): 1: 2196 2: 2195 3: 2198 4: 2195 5: 2194 
           6: 2195 7: 2196 8: 2089 9: 2195 10: 2195 11: 2195 12: 2205 13: 2195 14: 2195 15: 2195 16: 2195 
Graphics:  Device-1: Advanced Micro Devices [AMD/ATI] Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] driver: amdgpu v: kernel 
           bus-ID: 0a:00.0 chip-ID: 1002:73bf 
           Display: x11 server: X.Org 1.20.13 compositor: kwin_x11 driver: loaded: amdgpu resolution: 3440x1440~120Hz 
           s-dpi: 96 
           OpenGL: renderer: AMD Radeon RX 6900 XT (SIENNA_CICHLID DRM 3.41.0 5.13.12-tkg-idlefix LLVM 12.0.1) 
           v: 4.6 Mesa 21.2.1 direct render: Yes 

RBAR is on on my system.

Radv Version: 138463d3c3e3134aa43863ac8a5a18e60b9cb43a

Game Resolution: 3440x1440 Game Quality Setting: Ultra

The ingame benchmark results are.

Windows 10: ~110fps VKD3D: ~70fps

both fully gpu limited.

The ultra mode is really taxing, but i have no idea why the perf gap is the huge in that game.

Many thx, Christian

pingubot avatar Sep 16 '21 17:09 pingubot

Did a more extensive test on RX 6800, for reference, with ReBAR enabled:

1440p:

Windows: 100% res scale - high: 127.67 fps - 7.832 ms 100% res scale - ultra: 108.92 fps - 9.181 ms 200% res scale - high: 39.15 fps - 25.543 ms 200% res scale - ultra: 35.79 fps - 27.94 ms

vkd3d-proton: 100% res scale - high: 100.5 fps - 9.95 ms 100% res scale - ultra: 82.21 fps - 12.164 ms 200% res scale - high: 30.76 fps - 32.51 ms 200% res scale - ultra: 28.16 fps - 35.51 ms

This is a pretty big delta.

HansKristian-Work avatar Nov 18 '21 14:11 HansKristian-Work

Also, perf results are very similar for DXVK and vkd3d-proton when GPU bound, it's not an vkd3d-proton issue in isolation.

HansKristian-Work avatar Nov 18 '21 14:11 HansKristian-Work

From analysis of a capture, the game is rendering in an extremely inefficient way. Over 150 render passes, with barriers in between ping-ponging between COLOR -> SHADER_READ -> COLOR, once per draw call. I can only assume the AMD drivers added app-opt hacks to work around this somehow, but I'm not particularly stoked about spending more time on this issue.

HansKristian-Work avatar Nov 18 '21 15:11 HansKristian-Work