You are not logged in.

#1 2023-06-13 21:06:03

orlfman
Member
Registered: 2007-11-20
Posts: 141

mangohud no longer working with vulkan games but opengl works

i don't know what happened, but about two days ago i noticed mangohud was no longer working with some of my games. it works just with opengl rendered games and glxgears. but it flat out doesn't work with anything vulkan. including vkcube.

specs:
local/mesa 23.1.2-1
local/vulkan-radeon 23.1.2-1
local/mangohud 0.6.9.1-6
local/vulkan-icd-loader 1.3.251-1

all things vulkan works, its just mangohud. i am running gnome 44 with wayland if that matters by chance. things i have tried:
mangohud steam-runtime
mangohud %command%
mangohud glxgears
mangohud vkcube
MANGOHUD=1 %command%

and tried removing my .config/MangoHud/MangoHud.conf and running with the default. nothing can get it to work with vulkan. if it matters, mangoapp doesn't work for me either. it loads up a black window and gnome after a bit asks me automatically if i wanted to force quit it or wait. i have extra/glfw-x11 3.3.8-1 [installed]. i'm not sure if thats related by chance. i'm not getting any useful output in the terminal either.

edit:
another observation, it works with dxvk. not vkcube or vkd3d. previously i only tested dx12 games since those have been the ones i've been playing recently.. but it doesn't work with valheim in vulkan mode nor satisfactory in vulkan mode or dx12 mode.

Last edited by orlfman (2023-06-14 02:45:27)

Offline

#2 2023-06-14 06:58:13

spiffeeroo
Member
Registered: 2021-04-23
Posts: 23

Re: mangohud no longer working with vulkan games but opengl works

Do you know if the Vulkan game is 32-bit or 64-bit? Does MangoHud load at all if you run mangohud vkcube? Do you have lib32-mangohud also installed with mangohud? If you uninstall lib32-mangohud and keep mangohud installed, does mangohud vkcube now work?

Arch recently updated from lib32-vulkan-icd-loader-1.3.245-1 and vulkan-icd-loader-1.3.245-1 to 1.3.251-1. Upstream Vulkan made some changes to how it loads implicit layer when it encounters two layers with the same name. For MangoHud 32-bit and 64-bit, the name was VK_LAYER_MANGOHUD_overlay for both in the latest release version (MangoHud 0.6.9.1).

The Vulkan-Loader skips attempting to load the 64-bit layer after it found the 32-bit layer to have the wrong bitness.

https://github.com/flightlessmango/MangoHud/issues/1021
https://github.com/KhronosGroup/Vulkan- … f2c0759788

MangoHud built from git master should work now for both 32-bit and 64-bit Vulkan games and displays: vulkaninfo --summary

VK_LAYER_MANGOHUD_overlay_x86     Vulkan Hud Overlay                    1.3.0    version 1
VK_LAYER_MANGOHUD_overlay_x86_64  Vulkan Hud Overlay                    1.3.0    version 1

/usr/share/vulkan/implicit_layer.d/MangoHud.x86_64.json

{
    "file_format_version" : "1.0.0",
    "layer" : {
      "name": "VK_LAYER_MANGOHUD_overlay_x86_64",
      "type": "GLOBAL",
      "api_version": "1.3.0",
      "library_path": "/usr/lib/libMangoHud.so",
      "implementation_version": "1",
      "description": "Vulkan Hud Overlay",
      "functions": {
         "vkGetInstanceProcAddr": "overlay_GetInstanceProcAddr",
         "vkGetDeviceProcAddr": "overlay_GetDeviceProcAddr"
      },
      "enable_environment": {
        "MANGOHUD": "1"
      },
      "disable_environment": {
        "DISABLE_MANGOHUD": "1"
      }
    }
}

/usr/share/vulkan/implicit_layer.d/MangoHud.x86.json

{
    "file_format_version" : "1.0.0",
    "layer" : {
      "name": "VK_LAYER_MANGOHUD_overlay_x86",
      "type": "GLOBAL",
      "api_version": "1.3.0",
      "library_path": "/usr/lib32/libMangoHud.so",
      "implementation_version": "1",
      "description": "Vulkan Hud Overlay",
      "functions": {
         "vkGetInstanceProcAddr": "overlay_GetInstanceProcAddr",
         "vkGetDeviceProcAddr": "overlay_GetDeviceProcAddr"
      },
      "enable_environment": {
        "MANGOHUD": "1"
      },
      "disable_environment": {
        "DISABLE_MANGOHUD": "1"
      }
    }
}

