Skip to content

Capture freezes if multiple clients are created by the same process #263

@Kaitasy

Description

@Kaitasy

Describe the bug
The OBS game capture source freezes after a process causes multiple clients to be created, without freeing previous clients (?). Restarting OBS while the game is still running fixes the capture source.

Screenshots or video
Video demonstrating the issue

System (please complete the following information):

  • OS: Arch Linux x86_64 (Linux 6.16.5-arch1-1)
  • GPU: AMD Radeon RX 6600
  • Mesa version: 25.2.2
  • obs-vkcapture version: 1.5.3

OBS log:

15:33:57.247: Platform: Wayland
15:33:57.247: CPU Name: AMD Ryzen 9 3900X 12-Core Processor
15:33:57.247: CPU Speed: 4249.230MHz
15:33:57.248: Physical Cores: 12, Logical Cores: 24
15:33:57.248: Physical Memory: 32006MB Total, 8185MB Free
15:33:57.248: Kernel Version: Linux 6.16.5-arch1-1
15:33:57.248: Distribution: "Arch Linux" Unknown
15:33:57.248: Desktop Environment: Hyprland (Hyprland)
15:33:57.248: Session Type: wayland
15:33:57.249: Current Date/Time: 2025-09-10, 15:33:57
15:33:57.249: Browser Hardware Acceleration: true
15:33:57.249: Qt Version: 6.9.2 (runtime), 6.9.1 (compiled)
15:33:57.249: Portable mode: false
15:33:57.294: OBS 31.1.2 (linux)
15:33:57.294: ---------------------------------
15:33:57.295: ---------------------------------
15:33:57.295: audio settings reset:
15:33:57.295: 	samples per sec: 48000
15:33:57.295: 	speakers:        2
15:33:57.295: 	max buffering:   960 milliseconds
15:33:57.295: 	buffering type:  dynamically increasing
15:33:57.296: ---------------------------------
15:33:57.296: Initializing OpenGL...
15:33:57.296: Using EGL/Wayland
15:33:57.341: Initialized EGL 1.5
15:33:57.359: Loading up OpenGL on adapter AMD AMD Radeon RX 6600 (radeonsi, navi23, LLVM 20.1.8, DRM 3.64, 6.16.5-arch1-1)
15:33:57.359: OpenGL loaded successfully, version 4.6 (Core Profile) Mesa 25.2.2-arch1.2, shading language 4.60
15:33:57.388: ---------------------------------
15:33:57.388: video settings reset:
15:33:57.388: 	base resolution:   2560x1440
15:33:57.388: 	output resolution: 2560x1440
15:33:57.388: 	downscale filter:  Bicubic
15:33:57.388: 	fps:               120/1
15:33:57.388: 	format:            NV12
15:33:57.388: 	YUV mode:          Rec. 709/Partial
15:33:57.388: NV12 texture support enabled
15:33:57.388: P010 texture support not available
15:33:57.392: Audio monitoring device:
15:33:57.392: 	name: Default
15:33:57.392: 	id: default
15:33:57.392: ---------------------------------
15:33:57.399: Failed to load 'en-US' text for module: 'decklink-captions.so'
15:33:57.406: Failed to load 'en-US' text for module: 'decklink-output-ui.so'
15:33:57.413: A DeckLink iterator could not be created.  The DeckLink drivers may not be installed
15:33:57.413: Failed to initialize module 'decklink.so'
15:33:57.498: Failed to load 'en-US' text for module: 'liblooking-glass-obs.so'
15:33:57.558: [pipewire] Available capture sources:
15:33:57.558: [pipewire]     - Monitor source
15:33:57.558: [pipewire]     - Window source
15:33:57.578: v4l2loopback not installed, virtual camera not registered
15:33:57.586: [linux-vkcapture] plugin loaded successfully (version 1.5.3)
15:33:57.634: VAAPI: API version 1.22
15:33:57.635: FFmpeg VAAPI H264 encoding supported
15:33:57.639: FFmpeg VAAPI AV1 encoding not supported
15:33:57.643: FFmpeg VAAPI HEVC encoding supported
15:33:57.668: os_dlopen(libnvidia-encode.so.1->libnvidia-encode.so.1): libnvidia-encode.so.1: cannot open shared object file: No such file or directory
15:33:57.668: 
15:33:57.668: NVENC not supported
15:33:57.668: Failed to initialize module 'obs-nvenc.so'
15:33:57.747: os_dlopen(/usr/lib/obs-plugins/obs-websocket.so->/usr/lib/obs-plugins/obs-websocket.so): libqrcodegencpp.so.1: cannot open shared object file: No such file or directory
15:33:57.747: 
15:33:57.747: Module '/usr/lib/obs-plugins/obs-websocket.so' not loaded
15:33:57.773: ---------------------------------
15:33:57.773:   Loaded Modules:
15:33:57.773:     text-freetype2.so
15:33:57.773:     rtmp-services.so
15:33:57.773:     obs-x264.so
15:33:57.773:     obs-webrtc.so
15:33:57.773:     obs-vst.so
15:33:57.773:     obs-transitions.so
15:33:57.773:     obs-qsv11.so
15:33:57.773:     obs-outputs.so
15:33:57.773:     obs-libfdk.so
15:33:57.773:     obs-filters.so
15:33:57.773:     obs-ffmpeg.so
15:33:57.773:     linux-vkcapture.so
15:33:57.773:     linux-v4l2.so
15:33:57.773:     linux-pulseaudio.so
15:33:57.773:     linux-pipewire.so
15:33:57.773:     linux-pipewire-audio.so
15:33:57.773:     linux-jack.so
15:33:57.773:     linux-capture.so
15:33:57.773:     linux-alsa.so
15:33:57.773:     liblooking-glass-obs.so
15:33:57.773:     image-source.so
15:33:57.773:     frontend-tools.so
15:33:57.773:     decklink-output-ui.so
15:33:57.773:     decklink-captions.so
15:33:57.773: ---------------------------------
15:33:57.773: ---------------------------------
15:33:57.773: Available Encoders:
15:33:57.773:   Video Encoders:
15:33:57.773: 	- ffmpeg_svt_av1 (SVT-AV1)
15:33:57.773: 	- ffmpeg_aom_av1 (AOM AV1)
15:33:57.773: 	- ffmpeg_vaapi_tex (FFmpeg VAAPI H.264)
15:33:57.773: 	- hevc_ffmpeg_vaapi_tex (FFmpeg VAAPI HEVC)
15:33:57.773: 	- obs_x264 (x264)
15:33:57.773:   Audio Encoders:
15:33:57.773: 	- ffmpeg_aac (FFmpeg AAC)
15:33:57.773: 	- ffmpeg_opus (FFmpeg Opus)
15:33:57.773: 	- ffmpeg_pcm_s16le (FFmpeg PCM (16-bit))
15:33:57.773: 	- ffmpeg_pcm_s24le (FFmpeg PCM (24-bit))
15:33:57.773: 	- ffmpeg_pcm_f32le (FFmpeg PCM (32-bit float))
15:33:57.773: 	- ffmpeg_alac (FFmpeg ALAC (24-bit))
15:33:57.773: 	- ffmpeg_flac (FFmpeg FLAC (16-bit))
15:33:57.773: 	- libfdk_aac (libfdk AAC)
15:33:57.773: ==== Startup complete ===============================================
15:33:57.824: All scene data cleared
15:33:57.824: ------------------------------------------------
15:33:57.828: pulse-input: Server name: 'PulseAudio (on PipeWire 1.4.7) 15.0.0'
15:33:57.828: pulse-input: Audio format: float32le, 48000 Hz, 1 channels
15:33:57.828: pulse-input: Started recording from 'alsa_input.usb-Focusrite_Scarlett_2i2_USB_Y81D0Z1157634E-00.HiFi__Mic1__source'
15:33:57.828: [Loaded global audio device]: 'Mic'
15:33:57.831: [pipewire-audio] Created stream 0x55e710e7dcc0
15:33:57.832: [pipewire-audio] Created stream 0x55e711bc90a0
15:33:57.845: [pipewire-audio] Created stream 0x55e711c38fa0
15:33:57.845: ext_screencopy_manager_v1 not available
15:33:57.846: Switched to scene 'Scene'
15:33:57.846: ------------------------------------------------
15:33:57.846: Loaded scenes:
15:33:57.846: - scene 'Scene':
15:33:57.846:     - source: 'System' (pipewire_audio_application_capture)
15:33:57.846:     - source: 'Media' (pipewire_audio_application_capture)
15:33:57.846:     - source: 'Comms' (pipewire_audio_application_capture)
15:33:57.846:     - source: 'Game Capture' (vkcapture-source)
15:33:57.846: ------------------------------------------------
15:33:57.886: [pipewire-audio] 0x55e710e7dcc0 Got format: rate 48000 - channels 2 - format 8
15:33:57.891: [pipewire-audio] 0x55e711bc90a0 Got format: rate 48000 - channels 2 - format 8
15:33:57.893: adding 21 milliseconds of audio buffering, total audio buffering is now 21 milliseconds (source: System)
15:33:57.893: 
15:33:57.894: [pipewire-audio] 0x55e711c38fa0 Got format: rate 48000 - channels 2 - format 8
15:34:12.663: [linux-vkcapture] Client 1 connected (pid=684997)
15:34:13.691: [linux-vkcapture] Creating texture from dmabuf 1252x663 modifier:144115188486290179
15:34:13.691: [linux-vkcapture]  [0] fd:114 stride:5120 offset:0
15:34:13.691: [linux-vkcapture]  [1] fd:115 stride:1536 offset:3932160
15:34:21.027: [linux-vkcapture] Client 2 connected (pid=684997)
15:34:41.265: ==== Shutting down ==================================================
15:34:41.267: pulse-input: Stopped recording from 'alsa_input.usb-Focusrite_Scarlett_2i2_USB_Y81D0Z1157634E-00.HiFi__Mic1__source'
15:34:41.267: pulse-input: Got 1736 packets with 2083200 frames
15:34:41.271: [pipewire-audio] Error id:0 seq:91 res:-2 :unknown resource 23 op:7
15:34:41.273: [linux-vkcapture] destroy
15:34:41.287: All scene data cleared
15:34:41.287: ------------------------------------------------
15:34:41.328: [linux-vkcapture] Client 1 disconnected
15:34:41.328: [linux-vkcapture] Client 2 disconnected
15:34:41.328: [linux-vkcapture] plugin unloaded
15:34:41.334: [Scripting] Total detached callbacks: 0
15:34:41.334: Freeing OBS context data
15:34:41.346: == Profiler Results =============================
15:34:41.346: run_program_init: 688.182 ms
15:34:41.346:  ┣OBSApp::AppInit: 12.229 ms
15:34:41.346:  ┃ ┗OBSApp::InitLocale: 0.811 ms
15:34:41.346:  ┗OBSApp::OBSInit: 642.752 ms
15:34:41.346:    ┣obs_startup: 2.335 ms
15:34:41.346:    ┗OBSBasic::OBSInit: 595.343 ms
15:34:41.346:      ┣OBSBasic::InitBasicConfig: 0.473 ms
15:34:41.346:      ┣OBSBasic::ResetAudio: 0.221 ms
15:34:41.346:      ┣OBSBasic::ResetVideo: 96.504 ms
15:34:41.346:      ┃ ┗obs_init_graphics: 92.564 ms
15:34:41.346:      ┃   ┗shader compilation: 28.007 ms
15:34:41.346:      ┣OBSBasic::InitOBSCallbacks: 0.003 ms
15:34:41.346:      ┣OBSBasic::InitHotkeys: 0.02 ms
15:34:41.346:      ┣obs_load_all_modules2: 380.711 ms
15:34:41.346:      ┃ ┣obs_init_module(decklink-captions.so): 0 ms
15:34:41.346:      ┃ ┣obs_init_module(decklink-output-ui.so): 0 ms
15:34:41.346:      ┃ ┣obs_init_module(decklink.so): 0.057 ms
15:34:41.346:      ┃ ┣obs_init_module(frontend-tools.so): 62.263 ms
15:34:41.346:      ┃ ┣obs_init_module(image-source.so): 0.01 ms
15:34:41.346:      ┃ ┣obs_init_module(liblooking-glass-obs.so): 0.003 ms
15:34:41.346:      ┃ ┣obs_init_module(linux-alsa.so): 0.003 ms
15:34:41.346:      ┃ ┣obs_init_module(linux-capture.so): 0 ms
15:34:41.346:      ┃ ┣obs_init_module(linux-jack.so): 0.003 ms
15:34:41.346:      ┃ ┣obs_init_module(linux-pipewire-audio.so): 0.004 ms
15:34:41.346:      ┃ ┣obs_init_module(linux-pipewire.so): 16.467 ms
15:34:41.346:      ┃ ┣obs_init_module(linux-pulseaudio.so): 0.004 ms
15:34:41.346:      ┃ ┣obs_init_module(linux-v4l2.so): 3.938 ms
15:34:41.346:      ┃ ┣obs_init_module(linux-vkcapture.so): 0.075 ms
15:34:41.346:      ┃ ┣obs_init_module(obs-ffmpeg.so): 13.586 ms
15:34:41.346:      ┃ ┣obs_init_module(obs-filters.so): 0.023 ms
15:34:41.346:      ┃ ┣obs_init_module(obs-libfdk.so): 0.001 ms
15:34:41.346:      ┃ ┣obs_init_module(obs-nvenc.so): 0.073 ms
15:34:41.346:      ┃ ┃ ┗nvenc_check: 0.063 ms
15:34:41.346:      ┃ ┣obs_init_module(obs-outputs.so): 0.003 ms
15:34:41.346:      ┃ ┣obs_init_module(obs-qsv11.so): 9.771 ms
15:34:41.346:      ┃ ┣obs_init_module(obs-transitions.so): 0.007 ms
15:34:41.346:      ┃ ┣obs_init_module(obs-vst.so): 0.003 ms
15:34:41.346:      ┃ ┣obs_init_module(obs-webrtc.so): 0.003 ms
15:34:41.346:      ┃ ┣obs_init_module(obs-x264.so): 0.001 ms
15:34:41.346:      ┃ ┣obs_init_module(rtmp-services.so): 0.867 ms
15:34:41.347:      ┃ ┗obs_init_module(text-freetype2.so): 0.008 ms
15:34:41.347:      ┣OBSBasic::InitService: 1.104 ms
15:34:41.347:      ┣OBSBasic::ResetOutputs: 5.113 ms
15:34:41.347:      ┣OBSBasic::CreateHotkeys: 0.018 ms
15:34:41.347:      ┣OBSBasic::InitPrimitives: 0.089 ms
15:34:41.347:      ┗OBSBasic::Load: 71.2 ms
15:34:41.347: obs_hotkey_thread(25 ms): min=0 ms, median=0 ms, max=0.001 ms, 99th percentile=0 ms, 100% below 25 ms
15:34:41.347: audio_thread(Audio): min=0.003 ms, median=0.046 ms, max=0.409 ms, 99th percentile=0.096 ms
15:34:41.347: obs_graphics_thread(8.33333 ms): min=0.057 ms, median=0.2 ms, max=18.795 ms, 99th percentile=0.399 ms, 99.9431% below 8.333 ms
15:34:41.347:  ┣tick_sources: min=0 ms, median=0.003 ms, max=0.182 ms, 99th percentile=0.01 ms
15:34:41.347:  ┣output_frame: min=0.049 ms, median=0.112 ms, max=3.274 ms, 99th percentile=0.25 ms
15:34:41.347:  ┃ ┗gs_context(video->graphics): min=0.049 ms, median=0.111 ms, max=3.27 ms, 99th percentile=0.25 ms
15:34:41.347:  ┃   ┣render_video: min=0.003 ms, median=0.054 ms, max=0.935 ms, 99th percentile=0.138 ms
15:34:41.347:  ┃   ┃ ┗render_main_texture: min=0.002 ms, median=0.053 ms, max=0.932 ms, 99th percentile=0.133 ms
15:34:41.347:  ┃   ┗gs_flush: min=0.001 ms, median=0.05 ms, max=0.362 ms, 99th percentile=0.107 ms
15:34:41.347:  ┗render_displays: min=0.002 ms, median=0.081 ms, max=12.684 ms, 99th percentile=0.149 ms
15:34:41.347: =================================================
15:34:41.347: == Profiler Time Between Calls ==================
15:34:41.347: obs_hotkey_thread(25 ms): min=25.01 ms, median=25.059 ms, max=27.823 ms, 99.7154% within ±2% of 25 ms (0% lower, 0.284576% higher)
15:34:41.347: obs_graphics_thread(8.33333 ms): min=2.998 ms, median=8.333 ms, max=18.799 ms, 99.5824% within ±2% of 8.333 ms (0.208808% lower, 0.208808% higher)
15:34:41.347: =================================================
15:34:41.349: Number of memory leaks: 0

Game log:
https://gist.github.com/Kaitasy/2c96e79cd00c41f9251f3cc1faca2b36

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions