Code Monkey home page Code Monkey logo

obs-vkcapture's People

Contributors

cheako avatar conan-kudo avatar darkbasic avatar davidebeatrici avatar dnaka91 avatar gabuscuv avatar johnnynator avatar lucassnatiago avatar mkljczk avatar mrintrepide avatar nm004 avatar nowrep avatar oceans2000 avatar postnozet avatar scaledteam avatar sekhat avatar sunnjek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

obs-vkcapture's Issues

obs-vkcapture doesn't capture colours correctly in some cases

In some cases, obs-vkcapture does not capture colours correctly. A good example is Call Of Duty: Black Ops 2, where vkcapture captures this image
2022-01-14_19-36
when this is what is actually on my screen
2022-01-15_22-25

A similar issue appears in DOOM Eternal with vkBasalt. To get vkcapture to load after vkBasalt, so that it actually captures the image with the effect applied, I launch the game with
VK_INSTANCE_LAYERS=VK_LAYER_vkbasalt:VK_LAYER_OBS_vkcapture_64
which results in vkcapture capturing this image
2022-01-14_16-36
when this is what is actually on my screen
2022-01-14_16-31

Plans to provide a higher level user experience?

If this plugin aimed to match the ease-of-use of "Game capture" in Windows, it would start recording for all games by default (Vulkan and OpenGL) and present a dropdown menu in the "Game capture" source in OBS to pick a game.

Currently this addon is amazing, but to gain more mainstream usage it would probably (?) need to be even simpler to set up and use. At some point it might even be bundled with OBS by default 🤞

Is this on the roadmap, or is it out of scope for this project?

Cannot get OBS to show "Game Capture" Option

Hello,

Thank you for this awesome plugin. I am on Gentoo, I manually installed OBS from git with cmake and co. My game runs fine with obs-vkcapture but I unfortunately cannot seem to have OBS show me the "Game Capture" option.

~ cd obs-vkcapture 
➜  obs-vkcapture git:(master) git clean -fdx
Removing build/
➜  obs-vkcapture git:(master) mkdir build
➜  obs-vkcapture git:(master) cd build
➜  build git:(master) cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_DATADIR=/share .. 
-- The C compiler identification is GNU 10.3.0
-- The CXX compiler identification is GNU 10.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Vulkan: /usr/lib64/libvulkan.so  
-- Configuring done
-- Generating done
-- Build files have been written to: /home/adel/Documents/Gethings/obs-vkcapture/build
➜  build git:(master) make
[ 11%] Building C object CMakeFiles/VkLayer_obs_vkcapture.dir/src/vklayer.c.o
[ 22%] Building C object CMakeFiles/VkLayer_obs_vkcapture.dir/src/capture.c.o
[ 33%] Linking C shared module libVkLayer_obs_vkcapture.so
[ 33%] Built target VkLayer_obs_vkcapture
[ 44%] Building C object CMakeFiles/obs_glcapture.dir/src/glinject.c.o
[ 55%] Building C object CMakeFiles/obs_glcapture.dir/src/glad/glad.c.o
[ 66%] Building C object CMakeFiles/obs_glcapture.dir/src/capture.c.o
[ 77%] Linking C shared module libobs_glcapture.so
[ 77%] Built target obs_glcapture
[ 88%] Building C object CMakeFiles/linux-vkcapture.dir/src/vkcapture.c.o
/home/adel/Documents/Gethings/obs-vkcapture/src/vkcapture.c: In function ‘vkcapture_source_video_tick’:
/home/adel/Documents/Gethings/obs-vkcapture/src/vkcapture.c:118:13: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  118 |             write(ctx->clientfd, &b, 1);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
[100%] Linking C shared module linux-vkcapture.so
[100%] Built target linux-vkcapture
➜  build git:(master) sudo make install
Password: 
Consolidate compiler generated dependencies of target VkLayer_obs_vkcapture
[ 33%] Built target VkLayer_obs_vkcapture
Consolidate compiler generated dependencies of target obs_glcapture
[ 77%] Built target obs_glcapture
Consolidate compiler generated dependencies of target linux-vkcapture
[100%] Built target linux-vkcapture
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/lib/obs-plugins/linux-vkcapture.so
-- Set runtime path of "/usr/lib/obs-plugins/linux-vkcapture.so" to ""
-- Up-to-date: /usr/share/obs/obs-plugins/linux-vkcapture/locale/cs-CZ.ini
-- Up-to-date: /usr/share/obs/obs-plugins/linux-vkcapture/locale/en-US.ini
-- Installing: /usr/lib/libVkLayer_obs_vkcapture.so
-- Installing: /usr/lib/libobs_glcapture.so
-- Installing: /usr/share/vulkan/implicit_layer.d/obs_vkcapture_64.json
-- Up-to-date: /usr/bin/obs-vkcapture
-- Up-to-date: /usr/bin/obs-glcapture
➜  build git:(master) OBS_USE_EGL=1 obs
Attempted path: share/obs/obs-studio/locale/en-US.ini
Attempted path: /usr/local/share/obs/obs-studio/locale/en-US.ini
Attempted path: share/obs/obs-studio/locale.ini
Attempted path: /usr/local/share/obs/obs-studio/locale.ini
Attempted path: share/obs/obs-studio/themes/Dark.qss
Attempted path: /usr/local/share/obs/obs-studio/themes/Dark.qss
info: Using EGL/X11
info: CPU Name: AMD Ryzen 7 3700X 8-Core Processor
info: CPU Speed: 3600.000MHz
info: Physical Cores: 8, Logical Cores: 16
info: Physical Memory: 32097MB Total, 10613MB Free
info: Kernel Version: Linux 5.11.16-tkg-pds
info: Distribution: Gentoo Unknown
info: Session Type: x11
info: Window System: X11.0, Vendor: The X.Org Foundation, Version: 1.20.11
info: Portable mode: false
Attempted path: share/obs/obs-studio/themes/Dark/no_sources.svg
Attempted path: /usr/local/share/obs/obs-studio/themes/Dark/no_sources.svg
QMetaObject::connectSlotsByName: No matching signal for on_tbar_position_valueChanged(int)
QMetaObject::connectSlotsByName: No matching signal for on_actionShowTransitionProperties_triggered()
QMetaObject::connectSlotsByName: No matching signal for on_actionHideTransitionProperties_triggered()
info: OBS 59603f4 (linux)
info: ---------------------------------
info: ---------------------------------
info: audio settings reset:
	samples per sec: 48000
	speakers:        2
info: ---------------------------------
info: Initializing OpenGL...
info: Loading up OpenGL on adapter AMD AMD Radeon RX 5700 XT (NAVI10, DRM 3.40.0, 5.11.16-tkg-pds, LLVM 11.1.0)
info: OpenGL loaded successfully, version 4.6 (Core Profile) Mesa 21.1.0-rc2, shading language 4.60
info: ---------------------------------
info: video settings reset:
	base resolution:   1920x540
	output resolution: 1920x540
	downscale filter:  Lanczos
	fps:               60/1
	format:            NV12
	YUV mode:          709/Partial
info: NV12 texture support not available
info: Audio monitoring device:
	name: Default
	id: default
info: ---------------------------------
warning: Failed to load 'en-US' text for module: 'decklink-captions.so'
warning: Failed to load 'en-US' text for module: 'decklink-ouput-ui.so'
libDeckLinkAPI.so: cannot open shared object file: No such file or directory
warning: A DeckLink iterator could not be created.  The DeckLink drivers may not be installed
info: No blackmagic support
warning: v4l2loopback not installed, virtual camera disabled
info: FFMPEG VAAPI supported
info: VLC found, VLC video source enabled
info: ---------------------------------
info:   Loaded Modules:
info:     vlc-video.so
info:     text-freetype2.so
info:     rtmp-services.so
info:     obs-x264.so
info:     obs-vst.so
info:     obs-transitions.so
info:     obs-outputs.so
info:     obs-libfdk.so
info:     obs-filters.so
info:     obs-ffmpeg.so
info:     linux-v4l2.so
info:     linux-pulseaudio.so
info:     linux-decklink.so
info:     linux-capture.so
info:     linux-alsa.so
info:     image-source.so
info:     frontend-tools.so
info:     decklink-ouput-ui.so
info:     decklink-captions.so
info: ---------------------------------
info: ==== Startup complete ===============================================