Offline

#3 2023-06-14 15:45:46

orlfman
Member
Registered: 2007-11-20
Posts: 141

Re: mangohud no longer working with vulkan games but opengl works

spiffeeroo wrote:

Do you know if the Vulkan game is 32-bit or 64-bit? Does MangoHud load at all if you run mangohud vkcube? Do you have lib32-mangohud also installed with mangohud? If you uninstall lib32-mangohud and keep mangohud installed, does mangohud vkcube now work?

Arch recently updated from lib32-vulkan-icd-loader-1.3.245-1 and vulkan-icd-loader-1.3.245-1 to 1.3.251-1. Upstream Vulkan made some changes to how it loads implicit layer when it encounters two layers with the same name. For MangoHud 32-bit and 64-bit, the name was VK_LAYER_MANGOHUD_overlay for both in the latest release version (MangoHud 0.6.9.1).

The Vulkan-Loader skips attempting to load the 64-bit layer after it found the 32-bit layer to have the wrong bitness.

https://github.com/flightlessmango/MangoHud/issues/1021
https://github.com/KhronosGroup/Vulkan- … f2c0759788

MangoHud built from git master should work now for both 32-bit and 64-bit Vulkan games and displays: vulkaninfo --summary

VK_LAYER_MANGOHUD_overlay_x86     Vulkan Hud Overlay                    1.3.0    version 1
VK_LAYER_MANGOHUD_overlay_x86_64  Vulkan Hud Overlay                    1.3.0    version 1

/usr/share/vulkan/implicit_layer.d/MangoHud.x86_64.json

{
    "file_format_version" : "1.0.0",
    "layer" : {
      "name": "VK_LAYER_MANGOHUD_overlay_x86_64",
      "type": "GLOBAL",
      "api_version": "1.3.0",
      "library_path": "/usr/lib/libMangoHud.so",
      "implementation_version": "1",
      "description": "Vulkan Hud Overlay",
      "functions": {
         "vkGetInstanceProcAddr": "overlay_GetInstanceProcAddr",
         "vkGetDeviceProcAddr": "overlay_GetDeviceProcAddr"
      },
      "enable_environment": {
        "MANGOHUD": "1"
      },
      "disable_environment": {
        "DISABLE_MANGOHUD": "1"
      }
    }
}

/usr/share/vulkan/implicit_layer.d/MangoHud.x86.json

{
    "file_format_version" : "1.0.0",
    "layer" : {
      "name": "VK_LAYER_MANGOHUD_overlay_x86",
      "type": "GLOBAL",
      "api_version": "1.3.0",
      "library_path": "/usr/lib32/libMangoHud.so",
      "implementation_version": "1",
      "description": "Vulkan Hud Overlay",
      "functions": {
         "vkGetInstanceProcAddr": "overlay_GetInstanceProcAddr",
         "vkGetDeviceProcAddr": "overlay_GetDeviceProcAddr"
      },
      "enable_environment": {
        "MANGOHUD": "1"
      },
      "disable_environment": {
        "DISABLE_MANGOHUD": "1"
      }
    }
}

world of warcraft (dx12 mode), diablo iv (dx12), battlefield v (dx12 mode), and satisfactory (vulkan renderer) are both 64 bit. valhelim native vulkan is 64 bit as well. removing lib32-mangohud makes mangohud work with vkcube now and all those listed games. before with lib32-mangohud installed it refused to work.
but now, games like command and conquer tiberium wars that runs with dxvk (dx9), which i now remembered is 32 bit, no longer works with mangohud with lib32-mangohud removed. thats fine though, since i have more games that are 64bit than 32bit i can wait. thank you!

edit:
so i'm guessing for whatever reason, it was loading up a 32bit overlay with 64 bit games instead of loading a 64 bit overlay with 64 bit games when you have lib32-mangohud installed.

Last edited by orlfman (2023-06-14 15:57:35)

Offline

Board footer

Powered by FluxBB