Dxvk: NonReadable must be set on write-only storage images

Created on 28 Jun 2018  ·  4Comments  ·  Source: doitsujin/dxvk

When DXVK uses a write-only storage image, it needs to set the NonWriteable decoration. The Vulkan 1.1.78 spec, Appendix A, "Images and Samplers", says,

If shaderStorageImageReadWithoutFormat is not enabled and an OpTypeImage has “Image Format” operand of Unknown, any variables created with the given type must be decorated with NonReadable.

This missing decoration is causing misrendering of Skyrim on Intel. We don't support shaderStorageImageReadWithoutFormat and depend on that decoration for proper descriptor set setup. I hacked up the driver to implicitly set the decoration on all images with an unknown format and it fixes all the rendering issues in Skyrim.

Software information

Skyrim Special Edition

System information

  • GPU: Intel Skylake GT4e
  • Driver: Intel Vulkan driver, Mesa 18.1.0
bug

Most helpful comment

@MrChebik I just pushed an optimization to mesa master which helps Skyrim out massively:

https://gitlab.freedesktop.org/mesa/mesa/commit/06412bfc9869247f33b6bba8e256cf33f71f6973

It's still not going to run great on a Broadwell GT2 but it'll be a lot better than it is now.

All 4 comments

Thanks for the detailed report, c370eea9486445ea1ca97fc85eff47179cc3e605 should fix this - please let me know whether that works.

Wow! Thank you, I do not know whether this fixed issues in Murdered: Soul Suspect.
But since 0.61, in game works _HDAO_ and in some places, the game has not artifacts when the character / environment turns white gradient.

--
Amazing! This removed green dots in Skyrim SE, but I still have 4-5 fps in game.

@MrChebik I just pushed an optimization to mesa master which helps Skyrim out massively:

https://gitlab.freedesktop.org/mesa/mesa/commit/06412bfc9869247f33b6bba8e256cf33f71f6973

It's still not going to run great on a Broadwell GT2 but it'll be a lot better than it is now.

@jekstrand Thank you! I wish you success!

--
FPS increased to 24-30, sometimes there are jerks of the image.
@jekstrand Do you get a VK_ERROR_DEVICE_LOST error after some time? In my case, it occurs after a minute of driving on a wagon.

Was this page helpful?
0 / 5 - 0 ratings