It may be a newbie mistake, I apologize in advance if it is x)

Thanks for your help

Adel

obs-glcapture doesn't work on the proprietary nvidia driver

Running obs-glcapture glxgears on the proprietary driver leads to the following output:

Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
[obs-vkcapture] Init GLX 1.0.0
[obs-vkcapture] Texture GL_RGBA 841x444
[obs-vkcapture] Failed to get buffer from pixmap
[obs-vkcapture] shtex init failed
X connection to :0 broken (explicit kill or server shutdown).
X connection to :0 broken (explicit kill or server shutdown).

I tried following the debug steps outlined in #16 but running with that patch led to a segmentation fault, not sure why.

The output for xdpyinfo | grep DRI is only DRI2 after a bit of trying I was unable to enable DRI3 on my system (i think it's because the driver doesn't support it).

I am also unable to capture egl, running obs-glcapture eglgears_x11 leads to a segmentation fault.

Not sure what other information is needed.

And thanks for writing an awesome piece of software :D.

Can't capture usind VKD3D (dx12)

Tested with Deep Rock Galactic and Metro Exodus (Windows version) with Proton-6.9-GE-2 and Proton-6.3-4

[obs-vkcapture] Init 0.6
[obs-vkcapture] Injecting VK_KHR_external_memory_fd extension
Fossilize INFO: Overriding serialization path: "/mnt/evo/SteamLibrary/steamapps/shadercache/548430/fozpipelinesv5/steamapprun_pipeline_cache".
[obs-vkcapture] Injecting VK_KHR_external_memory_fd extension
Installing breakpad exception handler for appid(gameoverlayui)/version(20210519015400)
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
[0606/212425.215633:INFO:crash_reporting.cc(270)] Crash reporting enabled for process: renderer
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
[0606/212425.399075:ERROR:frame_sink_video_capturer_impl.cc(206)] Invalid resolutions constraints: 0x0 must not be greater than 0x0; and also within media::limits.
ERROR: ld.so: object '/home/ogden/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
>>> Adding process 19231 for game ID 548430
[obs-vkcapture] Init 0.6
[obs-vkcapture] Injecting VK_KHR_external_memory_fd extension
Fossilize INFO: Overriding serialization path: "/mnt/evo/SteamLibrary/steamapps/shadercache/548430/fozpipelinesv5/steamapprun_pipeline_cache".
[obs-vkcapture] GetMemoryFdKHR failed -2
[obs-vkcapture] ------------------- vulkan capture freed -------------------
[obs-vkcapture] vk_shtex_init failed
RecordSteamInterfaceCreation (PID 19056): SteamNetworkingUtils003 / 
RecordSteamInterfaceCreation (PID 19056): SteamNetworkingUtils003 / 

obs-glcapture Fails to Capture

When trying to use obs-glcapture to capture anything (including glxgears) I just get this output:

[obs-vkcapture] Init 0.7
297 shaders loaded in 0.3716s
[obs-vkcapture] Texture GL_RGBA 1920x1080
[obs-vkcapture] Failed to get buffer from pixmap
[obs-vkcapture] shtex init failed
[obs-vkcapture] gl_init failed
[obs-vkcapture] Texture GL_RGBA 1920x1080
[obs-vkcapture] Failed to get buffer from pixmap
[obs-vkcapture] shtex init failed
[obs-vkcapture] gl_init failed
[obs-vkcapture] Texture GL_RGBA 1920x1080
[obs-vkcapture] Failed to get buffer from pixmap
[obs-vkcapture] shtex init failed
[obs-vkcapture] gl_init failed
[obs-vkcapture] Texture GL_RGBA 1920x1080
[obs-vkcapture] Failed to get buffer from pixmap
[obs-vkcapture] shtex init failed
[obs-vkcapture] gl_init failed
[obs-vkcapture] Texture GL_RGBA 1920x1080
[obs-vkcapture] Failed to get buffer from pixmap
[obs-vkcapture] shtex init failed
[obs-vkcapture] gl_init failed

This is on an amd vega card with the latest mesa and amdgpu drivers

[idea] Pipewire video/desktop source

First of all, this is not an issue, just a discussion/feedback/decision-log. Feel free to close it at any moment.

VKCapture is, from all the sources I have available in OBS, the one that less impacts gaming performance. And it does not capture my system's screen. It's awesome!

It would be cool to have it pipewire-compatible to share games directly to Firefox/Chromium/Electron/Telegram (I know those supports pipewire for screen sharing).

Or even maybe having OBS output back as a pipewire-source as it does when "virtualising camera".

obs-vkcapture doesn't work with 32bit games

obs-vkcapture works great with every 64bit game I've tried, but it doesn't work with any 32bit game. I'm not sure what has gone wrong, since I used the AUR package to install obs-vkcapture, which should install everything correctly.

The games I am trying to record are Far Cry 3, Call Of Duty Modern Warfare 3, and Call ff Duty Black Ops 2.

System:
OS: Arch Linux
Kernel: 5.15.12-zen1-1-zen
GPU: RX 6700XT
Mesa 22.0.0-devel (git-f43b0d5cdc)
OBS version: obs-studio 27.1.3-3

Issues compiling as plugin submodule within obs

Heya, so I'll admit I'm not quite sure what I'm doing here is correct for adding this as a submodule to be built with OBS, but I'm hitting a cmake issue with it not detecting vulkan on fedora.

First, I did this in OBS so that it picks up the module during compilation:

diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt
index a39f35771..43be4577b 100644
--- a/plugins/CMakeLists.txt
+++ b/plugins/CMakeLists.txt
@@ -81,6 +81,7 @@ if(BUILD_VST)
 	endif()
 endif()
 
+add_subdirectory(obs-vkcapture)
 add_subdirectory(image-source)
 add_subdirectory(obs-x264)
 add_subdirectory(obs-libfdk)
 

Then added the obs-vkcapture folder inside the plugins folder in OBS's source (where all the other plugins are).

But then it complains about not being able to find vulkan:

CMake Error at plugins/obs-vkcapture/CMakeLists.txt:34 (add_library):
  Target "VkLayer_obs_vkcapture" links to target "Vulkan::Vulkan" but the
  target was not found.  Perhaps a find_package() call is missing for an
  IMPORTED target, or an ALIAS target is missing?


-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_CXX_FLAGS_RELEASE
    CMAKE_C_FLAGS_RELEASE
    CMAKE_Fortran_FLAGS_RELEASE
    CMAKE_INSTALL_DO_STRIP
    CMAKE_VERBOSE_MAKEFILE
    INCLUDE_INSTALL_DIR
    LIB_INSTALL_DIR
    SHARE_INSTALL_PREFIX
    SYSCONF_INSTALL_DIR

I tried adding the vulkan sdk to the build, but no luck there either:

        -DVULKAN_LIBRARY=../1.2.170.0/x86_64/lib \
        -DVULKAN_INCLUDE_DIR=../1.2.170.0/x86_64/include/vulkan

Any tips on getting this to build with obs as a plugin?

Thanks

snap build/instalation instructions?

https://github.com/snapcrafters/obs-studio#3rd-party-plugins

cheako@mx1:~/src/gitlab/obs-vkcapture/build$ cmake .. --target libobs -DCMAKE_INSTALL_PREFIX=~/bin -DCMAKE_INSTALL_LIBDIR=~/snap/obs-studio/current/.config/obs-studio/plugins
CMake Error: Unknown argument --target
CMake Error: Run 'cmake --help' for all supported options.
cheako@mx1:~/src/gitlab/obs-vkcapture/build$ cmake .. -DCMAKE_INSTALL_PREFIX=~/bin -DCMAKE_INSTALL_LIBDIR=~/snap/obs-studio/current/.config/obs-studio/plugins
-- The C compiler identification is GNU 10.2.1
-- The CXX compiler identification is GNU 10.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Vulkan: /usr/lib/x86_64-linux-gnu/libvulkan.so  
-- Found X11: /usr/include   
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
CMake Error at CMakeLists.txt:10 (find_package):
  By not providing "FindLibObs.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "LibObs", but
  CMake did not find one.

  Could not find a package configuration file provided by "LibObs" with any
  of the following names:

    LibObsConfig.cmake
    libobs-config.cmake

  Add the installation prefix of "LibObs" to CMAKE_PREFIX_PATH or set
  "LibObs_DIR" to a directory containing one of the above files.  If "LibObs"
  provides a separate development package or SDK, be sure it has been
  installed.


