nowrep / obs-vkcapture

OBS Linux Vulkan/OpenGL game capture
GNU General Public License v2.0
508 stars 25 forks source link

Capture just showing black frames #138

Closed mmbossoni closed 1 year ago

mmbossoni commented 1 year ago

Unfortunately I don't have better words or more info to describe it. It used to work flawlessly, but I don't know which recent changes (in my system even) might have introduced the bug. App being used to test: Jedi: Fallen order and vkcube VK_LOADER_DEBUG=all OBS_VKCAPTURE=1 MANGOHUD=1 vkcube

It also doesn't work without mangohud, so it is not into play here.

VK_LOADER_DEBUG

INFO | DRIVER:    linux_read_sorted_physical_devices:
INFO | DRIVER:         Original order:
INFO | DRIVER:               [0] NVIDIA GeForce GTX 1070
INFO | DRIVER:         Sorted order:
INFO | DRIVER:               [0] NVIDIA GeForce GTX 1070  
DEBUG | DRIVER:   Copying old device 0 into new device 0
INFO | DRIVER:    linux_read_sorted_physical_devices:
INFO | DRIVER:         Original order:
INFO | DRIVER:               [0] NVIDIA GeForce GTX 1070
INFO | DRIVER:         Sorted order:
INFO | DRIVER:               [0] NVIDIA GeForce GTX 1070  
DEBUG | DRIVER:   Copying old device 0 into new device 0
Selected GPU 0: NVIDIA GeForce GTX 1070, type: DiscreteGpu
INFO | LAYER:     Inserted device layer "VK_LAYER_OBS_vkcapture_64" (/usr/lib/libVkLayer_obs_vkcapture.so)
INFO | LAYER:     Inserted device layer "VK_LAYER_MANGOHUD_overlay" (/usr/lib/mangohud/libMangoHud.so)
DRIVER | LAYER:   vkCreateDevice layer callstack setup to:
DRIVER | LAYER:      <Application>
DRIVER | LAYER:        ||
DRIVER | LAYER:      <Loader>
DRIVER | LAYER:        ||
LAYER:               VK_LAYER_MANGOHUD_overlay
LAYER:                       Type: Implicit
LAYER:                           Disable Env Var:  DISABLE_MANGOHUD
LAYER:                       Manifest: /usr/share/vulkan/implicit_layer.d/MangoHud.x86_64.json
LAYER:                       Library:  /usr/lib/mangohud/libMangoHud.so
LAYER:                 ||
LAYER:               VK_LAYER_OBS_vkcapture_64
LAYER:                       Type: Implicit
LAYER:                           Disable Env Var:  DISABLE_OBS_VKCAPTURE
LAYER:                       Manifest: /usr/share/vulkan/implicit_layer.d/obs_vkcapture_64.json
LAYER:                       Library:  /usr/lib/libVkLayer_obs_vkcapture.so
LAYER:                 ||
DRIVER | LAYER:      <Device>
DEBUG | DRIVER:   vkCreateDevice extension VK_KHR_get_physical_device_properties2 not available for devices associated with ICD libGLX_nvidia.so.0
DRIVER | LAYER:          Using "NVIDIA GeForce GTX 1070" with driver: "libGLX_nvidia.so.0"

OBS Log

info: - scene 'Cena':
info:     - source: 'Game Capture' (vkcapture-source)
info: ------------------------------------------------
info: [linux-vkcapture] Creating texture from dmabuf 500x500 modifier:216172782119018516
info: [linux-vkcapture]  [0] fd:42 stride:2048 offset:0
error: Cannot create EGLImage: One or more argument values are invalid.
warning: [linux-vkcapture] Asking client to create texture without modifiers
info: [linux-vkcapture] Creating texture from dmabuf 500x500 modifier:72057594037927935
info: [linux-vkcapture]  [0] fd:43 stride:2016 offset:0
error: Cannot create EGLImage: One or more argument values are invalid.
warning: [linux-vkcapture] Asking client to create texture linear
info: [linux-vkcapture] Creating texture from dmabuf 500x500 modifier:0
info: [linux-vkcapture]  [0] fd:42 stride:2016 offset:0
error: Cannot create EGLImage: One or more argument values are invalid.
error: [linux-vkcapture] Could not create texture from dmabuf source

Kernel: 6.2.8-arch1-1 nvidia-dkms: 530.41.03-1 egl-wayland-git: 1.1.11.r15.g30c5a95-1

EDIT: running on wayland + KDE X11 seems to be doing just fine

nowrep commented 1 year ago

I would assume it was the nvidia driver update.

mmbossoni commented 1 year ago

Downgraded to 525.89.02 Still nothing.

mmbossoni commented 1 year ago

Went back to kernel 6.1 and nvidia 520 series... Feels like this is something on wayland/mesa side maybe...

mmbossoni commented 1 year ago

User error: obs on arch don't pull qt6-wayland as dependency. Installing it fixed everything.