protonscr

Deus Ex Mankind Divided: Corruption when moving the cursor over menu items

vkd3dclosed
HansKristian-Work/vkd3d-proton#423 · opened 2020-11-26 by Oschowa · updated 2021-04-20 · 6 comments · github
OOschowa 2020-11-26 github
  • Proton 5.13-2
  • RX580, latest RADV
  • vkd3d-proton 9cd082d

Video demonstration:
https://drive.google.com/file/d/1q45tTavVGH4NMZmC3GXpysHo8Cg6lL4z/view?usp=sharing

VKD3D_DEBUG=trace log
https://drive.google.com/file/d/1Ti-HtQ2XHVY6gcG_I-Q08b63QeqclgyQ/view?usp=sharing

The game crashes when started with VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation without any relevant log output..

This is a regression and 49d3fa30a79d65e69d3f39d3b4cccf06d0e512a8 is the first bad commit.
Setting VKD3D_CONFIG=force_bindless_texel_buffer makes the issue go away.

Curiously, a very similar corruption can be observed with DEATH STRANDING on on the vkd3d-proton version shipped by proton 5.13-2 by default or vkd3d-proton 9cd082d when setting VKD3D_CONFIG=skip_application_workarounds:
https://drive.google.com/file/d/1RwoZULq1-dKtTnNzxbFBnZkt02Kbw3ub/view?usp=sharing

HHansKristian-Work maintainer 2020-11-26 github

Are you absolutely sure 49d3fa3 is the first bad commit? Did you try using the previous commit to sanity check? It does not make sense as that commit does nothing on RADV.

OOschowa 2020-11-26 github

No, seems like i was a bit hasty, sorry.
But it does indeed happen on both 49d3fa3 and the previous commit.
I made double sure that VKD3D_CONFIG=force_bindless_texel_buffer actually fixes it though.
I'm also 99% sure that this is a regression since i've been testing DXMD with vkd3d regularly and only noticed that recently, but it seem like i need to do a better bisect..

OOschowa 2020-11-26 github

OK, new bisection results - I tried my best to make sure they are reliable:
eed4f54a80e85e34f2e1524f664c88e4efd9d735 - bad, corruption present
0801b0d55f48abae95eb6d74875c16b946f16a44 -good

HHansKristian-Work maintainer 2020-11-26 github

Ok, that makes sense. I guess the game is buggy then :\ Seems to be a trend.

OOschowa 2020-12-07 github

Seems to be fixed when VK_VALVE_mutable_descriptor_type is used. I tested with latest vkd3d-proton, radv and a patched winevulkan and the corruption is gone without any additional overrides.
Double checked that it's used in the log:
452:info:vkd3d_bindless_state_get_bindless_flags: Device supports VK_VALVE_mutable_descriptor_type.

and setting VKD3D_DISABLE_EXTENSIONS=VK_VALVE_mutable_descriptor_type make the corruption re-appear.

OOschowa 2021-04-20 github

Can't reproduce on master anymore.