-- Configuring incomplete, errors occurred!
See also "/home/cheako/src/gitlab/obs-vkcapture/build/CMakeFiles/CMakeOutput.log".

Required Version of Vulkan Loader SDK Is Not Checked When CMake Configures Build

What is the minimum version of the Vulkan Loader SDK (libvulkan1 and libvulkan-dev) that this plugin will build with?

I'm running elementaryOS 5.1.7 Hera (aka Ubuntu 18.0.4LTS), and the libvulkan version available via apt-get is 1.1.70, which is from 2018.

SIDE NOTE: I'd just go ahead and build the latest libvulkan from source and install it, but I have a delicate config that I'm afraid of messing up: I have to run some old versions of gpu and opencl drivers so DaVinci Resolve will run. Is anyone else trying to deal with this sort of situation?

libVkLayer_obs_vkcapture.so returns 0 strides size

Summary

Game Capture pliugin cannot create texture and show black image because libVkLayer_obs_vkcapture.so returns 0 strides size of image on Intel UHD 770 when using VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT tiling. I could solve the issue by compelling img_info.tiling = VK_IMAGE_TILING_LINEAR (with OBS_VKCAPTURE_LINEAR switch, but some rework was needed). Please check out PR #58.

Issue detail

Vulkan-based program cannot be captured on Intel UHD 770. It returns 0 strides size when using DRM modifier support and it says, error: Cannot create EGLImage: EGL cannot access a requested resource (for example a context is bound in another thread).. See the following output of the program.

OBS's linux-vkcapture output:

info: [linux-vkcapture] plugin loaded successfully (version 1.1.1)
info: [linux-vkcapture] Creating texture from dmabuf 1280x720 modifier:72057594037927938
info: [linux-vkcapture]  [0] fd:47 stride:0 offset:0
error: Cannot create EGLImage: EGL cannot access a requested resource (for example a context is bound in another thread).
error: [linux-vkcapture] Could not create texture from dmabuf source

Captured program's obs-vkcapture output:

[obs-vkcapture] Init Vulkan 1.1.1
[obs-vkcapture] CreateInstance
[obs-vkcapture] CreateInstance VK_SUCCESS
MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0

[obs-vkcapture] CreateDevice
[obs-vkcapture] Injecting VK_KHR_external_memory_fd extension
[obs-vkcapture] Injecting VK_EXT_image_drm_format_modifier extension
[obs-vkcapture] CreateDevice VK_SUCCESS
[obs-vkcapture] CreateXcbSurfaceKHR
[obs-vkcapture] CreateSwapchainKHR VK_SUCCESS
[obs-vkcapture] GetSwapchainImagesKHR VK_SUCCESS
[obs-vkcapture] GetSwapchainImagesKHR VK_SUCCESS
[obs-vkcapture] Texture VK_FORMAT_B8G8R8A8_UNORM 1280x720
[obs-vkcapture] Available modifiers:
[obs-vkcapture]  0: modifier:0 planes:1
[obs-vkcapture]  1: modifier:72057594037927937 planes:1
[obs-vkcapture]  2: modifier:72057594037927938 planes:1
[obs-vkcapture] Got planes 1 fd 12
[obs-vkcapture] Got modifier 72057594037927938
[obs-vkcapture] ------------------ vulkan capture started ------------------
[obs-vkcapture] CreateCommandPool VK_SUCCESS
[obs-vkcapture] AllocateCommandBuffers VK_SUCCESS
[obs-vkcapture] CreateFence VK_SUCCESS
...
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] DestroySwapchainKHR
[obs-vkcapture] ------------------- vulkan capture freed -------------------
[obs-vkcapture] DestroySurfaceKHR
[obs-vkcapture] DestroyDevice
[obs-vkcapture] DestroyInstance

Test environment

Commit: 29fb16ffafde962b1771966def2f50a3dbcb4b39
GPU: Intel UHD 770
OS: Fedora 35
Kernel: 5.16.8
Mesa: 21.3.6
Test program: Vulkan-sample's triangle

Notes and Thoughts

Intel UHD 770's supported DRM suported modifiers are both linear tiling (fourcc.h). I think it could returns rowpitch > 0, but vkGetImageSubresourceLayout returns no row pitch in some implementations (cf. vkGetImageSubresourceLayout gives no row pitch). I don't know the issue is whether a driver's bug or not.

GL capture works without any problem. The issue is only for Vulkan capture.

Question about using obs-glcapture script for 32-bit programs

Hi again! obs-vkcapture got 32-bit programs support, but in Debian 11 it tricky to use. Obs-glcapture script don't preload 32-bit libraries in Debian, but LD_PRELOAD=/usr/local/lib/i686-linux-gnu/libobs_glcapture.so %command% works fine. I compiled and installed plugin using my own script. I used /usr/local prefix because my OBS compiled from source and installed into /usr/local.

#! /bin/bash

cmake -B build -S . -DCMAKE_INSTALL_PREFIX=/usr/local \
        -DCMAKE_INSTALL_LIBDIR=lib \
        -DCMAKE_INSTALL_DATADIR=/share \
        -DCMAKE_BUILD_TYPE=Release
make -C build

export CFLAGS="-m32 ${CFLAGS}"
export CXXFLAGS="-m32 ${CXXFLAGS}"
export LDFLAGS="-m32 ${LDFLAGS}"

echo $CFLAGS
cmake -B build32 -S . -DCMAKE_INSTALL_PREFIX=/usr/local \
	-DCMAKE_INSTALL_LIBDIR=lib/i686-linux-gnu \
	-DCMAKE_INSTALL_DATADIR=/share \
	-DCMAKE_LIBRARY_PATH=/usr/local/lib/i686-linux-gnu \
	-DCMAKE_BUILD_TYPE=Release \
	-DBUILD_PLUGIN=OFF
make -C build32

sudo checkinstall --default --pkgname=obs-studio-local-vkcapture --fstrans=no --backup=no --pkgversion="$(date +%Y%m%d)" --deldoc=yes sh -c 'make -C build install; make -C build32 install'

But whereis libobs_glcapture.so command shows only 64-bit library. I checked /etc/ld.so.conf.d/i386-linux-gnu.conf file and it said that /usr/local/lib/i686-linux-gnu directory is used by 'ldconfig', so 32-bit library must appear in whereis command output too.
/usr/local/lib/i686-linux-gnu:

# Multiarch support
/usr/local/lib/i386-linux-gnu
/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu
/usr/local/lib/i686-linux-gnu
/lib/i686-linux-gnu
/usr/lib/i686-linux-gnu

So, how to make obs-glcapture script work for Debian 11?

Doesn't work with 32bit games

When trying to capture 32bit game, it doesn't want to load library:

ERROR: ld.so: object '/usr/lib/libobs_glcapture.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.

I tried to compile it with crossbuild-essential-i386, but it can't link some files to OBS.

scaled@librem-15:~/git/obs-vkcapture/build32$ LANG=C cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_CXX_COMPILER=/usr/bin/i686-linux-gnu-g++ -DCMAKE_CXX_COMPILER_AR=/usr/bin/i686-linux-gnu-ar -DCMAKE_CXX_COMPILER_RANLIB=/usr/bin/i686-linux-gnu-ranlib -DCMAKE_C_COMPILER=/usr/bin/i686-linux-gnu-gcc -DCMAKE_C_COMPILER_AR=/usr/bin/i686-linux-gnu-ar -DCMAKE_C_COMPILER_RANLIB=/usr/bin/i686-linux-gnu-ranlib ..
-- The C compiler identification is GNU 10.2.1
-- The CXX compiler identification is GNU 10.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/i686-linux-gnu-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/i686-linux-gnu-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Vulkan: /usr/lib/i386-linux-gnu/libvulkan.so  
-- Could NOT find X11 (missing: X11_X11_LIB) 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/scaled/git/obs-vkcapture/build32
scaled@librem-15:~/git/obs-vkcapture/build32$ LANG=C make
Scanning dependencies of target VkLayer_obs_vkcapture
[  9%] Building C object CMakeFiles/VkLayer_obs_vkcapture.dir/src/vklayer.c.o
/home/scaled/git/obs-vkcapture/src/vklayer.c: In function 'init_device_data':
/home/scaled/git/obs-vkcapture/src/vklayer.c:247:28: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  247 |     add_obj_data(&devices, (uint64_t)GET_LDT(device), data);
      |                            ^
/home/scaled/git/obs-vkcapture/src/vklayer.c: In function 'get_device_data':
/home/scaled/git/obs-vkcapture/src/vklayer.c:254:13: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  254 |             (uint64_t)GET_LDT(device));
      |             ^
/home/scaled/git/obs-vkcapture/src/vklayer.c: In function 'get_device_data_by_queue':
/home/scaled/git/obs-vkcapture/src/vklayer.c:260:13: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  260 |             (uint64_t)GET_LDT(queue));
      |             ^
/home/scaled/git/obs-vkcapture/src/vklayer.c: In function 'remove_device_data':
/home/scaled/git/obs-vkcapture/src/vklayer.c:266:13: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  266 |             (uint64_t)GET_LDT(device));
      |             ^
/home/scaled/git/obs-vkcapture/src/vklayer.c: In function 'add_queue_data':
/home/scaled/git/obs-vkcapture/src/vklayer.c:286:33: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  286 |     add_obj_data(&data->queues, (uint64_t)queue, queue_data);
      |                                 ^
/home/scaled/git/obs-vkcapture/src/vklayer.c: In function 'get_queue_data':
/home/scaled/git/obs-vkcapture/src/vklayer.c:298:13: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  298 |             (uint64_t)queue);
      |             ^
/home/scaled/git/obs-vkcapture/src/vklayer.c: In function 'init_inst_data':
/home/scaled/git/obs-vkcapture/src/vklayer.c:506:30: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  506 |     add_obj_data(&instances, (uint64_t)GET_LDT(instance), idata);
      |                              ^
/home/scaled/git/obs-vkcapture/src/vklayer.c: In function 'get_inst_data':
/home/scaled/git/obs-vkcapture/src/vklayer.c:513:13: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  513 |             (uint64_t)GET_LDT(instance));
      |             ^
/home/scaled/git/obs-vkcapture/src/vklayer.c: In function 'get_inst_data_by_physical_device':
/home/scaled/git/obs-vkcapture/src/vklayer.c:527:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  527 |             &instances, (uint64_t)GET_LDT(physicalDevice));
      |                         ^
/home/scaled/git/obs-vkcapture/src/vklayer.c: In function 'remove_free_inst_data':
/home/scaled/git/obs-vkcapture/src/vklayer.c:543:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  543 |             &instances, (uint64_t)GET_LDT(inst));
      |                         ^
[ 18%] Building C object CMakeFiles/VkLayer_obs_vkcapture.dir/src/capture.c.o
[ 27%] Linking C shared module libVkLayer_obs_vkcapture.so
[ 27%] Built target VkLayer_obs_vkcapture
Scanning dependencies of target obs_glcapture
[ 36%] Building C object CMakeFiles/obs_glcapture.dir/src/dlsym.c.o
[ 45%] Building C object CMakeFiles/obs_glcapture.dir/src/elfhacks.c.o
[ 54%] Building C object CMakeFiles/obs_glcapture.dir/src/glinject.c.o
[ 63%] Building C object CMakeFiles/obs_glcapture.dir/src/glad/glad.c.o
[ 72%] Building C object CMakeFiles/obs_glcapture.dir/src/capture.c.o
[ 81%] Linking C shared module libobs_glcapture.so
[ 81%] Built target obs_glcapture
Scanning dependencies of target linux-vkcapture
[ 90%] Building C object CMakeFiles/linux-vkcapture.dir/src/vkcapture.c.o
/home/scaled/git/obs-vkcapture/src/vkcapture.c: In function 'vkcapture_source_show':
/home/scaled/git/obs-vkcapture/src/vkcapture.c:205:9: warning: implicit declaration of function 'pthread_mutex_lock' [-Wimplicit-function-declaration]
  205 |         pthread_mutex_lock(&server.mutex);
      |         ^~~~~~~~~~~~~~~~~~
/home/scaled/git/obs-vkcapture/src/vkcapture.c:210:9: warning: implicit declaration of function 'pthread_mutex_unlock' [-Wimplicit-function-declaration]
  210 |         pthread_mutex_unlock(&server.mutex);
      |         ^~~~~~~~~~~~~~~~~~~~
/home/scaled/git/obs-vkcapture/src/vkcapture.c: In function 'obs_module_load':
/home/scaled/git/obs-vkcapture/src/vkcapture.c:620:5: warning: implicit declaration of function 'pthread_mutex_init' [-Wimplicit-function-declaration]
  620 |     pthread_mutex_init(&server.mutex, NULL);
      |     ^~~~~~~~~~~~~~~~~~
/home/scaled/git/obs-vkcapture/src/vkcapture.c:621:9: warning: implicit declaration of function 'pthread_create'; did you mean 'timer_create'? [-Wimplicit-function-declaration]
  621 |     if (pthread_create(&server.thread, NULL, server_thread_run, NULL) != 0) {
      |         ^~~~~~~~~~~~~~
      |         timer_create
/home/scaled/git/obs-vkcapture/src/vkcapture.c: In function 'obs_module_unload':
/home/scaled/git/obs-vkcapture/src/vkcapture.c:634:5: warning: implicit declaration of function 'pthread_join' [-Wimplicit-function-declaration]
  634 |     pthread_join(server.thread, NULL);
      |     ^~~~~~~~~~~~
[100%] Linking C shared module linux-vkcapture.so
/usr/lib/gcc-cross/i686-linux-gnu/10/../../../../i686-linux-gnu/bin/ld: /usr/lib/libobs.so.0: error adding symbols: file in wrong format
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/linux-vkcapture.dir/build.make:104: linux-vkcapture.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:153: CMakeFiles/linux-vkcapture.dir/all] Error 2
make: *** [Makefile:149: all] Error 2

But i still tried to preload some generated files and program just crashed, when i opened OBS.

LD_PRELOAD=/home/scaled/git/obs-vkcapture/build32/libobs_glcapture.so
/home/scaled/.steam/debian-installation/steamapps/common/Half-Life/hl.sh: line 43: 161106 Segmentation fault      ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} $@

Compilation failed on ARM

Hi.
Just imported obs-vkcapture to OpenMandriva Cooker repository. Package compile for x86_64 and znver1 but failing on ARM.
I know aarch64 is not very popular on desktops, but it would be nice to have this package working.

Error:

In file included from /builddir/build/BUILD/obs-vkcapture-0.8.1/src/dlsym.c:20:
DEBUG util.py:636:  /builddir/build/BUILD/obs-vkcapture-0.8.1/src/elfhacks.h:60:4: error: neither __elf32 nor __elf64 is defined
DEBUG util.py:636:  #  error neither __elf32 nor __elf64 is defined
DEBUG util.py:636:     ^
DEBUG util.py:636:  1 error generated.

/builddir/build/BUILD/obs-vkcapture-0.8.1/src/elfhacks.c:33:37: error: unknown type name 'ElfW_Sword'
DEBUG util.py:636:  int eh_find_next_dyn(eh_obj_t *obj, ElfW_Sword tag, int i, ElfW(Dyn) **next);

Full build log here: https://file-store.openmandriva.org/api/v1/file_stores/c512a02995ce0cac2dec952024af1e65542628c5.log?show=true

Details:
OS: OpenMandriva Cooker
Compiler: LLVM/Clang 12.0.1
LTO: Enabled

X11/OpenBox: Stream crash when game is in separate virtual Desktop

Hello,

I must say that this plugin is a godsend with respect to added input lag. Unfortunately I cannot use it yet to stream: I use LXQt (because it does not have a compositor with OpenBox) and put the game in a separate virtual desktop. I sometimes switch on and off the game. And when using game capture the twitch stream directly crashes. Please see the attached video.

Can you reproduce the error ? Using Xcomposite does not produce this error afaik, I tested it for a few minutes and it didn't get triggered.

I have obs-studio and obs-vkcapture compiled from Git. I use Gentoo, with mesa/radv 21.1.0_rc3 to run my games on my RX 5700 XT and to stream with FFMPEG-VAAPI with the GPU.

Thanks!

OBS Stream crash.zip

Cursor not alligned on some windows

Looks like sometimes it aligned with wrong windows.

Chromium - not aligned
Blender - aligned
ClassiCube - aligned
Minecraft 1.16.5 (java 11) - not aligned
Minecraft 1.0 (java 8) - not aligned
Counter Strike 1.6 - aligned
mpv player - aligned

Compile Error in Linux

Name@Host:~/obs-vkcapture/build$ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib ..
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Vulkan: /usr/lib/x86_64-linux-gnu/libvulkan.so
-- Found X11: /usr/include
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Configuring done
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
X11_xcb_xfixes_LIB
linked by target "linux-vkcapture" in directory /home/Name/obs-vkcapture

-- Generating done
CMake Generate step failed. Build files cannot be regenerated correctly.

obs-glcapture can't find dlsym on Ubuntu 21.10 with glibc 2.34

On Ubuntu 21.10 with glibc 2.34, libdl.so.2 exists, but is basically an empty library. The actual dlsym function is in libc.so.6. Because libdl.so is successfully opened in dl_init_funcs, that library gets used for resolving dlsym, which then fails. This later results in a segfault (somewhere).

If that is changed to check for libc.so first, then it succeeds, but this would break systems on older glibc versions.

Question: how is capturing and encoding handled with respect to memory copies ?

Hello,

I would like to know how obs-vkcapture works with obs with respect to memory copies. Let's consider the use case of obs with ffmpeg-vaapi encoder with an AMD GPU, while capturing a vulkan game, does obs-vkcapture do frame copies as follows GPU VRAM (game) -> RAM (obs) -> GPU VRAM (ffmpeg-vaapi) ? Or does it do an in-gpu copy GPU VRAM (game) -> GPU VRAM (ffmpeg-vaapi) ? Or is it zero-copy ? I suppose zero-copy would need the use of the new vulkan video extensions which are not implemented in mesa nor ffmpeg yet ?

I would love to have more information on how things work, thank you !

Adel

Take my money?

I just found this plugin via Google after being frustrated about getting stutters while gaming with Pipewire screen capture.

Took me about 30 seconds to install the AUR package and it worked immediately. I'm capturing 60 FPS at perfect quality while still getting a buttery smooth 200 FPS ingame and no stutters. I've only been playing with this for half an hour or so but so far nothing has crashed 🤞

It blows my mind that this is possible in Linux now!

For how insanely awesome this plugin is I think it's criminally undersupported. Have you considered making it possible to sponsor this project via GitHub Sponsors? Or alternatively, set up a Paypal donation link? I feel bad using this plugin for free.

OBS VKCAPTURE won't capture anything in Fedora 36 on a 5900HX with 6800M

Hello, so I ama trying to capture using OBS VKCapture for some days now with no sucess. Here are the logs when trying to capture HZD of both Steam and OBS:

OBS Log:

Attempted path: share/obs/obs-studio/locale/en-US.ini
Attempted path: /usr/share/obs/obs-studio/locale/en-US.ini
Attempted path: share/obs/obs-studio/locale.ini
Attempted path: /usr/share/obs/obs-studio/locale.ini
Attempted path: share/obs/obs-studio/locale/el-GR.ini
Attempted path: /usr/share/obs/obs-studio/locale/el-GR.ini
info: Using preferred locale 'el-GR'
Attempted path: share/obs/obs-studio/themes/Dark.qss
Attempted path: /usr/share/obs/obs-studio/themes/Dark.qss
info: Using EGL/X11
info: CPU Name: AMD Ryzen 9 5900HX with Radeon Graphics
info: CPU Speed: 4890.000MHz
info: Physical Cores: 8, Logical Cores: 16
info: Physical Memory: 63784MB Total, 51689MB Free
info: Kernel Version: Linux 5.17.3-xm1.0.fc36.x86_64
info: Distribution: "Fedora Linux" 36
info: Session Type: x11
info: Window System: X11.0, Vendor: The X.Org Foundation, Version: 1.20.14
info: Qt Version: 5.15.3 (runtime), 5.15.3 (compiled)
info: Portable mode: false
Attempted path: share/obs/obs-studio/themes/Dark/no_sources.svg
Attempted path: /usr/share/obs/obs-studio/themes/Dark/no_sources.svg
QMetaObject::connectSlotsByName: No matching signal for on_tbar_position_valueChanged(int)
QMetaObject::connectSlotsByName: No matching signal for on_actionShowTransitionProperties_triggered()
QMetaObject::connectSlotsByName: No matching signal for on_actionHideTransitionProperties_triggered()
info: OBS 27.2.4 (linux)
info: ---------------------------------
info: ---------------------------------
info: audio settings reset:
        samples per sec: 48000
        speakers:        2
info: ---------------------------------
info: Initializing OpenGL...
info: Loading up OpenGL on adapter AMD AMD RENOIR (LLVM 13.0.1, DRM 3.44, 5.17.3-xm1.0.fc36.x86_64)
info: OpenGL loaded successfully, version 4.6 (Core Profile) Mesa 22.0.1, shading language 4.60
info: ---------------------------------
info: video settings reset:
        base resolution:   1920x1080
        output resolution: 1280x720
        downscale filter:  Bicubic
        fps:               30/1
        format:            NV12
        YUV mode:          709/Partial
info: NV12 texture support not available
info: Audio monitoring device:
        name: Προεπιλεγμένη
        id: default
info: ---------------------------------
warning: Failed to load 'en-US' text for module: 'decklink-captions.so'
warning: Failed to load 'en-US' text for module: 'decklink-ouput-ui.so'
info: [pipewire] Available captures:
info: [pipewire]     - Desktop capture
info: [pipewire]     - Window capture
libDeckLinkAPI.so: cannot open shared object file: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος
warning: A DeckLink iterator could not be created.  The DeckLink drivers may not be installed
info: No blackmagic support
warning: v4l2loopback not installed, virtual camera disabled
warning: Failed to load 'el-GR' text for module: 'linux-vkcapture.so'
info: [linux-vkcapture] plugin loaded successfully (version 1.1.3)
error: os_dlopen(libnvidia-encode.so.1->libnvidia-encode.so.1): libnvidia-encode.so.1: cannot open shared object file: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος

info: FFMPEG VAAPI supported
error: os_dlopen(libvlc.so.5->libvlc.so.5): libvlc.so.5: cannot open shared object file: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος

info: [vlc-video]: Couldn't find VLC installation, VLC video source disabled
info: ---------------------------------
info:   Loaded Modules:
info:     vlc-video.so
info:     text-freetype2.so
info:     rtmp-services.so
info:     obs-x264.so
info:     obs-vst.so
info:     obs-transitions.so
info:     obs-outputs.so
info:     obs-libfdk.so
info:     obs-filters.so
info:     obs-ffmpeg.so
info:     linux-vkcapture.so
info:     linux-v4l2.so
info:     linux-pulseaudio.so
info:     linux-jack.so
info:     linux-decklink.so
info:     linux-capture.so
info:     linux-alsa.so
info:     image-source.so
info:     frontend-tools.so
info:     decklink-ouput-ui.so
info:     decklink-captions.so
info: ---------------------------------
info: ==== Startup complete ===============================================
info: All scene data cleared
info: ------------------------------------------------
info: pulse-input: Server name: 'PulseAudio (on PipeWire 0.3.49) 15.0.0'
info: pulse-input: Audio format: s32le, 48000 Hz, 2 channels
info: pulse-input: Started recording from 'alsa_output.pci-0000_08_00.6.analog-stereo.monitor'
info: [Loaded global audio device]: 'Ήχος Επιφάνειας Εργασίας'
info: pulse-input: Server name: 'PulseAudio (on PipeWire 0.3.49) 15.0.0'
info: pulse-input: Audio format: s32le, 48000 Hz, 2 channels
info: pulse-input: Started recording from 'alsa_input.pci-0000_08_00.6.analog-stereo'
info: [Loaded global audio device]: 'Μικρόφωνο/Aux'
info: Switched to scene 'Σκηνή'
info: ------------------------------------------------
info: Loaded scenes:
info: - scene 'Σκηνή':
info:     - source: 'Game Capture' (vkcapture-source)
info: ------------------------------------------------
Attempted path: share/obs/obs-studio/images/overflow.png
Attempted path: /usr/share/obs/obs-studio/images/overflow.png
info: adding 42 milliseconds of audio buffering, total audio buffering is now 42 milliseconds (source: Ήχος Επιφάνειας Εργασίας)

info: ---------------------------------
info: [x264 encoder: 'simple_h264_stream'] preset: veryfast
info: [x264 encoder: 'simple_h264_stream'] settings:
        rate_control: CBR
        bitrate:      2500
        buffer size:  2500
        crf:          23
        fps_num:      30
        fps_den:      1
        width:        1280
        height:       720
        keyint:       250

info: libfdk_aac encoder created
info: libfdk_aac bitrate: 160, channels: 2
info: ==== Recording Start ===============================================
info: [ffmpeg muxer: 'simple_file_output'] Writing file '/home/qushy/2022-04-16 20-37-25.mkv'...
info: Output format name and long_name: matroska, Matroska
/usr/bin/xdg-screensaver: γραμμή 600: xset: εντολή δεν βρέθηκε
info: [linux-vkcapture] Creating texture from dmabuf 1920x1080 modifier:144115188488387331
info: [linux-vkcapture]  [0] fd:12 stride:7680 offset:0
info: [linux-vkcapture]  [1] fd:13 stride:2048 offset:8847360
error: Cannot create EGLImage: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
error: [linux-vkcapture] Could not create texture from dmabuf source
info: [linux-vkcapture] Creating texture from dmabuf 1920x1080 modifier:144115188488387331
info: [linux-vkcapture]  [0] fd:14 stride:7680 offset:0
info: [linux-vkcapture]  [1] fd:37 stride:2048 offset:8847360
error: Cannot create EGLImage: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
error: [linux-vkcapture] Could not create texture from dmabuf source
info: [linux-vkcapture] Creating texture from dmabuf 1920x1080 modifier:144115188488387331
info: [linux-vkcapture]  [0] fd:12 stride:7680 offset:0
info: [linux-vkcapture]  [1] fd:13 stride:2048 offset:8847360
error: Cannot create EGLImage: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
error: [linux-vkcapture] Could not create texture from dmabuf source
info: [linux-vkcapture] Creating texture from dmabuf 1920x1080 modifier:144115188488387331
info: [linux-vkcapture]  [0] fd:14 stride:7680 offset:0
info: [linux-vkcapture]  [1] fd:37 stride:2048 offset:8847360
error: Cannot create EGLImage: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
error: [linux-vkcapture] Could not create texture from dmabuf source
info: [linux-vkcapture] Creating texture from dmabuf 1920x1080 modifier:144115188488387331
info: [linux-vkcapture]  [0] fd:12 stride:7680 offset:0
info: [linux-vkcapture]  [1] fd:13 stride:2048 offset:8847360
error: Cannot create EGLImage: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
error: [linux-vkcapture] Could not create texture from dmabuf source
info: [linux-vkcapture] Creating texture from dmabuf 1920x1080 modifier:144115188488387331
info: [linux-vkcapture]  [0] fd:14 stride:7680 offset:0
info: [linux-vkcapture]  [1] fd:37 stride:2048 offset:8847360
error: Cannot create EGLImage: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
error: [linux-vkcapture] Could not create texture from dmabuf source
info: [linux-vkcapture] Creating texture from dmabuf 1920x1080 modifier:144115188488387331
info: [linux-vkcapture]  [0] fd:12 stride:7680 offset:0
info: [linux-vkcapture]  [1] fd:13 stride:2048 offset:8847360
error: Cannot create EGLImage: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
error: [linux-vkcapture] Could not create texture from dmabuf source
info: [linux-vkcapture] Creating texture from dmabuf 1920x1080 modifier:144115188488387331
info: [linux-vkcapture]  [0] fd:14 stride:7680 offset:0
info: [linux-vkcapture]  [1] fd:37 stride:2048 offset:8847360
error: Cannot create EGLImage: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
error: [linux-vkcapture] Could not create texture from dmabuf source
/usr/bin/xdg-screensaver: γραμμή 600: xset: εντολή δεν βρέθηκε
info: [ffmpeg muxer: 'simple_file_output'] Output of file '/home/qushy/2022-04-16 20-37-25.mkv' stopped
info: Output 'simple_file_output': stopping
info: Output 'simple_file_output': Total frames output: 2052
info: Output 'simple_file_output': Total drawn frames: 2088
info: ==== Recording Stop ================================================
info: libfdk_aac encoder destroyed

Steam Log:

[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] ResetCommandPool VK_SUCCESS
[obs-vkcapture] BeginCommandBuffer VK_SUCCESS
[obs-vkcapture] QueueSubmit VK_SUCCESS
[obs-vkcapture] DestroySwapchainKHR
[obs-vkcapture] ------------------- vulkan capture freed -------------------
[obs-vkcapture] CreateSwapchainKHR VK_SUCCESS
[obs-vkcapture] GetSwapchainImagesKHR VK_SUCCESS
[obs-vkcapture] GetSwapchainImagesKHR VK_SUCCESS
Installing breakpad exception handler for appid(steam)/version(1650062193)
[obs-vkcapture] DestroySwapchainKHR
[obs-vkcapture] DestroySurfaceKHR
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
ThreadGetProcessExitCode: no such process 11607
ThreadGetProcessExitCode: no such process 11583
ThreadGetProcessExitCode: no such process 11386
ThreadGetProcessExitCode: no such process 11378
ThreadGetProcessExitCode: no such process 11372
ThreadGetProcessExitCode: no such process 11350
ThreadGetProcessExitCode: no such process 11347
ThreadGetProcessExitCode: no such process 11341
ThreadGetProcessExitCode: no such process 11337
gamemodeauto: dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory
pid 11343 != 11342, skipping destruction (fork without exec?)
Game process removed: AppID 1151640 "obs-vkcapture gamemoderun /home/qushy/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1151640 -- '/home/qushy/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/qushy/.local/share/Steam/steamapps/common/Proton - Experimental'/proton waitforexitandrun  '/run/media/qushy/d4e414d4-636c-46e5-a370-4c5c8400e4dc/SteamLibrary/steamapps/common/Horizon Zero Dawn/HorizonZeroDawn.exe'", ProcID 11603 
ThreadGetProcessExitCode: no such process 11603
ThreadGetProcessExitCode: no such process 11359
ThreadGetProcessExitCode: no such process 11173
Game 1151640 created interface STEAMUSERSTATS_INTERFACE_VERSION011 / 
Game 1151640 created interface SteamController007 / Controller
Game 1151640 created interface SteamFriends017 / 
Game 1151640 created interface SteamInput001 / 
Game 1151640 created interface SteamInput001 / Controller
Game 1151640 created interface SteamUser020 / 
Game 1151640 created interface SteamUser020 / User
Game 1151640 created interface SteamUtils009 / 
Game 1151640 created interface SteamUtils009 / Utils
Game 1151640 method call count for IClientUserStats::GetAchievementDisplayAttribute : 158
Game 1151640 method call count for IClientUserStats::GetAchievement : 79
Game 1151640 method call count for IClientUserStats::RequestCurrentStats : 1
Game 1151640 method call count for IClientUtils::RecordSteamInterfaceCreation : 10
Game 1151640 method call count for IClientUtils::GetSteamUILanguage : 1
Game 1151640 method call count for IClientUtils::GetAppID : 14
Game 1151640 method call count for IClientFriends::GetPersonaName : 1
Game 1151640 method call count for IClientUser::GetSteamID : 2
Uploaded AppInterfaceStats to Steam

(process:11769): GLib-GObject-CRITICAL **: 20:38:34.517: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
src/steamexe/main.cpp (253) : Assertion Failed: reaping pid: 11769 -- gameoverlayui
src/steamexe/main.cpp (253) : Assertion Failed: reaping pid: 11769 -- gameoverlayui
Installing breakpad exception handler for appid(steam)/version(1650062193)
assert_20220416203844_54.dmp[11892]: Uploading dump (out-of-process)
/tmp/dumps/assert_20220416203844_54.dmp
assert_20220416203844_54.dmp[11892]: Finished uploading minidump (out-of-process): success = yes
assert_20220416203844_54.dmp[11892]: response: CrashID=bp-8aa14b47-647e-4d2c-8468-c23032220416
assert_20220416203844_54.dmp[11892]: file ''/tmp/dumps/assert_20220416203844_54.dmp'', upload yes: ''CrashID=bp-8aa14b47-647e-4d2c-8468-c23032220416''
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Work thread 'CContentUpdateContext::m_pCPUTh' is marked exited, but we could not immediately join prior to deleting -- proceeding without join
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)
Installing breakpad exception handler for appid(steam)/version(1650062193)

Vulkan capture not working since 0.7 - RX 5600XT

Obs stdout:

info: [linux-vkcapture] Creating texture from dmabuf 1276x1391 modifier:144115188085734146
info: [linux-vkcapture]  [0] fd:39 stride:5120 offset:0
info: [linux-vkcapture]  [1] fd:40 stride:1536 offset:7208960
error: Cannot create EGLImage: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
error: [linux-vkcapture] Could not create texture from dmabuf source

Optimus laptop

Is obs-vkcapture supposed to work on Optimus (Intel+NVIDIA) laptop? I tried on mine but I fail to capture anything when the application is rendered on the NVIDIA GPU:

$ obs-vkcapture vkcube
[obs-vkcapture] Init 0.4
MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0

Selected GPU 1: GeForce GTX 1050, type: 2
[obs-vkcapture] Injecting VK_KHR_external_memory_fd extension
[obs-vkcapture] GetMemoryFdKHR failed -3
[obs-vkcapture] ------------------- vulkan capture freed -------------------
[obs-vkcapture] vk_shtex_init failed
$ obs-glcapture eglgears_x11
EGL_VERSION = 1.5
[obs-vkcapture] Init 0.4
[obs-vkcapture] Failed to query dmabuf export
[obs-vkcapture] shtex init failed
[obs-vkcapture] ------------------- opengl capture freed -------------------
[obs-vkcapture] gl_init failed
[obs-vkcapture] Failed to query dmabuf export
[obs-vkcapture] shtex init failed
[obs-vkcapture] ------------------- opengl capture freed -------------------
[obs-vkcapture] gl_init failed
[...]
$ obs-glcapture glxgears
Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
[obs-vkcapture] Init 0.4
[obs-vkcapture] Failed to get buffer from pixmap
[obs-vkcapture] shtex init failed
[obs-vkcapture] ------------------- opengl capture freed -------------------
[obs-vkcapture] gl_init failed
[obs-vkcapture] Failed to get buffer from pixmap
[obs-vkcapture] shtex init failed
[obs-vkcapture] ------------------- opengl capture freed -------------------
[obs-vkcapture] gl_init failed
[...]

Packages used on Arch Linux:

  • obs-vkcapture-git r48.091a0e9-1
  • obs-studio-git 26.1.2.r290.ga52012e8c-1

OBS Studio logs: 2021-03-30 16-07-47.txt

Incompatibility with Steam in-game overlay

When I'm trying to open in-game Steam overlay with obs-vkcapture enabled it crashes or freezes my game (tested with some
games, including Proton and native (at least Valheim does)).

I'm using X11 (AwesomeWM), OBS Studio 27.0.0-rc3-48-gca88ba8bb, vkcapture is c4e6728 and Mesa version is 21.1.0.

Here is a log file from Deep Rock Galactic.log with obs-vkcapture as example.

Game Capture Mostly Working with Windowed mode

After testing for a while with game capture on steam linux native games and proton games, I noticed that most of the recordings stutter heavily on fullscreen mode , but not on windowed mode ingame. Is it meant to only work with windowed mode?

Doesn't work with Mangohud

obs-glcapture doesn't seem to work when used at the same time as Mangohud. Instead, the outermost invocation gets precedence. For example, when running a OpenGL Steam game like:

obs-glcapture mangohud %command%

Game capture works, but Mangohud doesn't work.

If I use:

mangohud obs-glcapture %command%

Now Mangohud works, but game captures doesn't. (I just get a black screen.)

Is it possible to make them work at the same time?

opengl capture does not work on amd(mesa) for anything other than glxgears

Heya,

So the opengl capture works for glxgears, but glmark2 fails. I thought this might be due to only having the 64 bit library, as glmark2 is 32 bit, so I tested it with a few linux native steam games that are 64 bit and use ogl.

I validated that the LD_PRELOAD is working by checking the libraries loaded via KDE's task manager (you can right click the process->detailed memory info to view a list of all loaded libraries)

Here's what it looks like from the task manager listing:

Library loaded:
144 KB /usr/lib64/libobs_glcapture.so

Here's the launch option being used:

LD_PRELOAD=/usr/lib64/libobs_glcapture.so %command%

64 bit check from Last Epoch:

$ file Last\ Epoch.x86_64
Last Epoch.x86_64: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=2a1da7a4ffbc16bad3cab634551563522905febf, stripped

64 bit check from Mad Max:

$ file MadMax
MadMax: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=960c435f879a39e4e1046aee91f9047a6d16a0a5, stripped

64 bit check from Dying Light:

$ file DyingLightGame
DyingLightGame: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=c72b738701309c627b4499ed024cfd2224a03fcf, stripped

As mentioned, glxgears works:

$ file $(which glxgears)
/usr/bin/glxgears: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=9206f610e9d744622d7c83c8cafaaf3fa47b401b, for GNU/Linux 3.2.0, stripped

Note:

A resource that may help with improvement on opengl capture which I've tried in the past is the source from this:

https://github.com/MaartenBaert/ssr/tree/master/glinject

Relevant reddit discussion:
https://www.reddit.com/r/linux_gaming/comments/9j62uv/experimental_obs_plugin_for_gl_game_capturing/

Thanks again for your work, having a vulkan capture on linux is awesome.

No Vulkan program willl launch with VKCAPTURE=1

Hey there.
i would like to try out this extension but no Vulkan program willl launch with VKCAPTURE=1
I get an [obs-vkcapture] Init 0.3 and then nothing.
Nothing in journal either. No crash no nothing.
Neither wayland nor x.
Any tips on how to debug this?

I am on arch with obs-vkcapture-git from AUR and i use an rx580 with the current mesa driver.

Game Capture won't appear in sources

Hello, I'm on Fedora 36 Beta with Plasma as the DE. I downloaded the project, built it and installed it. I lanched OBS with OBS_USE_EGL=1 obs but the Game Capture source doesn't appear anywhere. Am I missing something?
Also downloaded the Flatpak OBS and VKCapture, there the source appears but it won't capture anything, potentially cause Steam is a repo package and not he Flatpak.

fedora 35 and OpenGL capture

Hi,

I compile v1.0.1 and I have a issue with OpenGL Capture

$ obs-glcapture glxgears
[obs-vkcapture] Failed to open libdl.so
Error: couldn't get an RGB, Double-buffered visual

I use an up to date Fedora 35 KDE on Wayland

Vulkan Capture work

$ obs-vkcapture vkcube
[obs-vkcapture] Init Vulkan 1.0.1
[obs-vkcapture] CreateInstance
[obs-vkcapture] CreateInstance VK_SUCCESS
WARNING: radv is not a conformant Vulkan implementation, testing use only.
Selected GPU 0: AMD RADV SIENNA_CICHLID, type: 2
[obs-vkcapture] CreateXcbSurfaceKHR
[obs-vkcapture] CreateDevice
[obs-vkcapture] Injecting VK_KHR_external_memory_fd extension
[obs-vkcapture] Injecting VK_EXT_image_drm_format_modifier extension
[obs-vkcapture] CreateDevice VK_SUCCESS
[obs-vkcapture] CreateSwapchainKHR VK_SUCCESS
[obs-vkcapture] GetSwapchainImagesKHR VK_SUCCESS
[obs-vkcapture] GetSwapchainImagesKHR VK_SUCCESS

install error

Error only happen when running make && make install

/home/buymymojo/obs-vkcapture/src/vkcapture.c:20:10: fatal error: obs-nix-platform.h: No such file or directory 20 | #include <obs-nix-platform.h> | ^~~~~~~~~~~~~~~~~~~~ compilation terminated. make[2]: *** [CMakeFiles/linux-vkcapture.dir/build.make:82: CMakeFiles/linux-vkcapture.dir/src/vkcapture.c.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:124: CMakeFiles/linux-vkcapture.dir/all] Error 2 make: *** [Makefile:149: all] Error 2 [buymymojo@buymymojo build]$

Installing amd vulkan breaks vulkan capture

If I have either amdvlk or vulkan-amdgpu-pro installed, OBS_VKCAPTURE=1 fails with 'Socket sendmsg error: Bad file descriptor'.

Explicitly setting VK_ICD_FILENAMES to use radeon_icd.x86_64.json fixes it.

obs-vkcapture doesn't capture MangoHUD and vkBasalt

obs-vkcapture captures the game without the effects applied by vkBasalt or MangoHUDs overlay. It used to capture those, but after a system update it stopped.

System

OS: Arch Linux
Kernel: 5.16.0-zen1-1-zen
xorg-server 21.1.3-1
Mesa version: Mesa 22.0.0-devel (git-307cdb7147)
obs-vkcapture(AUR package) version: obs-vkcapture-git r176.f8a6a71-1

Multiple planes cause the capture full of glitches

For sure it related to 9ef7c68 talking about Vulkan, because with b8f9543 it works fine. Not sure if GL capture is working fine, but I can test it later.

An example output taken in Deep Rock Galactic, but the issue isn't game specific.

mpv-shot0001

Terminal output

info: [linux-vkcapture] Creating texture from dmabuf 1920x1080 modifier:72057594037927935
info: [linux-vkcapture]  [0] fd:111 stride:8192 offset:0

Provide SONAME for libVkLayer_obs_vkcapture.so and libobs_glcapture.so

Hello,

I made a Gentoo ebuild for this awesome project, in GURU (you can update the README to mention it if you are good with that), and I get a QA notice about two libraries:

 * QA Notice: The following shared libraries lack a SONAME
 * /usr/lib64/libVkLayer_obs_vkcapture.so
 * /usr/lib64/libobs_glcapture.so

When manually installed with the instructions in the README, these files also find themselves at the same directory, here's what's in the install_manifest.txt

/usr/lib/libVkLayer_obs_vkcapture.so
/usr/lib/libobs_glcapture.so

The documentation about this QA notice seem to either suggest providing a SONAME for these libraries, or they actually are at the wrong place, since they're installed in a shared location, and need to be in /usr/lib64/obs-plugins/ instead ?

Thanks!

Adel

Capturing Blender 2.92 and newer works strange

Hi. Thank you for your plugin, with supported games it works great! I tried to capture Blender 2.92, 2.93, but got only some part of interface on screen. Blender 2.90 works fine. Can you help me to fix this strange capture artifacts?

P.S. Cmake 3.19 is necessary? I successfully compiled it with 3.18 on Debian 11.

Screenshot 2021-08-08 18-10-36
Screenshot 2021-08-08 18-11-04

Running a game with obs-glcapture in a Window breaks drawing

If you run a game like Stardew Valley or Rimworld in a Window, having run it with obs-glcapture and then move the Window, it visually breaks with a result similar to this

I'm running the games on the Intel card of an Optimus Laptop

Intel HD 4600
nVidia GTX 950M
i7 4720HQ
12GB RAM
Arch Linux
Gnome

OBS-VKCapture doesnt shows up as source in OBS

1starting the game, i see obs-vkcapture init and injecting two extension, starting obs i see its loading linux-vkcapture.so, but in obs i cant select the option as source, because its not showing up.

Screenshot from 2021-08-14 16-36-35

Any idea where it might get struck?

Does this plugin require running a wayland session?

While looking at the repo I didn't see a requirement, running obs gives me this
error: [linux-vkcapture] linux-vkcapture cannot run on non-EGL platforms warning: Failed to initialize module 'linux-vkcapture.so'
And I am running obs-studio-git.
If wayland is required, it might be a good idea to add it to readme.
Thanks in advance.

obs-vkcapture starts capture Steam in-game overlay in Proton games

I'm not convinced if I should treat that like a real issue, but it adds some inconstancy, considering it doesn't appear in native Valheim and Metro Exodus. Also I can't tell for sure when it first appeared, but a month ago I didn't see in-game overlay in the capture.

[Request] Show cursor (mouse pointer)

The request is about capture the cursor when the cursor invades the canvas of the game-capture if it's possible.

Otherwise it's a solid plugin and thank you for it.

AUR package needs update

When i wanna update the aur package on my install it keep failing with:

`CMake Error at CMakeLists.txt:44 (find_package):
By not providing "FindLibObs.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "LibObs", but
CMake did not find one.

Could not find a package configuration file provided by "LibObs" with any
of the following names:

LibObsConfig.cmake
libobs-config.cmake

Add the installation prefix of "LibObs" to CMAKE_PREFIX_PATH or set
"LibObs_DIR" to a directory containing one of the above files. If "LibObs"
provides a separate development package or SDK, be sure it has been
installed.
`
Same with building from here right away. Checking obs gits they do not provide the FindLibObs.cmake anymore, but refer to an updated wiki to check it how to.

protobuf: Padding in C structs can be strange.

Generalize the IPC to allow development of vkcapture aware applications.

Edit: The issue is compatibility with other programming languages, it's unsafe to try and match a C struct... where the choice of llvm or gcc could become important. Specifically, I'm writing in Rust and as explicitly adding 4 bytes of padding would work it's not as ideal as switching to something else... The use of bool is also suspicious.

I've arbitrarily chosen: https://github.com/eerimoq/pbtools

In some cases obs-vkcapture causes OBS segfault

Well, generally speaking I start meeting crashes when I tried to close my game (it happens almost everytime with Deep Rock Galactic), but I also have noticed a few crashes when I minimize my games or they lose focus (happens with Metro 2033 in Proton). Tested with different version of Proton, but no success.

I don't think I need to provide logs from other games, because they look the same, so here is the logs files taken with Deep Rock Galactic.

Steam

[obs-vkcapture] Init 0.6
[obs-vkcapture] Injecting VK_KHR_external_memory_fd extension
[obs-vkcapture] Injecting VK_EXT_image_drm_format_modifier extension
[obs-vkcapture] DRM format modifiers support not available
Fossilize INFO: Overriding serialization path: "/mnt/evo/SteamLibrary/steamapps/shadercache/548430/fozpipelinesv5/steamapprun_pipeline_cache".
[obs-vkcapture] Texture VK_FORMAT_B8G8R8A8_UNORM 1920x1080
[obs-vkcapture] ------------------ vulkan capture started ------------------
RecordSteamInterfaceCreation (PID 8230): SteamNetworkingUtils003 / 
RecordSteamInterfaceCreation (PID 8230): SteamNetworkingUtils003 / 
[obs-vkcapture] ------------------- vulkan capture freed -------------------

obs doesn't say something interesting before actually crash, and the last line before its segfault is.

info: [linux-vkcapture] Creating texture from dmabuf 9 1920x1080 stride:7680 offset:0

gdb attached to an obs process.

[New LWP 7100]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
--Type <RET> for more, q to quit, c to continue without paging--
0x00007ff5f527037f in poll () from /usr/lib/libc.so.6
(gdb) continue 
Continuing.

Thread 32 "libobs: graphic" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ff558f0e640 (LWP 7055)]
0x00007ff5d0002670 in ?? () from /usr//lib/obs-plugins/linux-vkcapture.so
(gdb) bt 
#0  0x00007ff5d0002670 in  () at /usr//lib/obs-plugins/linux-vkcapture.so
#1  0x00007ff5f6387441 in obs_source_video_tick () at /usr/lib/libobs.so.0
#2  0x00007ff5f63c46a1 in obs_graphics_thread_loop () at /usr/lib/libobs.so.0
#3  0x00007ff5f63c5cc9 in obs_graphics_thread () at /usr/lib/libobs.so.0
#4  0x00007ff5f5352299 in start_thread () at /usr/lib/libpthread.so.0
#5  0x00007ff5f527b053 in clone () at /usr/lib/libc.so.6

i cant do cmake

CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message):
Could NOT find Vulkan (missing: Vulkan_LIBRARY Vulkan_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:393 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.16/Modules/FindVulkan.cmake:71 (find_package_handle_standard_args)
CMakeLists.txt:6 (find_package)

-- Configuring incomplete, errors occurred!
See also "/home/semen/Загрузки/obs-vkcapture-master/build/CMakeFiles/CMakeOutput.log".

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.