Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some OpenGL programs don't work. #185

Closed
Asurasim opened this issue Nov 27, 2023 · 13 comments
Closed

Some OpenGL programs don't work. #185

Asurasim opened this issue Nov 27, 2023 · 13 comments
Labels

Comments

@Asurasim
Copy link

Describe the bug
This is the first bug report I have ever done so I apologize if I have written something wrong or missed anything.

I have been trying this out to compare it with the Hyprland window capture and this has overall been much easier and better to use. However, some OpenGL software gives an error for obs-gamecapture and won't display anything in the obs window, the program still runs normally otherwise.

It has worked perfectly for all Vulkan games I have tried, and even some OpenGL applications.

What has worked:
vkcube (and every other Vulkan application I've tried, won't list them here as they have had no errors.)
glxgears
Celeste (Native - I'm pretty sure it uses OpenGL)
Olive video editor (Uses OpenGL.)
bsnes (Flatpak - Using Zink, I know Zink converts OpenGL to VK, but I was unsure whether it was Flatpak causing the errors or not by this point.)

What hasn't worked:
Garry's Mod (Native version - x86-64 beta build (Unless using Zink.))
Parallel-Launcher (Flatpak - Zink causes roms to not load unless using the parallel core, which uses Vulkan and doesn't work with old Mario 64 romhacks.)
puNES (Flatpak - Zink causes window to not display anything.)
RMG (Noticed this emulator was listed in another issue and decided to test it - same problem occured)
bsnes (Flatpak - When not using Zink)

Screenshots or video
Nothing displays so I'm not sure if there's anything I can screenshot.

System (please complete the following information):

  • OS: Arch Linux
  • GPU: Radeon RX 6950XT
  • Mesa version: 1:23.2.1-2
  • obs-vkcapture version: git (r290.50547aa-1)

OBS log:

18:50:52.234: Platform: Wayland
18:50:52.234: CPU Name: AMD Ryzen 9 3900XT 12-Core Processor
18:50:52.234: CPU Speed: 2200.000MHz
18:50:52.235: Physical Cores: 12, Logical Cores: 24
18:50:52.235: Physical Memory: 32010MB Total, 4208MB Free
18:50:52.235: Kernel Version: Linux 6.6.2-arch1-1
18:50:52.235: Distribution: "Arch Linux" Unknown
18:50:52.235: Desktop Environment: Hyprland ()
18:50:52.235: Session Type: wayland
18:50:52.237: Qt Version: 6.6.0 (runtime), 6.6.0 (compiled)
18:50:52.237: Portable mode: false
18:50:52.258: OBS 30.0.0-1 (linux)
18:50:52.258: ---------------------------------
18:50:52.258: ---------------------------------
18:50:52.258: audio settings reset:
18:50:52.258: 	samples per sec: 48000
18:50:52.258: 	speakers:        2
18:50:52.258: 	max buffering:   960 milliseconds
18:50:52.258: 	buffering type:  dynamically increasing
18:50:52.259: ---------------------------------
18:50:52.259: Initializing OpenGL...
18:50:52.259: Using EGL/Wayland
18:50:52.293: Initialized EGL 1.5
18:50:52.310: Loading up OpenGL on adapter AMD AMD Radeon RX 6950 XT (navi21, LLVM 16.0.6, DRM 3.54, 6.6.2-arch1-1)
18:50:52.310: OpenGL loaded successfully, version 4.6 (Core Profile) Mesa 23.2.1-arch1.2, shading language 4.60
18:50:52.338: ---------------------------------
18:50:52.338: video settings reset:
18:50:52.338: 	base resolution:   1920x1080
18:50:52.338: 	output resolution: 1920x1080
18:50:52.338: 	downscale filter:  Bicubic
18:50:52.338: 	fps:               60/1
18:50:52.338: 	format:            NV12
18:50:52.338: 	YUV mode:          Rec. 709/Partial
18:50:52.338: NV12 texture support not available
18:50:52.338: P010 texture support not available
18:50:52.340: Audio monitoring device:
18:50:52.340: 	name: Default
18:50:52.340: 	id: default
18:50:52.340: ---------------------------------
18:50:52.348: Failed to load 'en-US' text for module: 'decklink-captions.so'
18:50:52.355: Failed to load 'en-US' text for module: 'decklink-output-ui.so'
18:50:52.362: A DeckLink iterator could not be created.  The DeckLink drivers may not be installed
18:50:52.362: Failed to initialize module 'decklink.so'
18:50:52.483: [pipewire] Available captures:
18:50:52.483: [pipewire]     - Desktop capture
18:50:52.483: [pipewire]     - Window capture
18:50:52.506: v4l2loopback not installed, virtual camera disabled
18:50:52.514: [linux-vkcapture] plugin loaded successfully (version 1.4.5)
18:50:52.537: VAAPI: API version 1.20
18:50:52.539: FFmpeg VAAPI H264 encoding supported
18:50:52.545: FFmpeg VAAPI HEVC encoding supported
18:50:52.608: [obs-vaapi] version: 0.4.0, gst-runtime: 1.22.7
18:50:52.612: [obs-vaapi] found vah265enc
18:50:52.612: [obs-vaapi] found vah264enc
18:50:52.612: [obs-vaapi] found vaapih264enc
18:50:52.612: [obs-vaapi] found vaapih265enc
18:50:52.799: [LiveSplit One][obs_livesplit_one::auto_splitters] Auto splitter list loaded.
18:50:52.799: ---------------------------------
18:50:52.799:   Loaded Modules:
18:50:52.799:     libobs-livesplit-one.so
18:50:52.799:     text-freetype2.so
18:50:52.799:     rtmp-services.so
18:50:52.799:     obs-x264.so
18:50:52.799:     obs-vst.so
18:50:52.799:     obs-vaapi.so
18:50:52.799:     obs-transitions.so
18:50:52.799:     obs-qsv11.so
18:50:52.799:     obs-outputs.so
18:50:52.799:     obs-libfdk.so
18:50:52.799:     obs-filters.so
18:50:52.799:     obs-ffmpeg.so
18:50:52.799:     linux-vkcapture.so
18:50:52.799:     linux-v4l2.so
18:50:52.799:     linux-pulseaudio.so
18:50:52.799:     linux-pipewire.so
18:50:52.799:     linux-jack.so
18:50:52.799:     linux-capture.so
18:50:52.799:     linux-alsa.so
18:50:52.799:     image-source.so
18:50:52.799:     frontend-tools.so
18:50:52.799:     decklink-output-ui.so
18:50:52.799:     decklink-captions.so
18:50:52.799: ---------------------------------
18:50:52.799: ==== Startup complete ===============================================
18:50:52.858: All scene data cleared
18:50:52.858: ------------------------------------------------
18:50:52.861: pulse-input: Server name: 'PulseAudio (on PipeWire 0.3.85) 15.0.0'
18:50:52.861: pulse-input: Audio format: float32le, 48000 Hz, 2 channels
18:50:52.861: pulse-input: Started recording from 'primary.monitor'
18:50:52.861: [Loaded global audio device]: 'Primary'
18:50:52.862: pulse-input: Server name: 'PulseAudio (on PipeWire 0.3.85) 15.0.0'
18:50:52.862: pulse-input: Audio format: float32le, 48000 Hz, 2 channels
18:50:52.862: pulse-input: Started recording from 'friends.monitor'
18:50:52.862: [Loaded global audio device]: 'Friends'
18:50:52.862: pulse-input: Server name: 'PulseAudio (on PipeWire 0.3.85) 15.0.0'
18:50:52.862: pulse-input: Audio format: s16le, 48000 Hz, 2 channels
18:50:52.862: pulse-input: Started recording from 'alsa_input.usb-Samson_Technologies_Samson_Meteor_Mic-00.analog-stereo'
18:50:52.862: [Loaded global audio device]: 'Mic'
18:50:52.862:     - filter: 'Limiter' (limiter_filter)
18:50:52.916: PipeWire initialized
18:50:52.916: PipeWire initialized
18:50:52.917: PipeWire initialized
18:50:52.964: ext_screencopy_manager_v1 not available
18:50:52.964: Switched to scene '4:3'
18:50:52.965: ------------------------------------------------
18:50:52.965: Loaded scenes:
18:50:52.965: - scene '4:3':
18:50:52.972:     - source: 'bg' (image_source)
18:50:52.972:     - source: 'LiveSplit One' (livesplit-one)
18:50:52.972:     - source: 'nes' (pipewire-window-capture-source)
18:50:52.972:     - source: 'snes' (pipewire-window-capture-source)
18:50:52.972:     - source: 'n64' (pipewire-window-capture-source)
18:50:52.972:     - source: 'overlay' (image_source)
18:50:52.972:     - source: 'Game Capture' (vkcapture-source)
18:50:52.972: ------------------------------------------------
18:50:53.005: [pipewire] Screencast session created
18:50:53.005: [pipewire] Screencast session created
18:50:53.005: [pipewire] Screencast session created
18:50:53.432: adding 21 milliseconds of audio buffering, total audio buffering is now 21 milliseconds (source: Friends)
18:50:53.432: 
18:50:53.752: adding 64 milliseconds of audio buffering, total audio buffering is now 85 milliseconds (source: Primary)
18:50:53.752: 
18:50:54.043: [pipewire] Asking for window
18:50:54.494: [pipewire] Asking for window
18:50:55.281: [pipewire] Asking for window
18:50:55.282: [pipewire] window selected, setting up screencast
18:50:55.282: [pipewire] window selected, setting up screencast
18:50:55.285: [pipewire] Server version: 0.3.85
18:50:55.285: [pipewire] Library version: 0.3.85
18:50:55.285: [pipewire] Header version: 0.3.84
18:50:55.285: [pipewire] Created stream 0x56159d714890
18:50:55.285: [pipewire] Stream 0x56159d714890 state: "connecting" (error: none)
18:50:55.286: [pipewire] Playing stream 0x56159d714890
18:50:55.286: [pipewire] window selected, setting up screencast
18:50:55.312: [pipewire] Stream 0x56159d714890 state: "paused" (error: none)
18:50:55.312: [pipewire] Negotiated format:
18:50:55.312: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:55.312: [pipewire]     Modifier: 0x0
18:50:55.312: [pipewire]     Size: 1920x1080
18:50:55.312: [pipewire]     Framerate: 0/1
18:50:55.313: [pipewire] Server version: 0.3.85
18:50:55.313: [pipewire] Library version: 0.3.85
18:50:55.313: [pipewire] Header version: 0.3.84
18:50:55.313: [pipewire] Created stream 0x56159d731df0
18:50:55.313: [pipewire] Stream 0x56159d731df0 state: "connecting" (error: none)
18:50:55.313: [pipewire] Playing stream 0x56159d731df0
18:50:55.313: [pipewire] Stream 0x56159d731df0 state: "paused" (error: none)
18:50:55.314: [pipewire] Negotiated format:
18:50:55.314: [pipewire] Server version: 0.3.85
18:50:55.314: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:55.314: [pipewire] Library version: 0.3.85
18:50:55.314: [pipewire] Header version: 0.3.84
18:50:55.314: [pipewire]     Modifier: 0x20000002096bb03
18:50:55.314: [pipewire]     Size: 1920x1080
18:50:55.314: [pipewire]     Framerate: 0/1
18:50:55.314: [pipewire] Created stream 0x56159da85720
18:50:55.314: [pipewire] Stream 0x56159da85720 state: "connecting" (error: none)
18:50:55.314: [pipewire] Playing stream 0x56159da85720
18:50:55.314: [pipewire] Stream 0x56159da85720 state: "paused" (error: none)
18:50:55.315: [pipewire] Stream 0x56159d714890 state: "streaming" (error: none)
18:50:55.316: [pipewire] Negotiated format:
18:50:55.316: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:55.316: [pipewire]     Modifier: 0x0
18:50:55.316: [pipewire]     Size: 1920x1080
18:50:55.316: [pipewire]     Framerate: 0/1
18:50:55.317: [pipewire] Negotiated format:
18:50:55.317: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:55.317: [pipewire]     Modifier: 0x20000002096bb03
18:50:55.317: [pipewire]     Size: 1920x1080
18:50:55.317: [pipewire]     Framerate: 0/1
18:50:55.356: [pipewire] Negotiated format:
18:50:55.356: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:55.356: [pipewire]     Modifier: 0x0
18:50:55.356: [pipewire]     Size: 1920x1080
18:50:55.356: [pipewire]     Framerate: 0/1
18:50:55.356: [pipewire] Stream 0x56159d731df0 state: "streaming" (error: none)
18:50:55.356: [pipewire] Negotiated format:
18:50:55.356: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:55.356: [pipewire]     Modifier: 0x20000002096bb03
18:50:55.356: [pipewire]     Size: 1920x1080
18:50:55.356: [pipewire]     Framerate: 0/1
18:50:55.357: [pipewire] Stream 0x56159da85720 state: "streaming" (error: none)
18:50:55.648: Cannot create EGLImage: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
18:50:55.648: [pipewire] Renegotiating stream
18:50:55.648: Cannot create EGLImage: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
18:50:55.648: [pipewire] Renegotiating stream
18:50:55.648: Cannot create EGLImage: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
18:50:55.649: [pipewire] Renegotiating stream
18:50:55.649: [pipewire] Negotiated format:
18:50:55.649: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:55.649: [pipewire]     Modifier: 0x20000002096bb03
18:50:55.649: [pipewire]     Size: 1920x1080
18:50:55.649: [pipewire]     Framerate: 0/1
18:50:55.649: [pipewire] Negotiated format:
18:50:55.649: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:55.649: [pipewire]     Modifier: 0x20000002096bb03
18:50:55.649: [pipewire]     Size: 1920x1080
18:50:55.649: [pipewire]     Framerate: 0/1
18:50:55.650: [pipewire] Negotiated format:
18:50:55.650: [pipewire] Negotiated format:
18:50:55.650: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:55.650: [pipewire]     Modifier: 0x200000020967b03
18:50:55.650: [pipewire] Negotiated format:
18:50:55.650: [pipewire]     Size: 1920x1080
18:50:55.650: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:55.650: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:55.650: [pipewire]     Framerate: 0/1
18:50:55.650: [pipewire]     Modifier: 0x200000020967b03
18:50:55.650: [pipewire]     Modifier: 0x20000002096bb03
18:50:55.650: [pipewire]     Size: 1920x1080
18:50:55.650: [pipewire]     Framerate: 0/1
18:50:55.650: [pipewire]     Size: 1920x1080
18:50:55.650: [pipewire]     Framerate: 0/1
18:50:55.651: [pipewire] Negotiated format:
18:50:55.651: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:55.651: [pipewire]     Modifier: 0x200000020967b03
18:50:55.651: [pipewire]     Size: 1920x1080
18:50:55.651: [pipewire]     Framerate: 0/1
18:50:55.652: [pipewire] Stream 0x56159d731df0 state: "paused" (error: none)
18:50:55.652: [pipewire] Stream 0x56159da85720 state: "paused" (error: none)
18:50:55.652: [pipewire] Stream 0x56159d731df0 state: "streaming" (error: none)
18:50:55.653: [pipewire] Stream 0x56159da85720 state: "streaming" (error: none)
18:50:55.750: Cannot create EGLImage: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
18:50:55.750: [pipewire] Renegotiating stream
18:50:55.750: [pipewire] Stream 0x56159d714890 state: "paused" (error: none)
18:50:55.751: [pipewire] Negotiated format:
18:50:55.751: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:55.751: [pipewire]     Modifier: 0x200000020967b03
18:50:55.751: [pipewire]     Size: 1920x1080
18:50:55.751: [pipewire]     Framerate: 0/1
18:50:55.751: [pipewire] Negotiated format:
18:50:55.751: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:55.751: [pipewire]     Modifier: 0x200000020937b03
18:50:55.751: [pipewire]     Size: 1920x1080
18:50:55.751: [pipewire]     Framerate: 0/1
18:50:55.752: Cannot create EGLImage: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
18:50:55.752: [pipewire] Renegotiating stream
18:50:55.752: [pipewire] Stream 0x56159d714890 state: "streaming" (error: none)
18:50:55.753: [pipewire] Stream 0x56159d731df0 state: "paused" (error: none)
18:50:55.753: [pipewire] Negotiated format:
18:50:55.753: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:55.753: [pipewire]     Modifier: 0x200000020967b03
18:50:55.753: [pipewire]     Size: 1920x1080
18:50:55.753: [pipewire]     Framerate: 0/1
18:50:55.753: [pipewire] Negotiated format:
18:50:55.753: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:55.753: [pipewire]     Modifier: 0x200000020937b03
18:50:55.753: [pipewire]     Size: 1920x1080
18:50:55.753: [pipewire]     Framerate: 0/1
18:50:55.754: [pipewire] Stream 0x56159d731df0 state: "streaming" (error: none)
18:50:56.140: Cannot create EGLImage: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
18:50:56.140: [pipewire] Renegotiating stream
18:50:56.140: Cannot create EGLImage: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
18:50:56.140: [pipewire] Renegotiating stream
18:50:56.141: [pipewire] Negotiated format:
18:50:56.141: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:56.141: [pipewire]     Modifier: 0x200000020937b03
18:50:56.141: [pipewire]     Size: 1920x1080
18:50:56.141: [pipewire]     Framerate: 0/1
18:50:56.141: [pipewire] Negotiated format:
18:50:56.141: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:56.141: [pipewire]     Modifier: 0x200000020937b03
18:50:56.141: [pipewire]     Size: 1920x1080
18:50:56.141: [pipewire]     Framerate: 0/1
18:50:56.142: [pipewire] Negotiated format:
18:50:56.142: [pipewire] Negotiated format:
18:50:56.142: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:56.142: [pipewire]     Modifier: 0x200000020801b03
18:50:56.142: [pipewire]     Size: 1920x1080
18:50:56.142: [pipewire]     Framerate: 0/1
18:50:56.142: [pipewire]     Format: 8 (Spa:Enum:VideoFormat:BGRx)
18:50:56.142: [pipewire]     Modifier: 0x200000020801b03
18:50:56.142: [pipewire]     Size: 1920x1080
18:50:56.142: [pipewire]     Framerate: 0/1
18:50:56.143: [pipewire] Stream 0x56159d731df0 state: "paused" (error: none)
18:50:56.143: [pipewire] Stream 0x56159d731df0 state: "streaming" (error: none)
18:51:15.328: ==== Shutting down ==================================================
18:51:15.334: pulse-input: Stopped recording from 'primary.monitor'
18:51:15.334: pulse-input: Got 896 packets with 1075200 frames
18:51:15.334: pulse-input: Stopped recording from 'friends.monitor'
18:51:15.334: pulse-input: Got 898 packets with 1077600 frames
18:51:15.334: pulse-input: Stopped recording from 'alsa_input.usb-Samson_Technologies_Samson_Meteor_Mic-00.analog-stereo'
18:51:15.334: pulse-input: Got 898 packets with 1077600 frames
18:51:15.335: [pipewire] Stream 0x56159da85720 state: "paused" (error: none)
18:51:15.335: [pipewire] Stream 0x56159da85720 state: "unconnected" (error: none)
18:51:15.336: [pipewire] Stream 0x56159d714890 state: "paused" (error: none)
18:51:15.336: [pipewire] Stream 0x56159d714890 state: "unconnected" (error: none)
18:51:15.337: [pipewire] Stream 0x56159d731df0 state: "paused" (error: none)
18:51:15.337: [pipewire] Stream 0x56159d731df0 state: "unconnected" (error: none)
18:51:15.338: [linux-vkcapture] destroy
18:51:15.368: All scene data cleared
18:51:15.368: ------------------------------------------------
18:51:15.406: [linux-vkcapture] plugin unloaded
18:51:15.413: [Scripting] Total detached callbacks: 0
18:51:15.413: Freeing OBS context data
18:51:15.424: == Profiler Results =============================
18:51:15.424: run_program_init: 811.142 ms
18:51:15.424:  ┣OBSApp::AppInit: 4.206 ms
18:51:15.424:  ┃ ┗OBSApp::InitLocale: 0.659 ms
18:51:15.424:  ┗OBSApp::OBSInit: 768.501 ms
18:51:15.424:    ┣obs_startup: 2.58 ms
18:51:15.424:    ┗OBSBasic::OBSInit: 744.623 ms
18:51:15.424:      ┣OBSBasic::InitBasicConfig: 0.089 ms
18:51:15.424:      ┣OBSBasic::ResetAudio: 0.219 ms
18:51:15.424:      ┣OBSBasic::ResetVideo: 81.646 ms
18:51:15.424:      ┃ ┗obs_init_graphics: 79.48 ms
18:51:15.424:      ┃   ┗shader compilation: 27.484 ms
18:51:15.424:      ┣OBSBasic::InitOBSCallbacks: 0.004 ms
18:51:15.424:      ┣OBSBasic::InitHotkeys: 0.022 ms
18:51:15.424:      ┣obs_load_all_modules2: 459.071 ms
18:51:15.424:      ┃ ┣obs_init_module(decklink-captions.so): 0 ms
18:51:15.424:      ┃ ┣obs_init_module(decklink-output-ui.so): 0 ms
18:51:15.424:      ┃ ┣obs_init_module(decklink.so): 0.079 ms
18:51:15.424:      ┃ ┣obs_init_module(frontend-tools.so): 52.322 ms
18:51:15.424:      ┃ ┣obs_init_module(image-source.so): 0.007 ms
18:51:15.424:      ┃ ┣obs_init_module(linux-alsa.so): 0.002 ms
18:51:15.424:      ┃ ┣obs_init_module(linux-capture.so): 0 ms
18:51:15.424:      ┃ ┣obs_init_module(linux-jack.so): 0.001 ms
18:51:15.424:      ┃ ┣obs_init_module(linux-pipewire.so): 17.053 ms
18:51:15.424:      ┃ ┣obs_init_module(linux-pulseaudio.so): 0.003 ms
18:51:15.424:      ┃ ┣obs_init_module(linux-v4l2.so): 4.859 ms
18:51:15.424:      ┃ ┣obs_init_module(linux-vkcapture.so): 0.084 ms
18:51:15.424:      ┃ ┣obs_init_module(obs-ffmpeg.so): 16.604 ms
18:51:15.424:      ┃ ┃ ┗nvenc_check: 1.368 ms
18:51:15.424:      ┃ ┣obs_init_module(obs-filters.so): 0.025 ms
18:51:15.424:      ┃ ┣obs_init_module(obs-libfdk.so): 0.001 ms
18:51:15.424:      ┃ ┣obs_init_module(obs-outputs.so): 0.002 ms
18:51:15.424:      ┃ ┣obs_init_module(obs-qsv11.so): 6.129 ms
18:51:15.424:      ┃ ┣obs_init_module(obs-transitions.so): 0.007 ms
18:51:15.424:      ┃ ┣obs_init_module(obs-vaapi.so): 4.438 ms
18:51:15.424:      ┃ ┣obs_init_module(obs-vst.so): 0.003 ms
18:51:15.424:      ┃ ┣obs_init_module(obs-x264.so): 0.001 ms
18:51:15.424:      ┃ ┣obs_init_module(rtmp-services.so): 0.525 ms
18:51:15.424:      ┃ ┣obs_init_module(text-freetype2.so): 0.01 ms
18:51:15.424:      ┃ ┗obs_init_module(libobs-livesplit-one.so): 139.202 ms
18:51:15.424:      ┣OBSBasic::InitService: 1.5 ms
18:51:15.424:      ┣OBSBasic::ResetOutputs: 21.053 ms
18:51:15.424:      ┣OBSBasic::CreateHotkeys: 0.026 ms
18:51:15.424:      ┣OBSBasic::InitPrimitives: 0.065 ms
18:51:15.424:      ┗OBSBasic::Load: 158.888 ms
18:51:15.424: obs_hotkey_thread(25 ms): min=0 ms, median=0 ms, max=0.001 ms, 99th percentile=0.001 ms, 100% below 25 ms
18:51:15.424: audio_thread(Audio): min=0.005 ms, median=0.041 ms, max=0.565 ms, 99th percentile=0.082 ms
18:51:15.424: obs_graphics_thread(16.6667 ms): min=0.045 ms, median=0.373 ms, max=110.332 ms, 99th percentile=0.573 ms, 99.9274% below 16.667 ms
18:51:15.424:  ┣tick_sources: min=0 ms, median=0.004 ms, max=90.759 ms, 99th percentile=0.014 ms
18:51:15.424:  ┣output_frame: min=0.039 ms, median=0.239 ms, max=19.558 ms, 99th percentile=0.351 ms
18:51:15.424:  ┃ ┗gs_context(video->graphics): min=0.039 ms, median=0.239 ms, max=19.557 ms, 99th percentile=0.351 ms
18:51:15.424:  ┃   ┣render_video: min=0.004 ms, median=0.139 ms, max=7.511 ms, 99th percentile=0.221 ms
18:51:15.424:  ┃   ┃ ┗render_main_texture: min=0.003 ms, median=0.137 ms, max=7.506 ms, 99th percentile=0.218 ms
18:51:15.424:  ┃   ┗gs_flush: min=0.001 ms, median=0.093 ms, max=0.145 ms, 99th percentile=0.126 ms
18:51:15.424:  ┗render_displays: min=0.002 ms, median=0.117 ms, max=1.972 ms, 99th percentile=0.189 ms
18:51:15.424: =================================================
18:51:15.424: == Profiler Time Between Calls ==================
18:51:15.424: obs_hotkey_thread(25 ms): min=25.015 ms, median=25.06 ms, max=28.102 ms, 99.7833% within ±2% of 25 ms (0% lower, 0.216685% higher)
18:51:15.424: obs_graphics_thread(16.6667 ms): min=6.331 ms, median=16.667 ms, max=110.335 ms, 98.9107% within ±2% of 16.667 ms (0.508351% lower, 0.580973% higher)
18:51:15.424: =================================================
18:51:15.426: Number of memory leaks: 1

Game log:

> obs-gamecapture flatpak run com.github.Rosalie241.RMG
ERROR: ld.so: object '/usr/$LIB/libobs_glcapture.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/usr/$LIB/libobs_glcapture.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/usr/$LIB/libobs_glcapture.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/usr/$LIB/libobs_glcapture.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/usr/$LIB/libobs_glcapture.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
> obs-gamecapture flatpak run ca.parallel_launcher.ParallelLauncher
ERROR: ld.so: object '/usr/$LIB/libobs_glcapture.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
> obs-gamecapture io.github.punesemu.puNES
ERROR: ld.so: object '/usr/$LIB/libobs_glcapture.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
▶ puNES (by FHorse) 0.110, x86_64, OpenGL
▶ folders      
  config        : /home/pram/.var/app/io.github.punesemu.puNES/config/puNES
  data          : /home/pram/.var/app/io.github.punesemu.puNES/data/puNES
  temp          : /tmp/puNES
▶ opengl        : GPU AMD Radeon RX 6950 XT (navi21, LLVM 15.0.7, DRM 3.54, 6.6.2-arch1-1) (AMD, 4.6 (Compatibility Profile) Mesa 23.1.9 (git-acb5ee278a))
▶ opengl        : GL version 4.6 Compatibility
▶ opengl        : setting pass 0
qt.qpa.wayland: Wayland does not support QWindow::requestActivate()
> obs-gamecapture dev.bsnes.bsnes
ERROR: ld.so: object '/usr/$LIB/libobs_glcapture.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
@nowrep
Copy link
Owner

nowrep commented Nov 27, 2023

For Flatpak I don't really know how the GL capture should work, because /usr/$LIB/libobs_glcapture.so this path will be wrong I think?

@SuNNjek

@nowrep
Copy link
Owner

nowrep commented Nov 27, 2023

Or maybe it works and you just didn't install https://github.com/flathub/org.freedesktop.Platform.VulkanLayer.OBSVkCapture ?

@Asurasim
Copy link
Author

Hi, I have installed that package. To be safe, I did run the install command again to check and was told it was already installed.

I tried testing to see if I could narrow it down, it appears to be exclusively when I use OpenGL through Flatpak.

Native GL, native VK, and Flatpak VK all seem to work perfectly fine.

@SuNNjek
Copy link
Contributor

SuNNjek commented Nov 27, 2023

@Asurasim Can you try running the flatpak with --env=LD_PRELOAD=/usr/lib/extensions/vulkan/OBSVkCapture/lib/x86_64-linux-gnu/libobs_glcapture.so? The flatpak extension can't set this environment variable I think (I'd need to check when I have some time), so you need to set it manually.

@Asurasim
Copy link
Author

Asurasim commented Nov 27, 2023

I'm not very familiar with how environment variables work so please correct me if I've done this wrong.

> --env=LD_PRELOAD=/usr/lib/extensions/vulkan/OBSVkCapture/lib/x86_64-linux-gnu/libobs_glcapture.so dev.bsnes.bsnes
bash: --env=LD_PRELOAD=/usr/lib/extensions/vulkan/OBSVkCapture/lib/x86_64-linux-gnu/libobs_glcapture.so: No such file or directory

I found libobs_glcapture.so inside of /usr/lib/ however it still says that there is no such file or directory.

@SuNNjek
Copy link
Contributor

SuNNjek commented Nov 27, 2023

@Asurasim I should've included the full command, sorry.

flatpak run --env=LD_PRELOAD=/usr/lib/extensions/vulkan/OBSVkCapture/lib/x86_64-linux-gnu/libobs_glcapture.so <your package name here>

@Asurasim
Copy link
Author

The error is gone, but overall this seems to have given very mixed results.

Parallel-Launcher works perfectly now.
Dolphin emulator also works perfectly now
RMG runs but doesn't get picked up by the capture plugin at all.
bsnes is recognized by the capture plugin in the drop down menu but crashes upon loading a game. When using Zink it would only pick up the video once the game has started, so it's likely crashing as soon as it tries to grab the video.
puNES doesn't pick up OpenGL at all when launched with the command. puNES also didn't work with Zink at all so it might use some weird rendering tricks?

@nowrep
Copy link
Owner

nowrep commented Nov 28, 2023

If it crashes it would be nice to get backtrace. If it doesn't get picked up, please post logs.

Also if you use zink then you should just use Vulkan capture, not GL.

@Asurasim
Copy link
Author

Hi again.
Before making the report, I was hoping that zink would solve the problems, however it seems that the emulators I have been trying to use don't work well with it. One of them displays an empty window, another displays a black screen. It's because of those issues that I would like to get GL to capture properly.

I haven't done backtracing before so it took me a while to (hopefully) figure it out. I tried it with bsnes since it seems to reliably crash once it begins capture in obs, if obs is closed it works normally.

I ran bsnes with the command

> flatpak run --env=LD_PRELOAD=/usr/lib/extensions/vulkan/OBSVkCapture/lib/x86_64-linux-gnu/libobs_glcapture.so dev.bsnes.bsnes

Here is the coredump.

> coredumpctl info
           PID: 6232 (bsnes)
           UID: 1000 (pram)
           GID: 1000 (pram)
        Signal: 11 (SEGV)
     Timestamp: Tue 2023-11-28 15:09:49 GMT (44s ago)
  Command Line: bsnes
    Executable: /app/bin/bsnes
 Control Group: /user.slice/user-1000.slice/user@1000.service/app.slice/app-flatpak-dev.bsnes.bsnes-6216.scope
          Unit: user@1000.service
     User Unit: app-flatpak-dev.bsnes.bsnes-6216.scope
         Slice: user-1000.slice
     Owner UID: 1000 (pram)
       Boot ID: 28ef1d77612245f3966e6a2c74607dc0
    Machine ID: 8916b212f4ac4aa6bcfaac933e503ac9
      Hostname: pram
       Storage: /var/lib/systemd/coredump/core.bsnes.1000.28ef1d77612245f3966e6a2c74607dc0.6232.1701184189000000.zst (present)
  Size on Disk: 17.0M
       Message: Process 6232 (bsnes) of user 1000 dumped core.
                
                Stack trace of thread 2:
                #0  0x00005571566ac998 n/a (/app/bin/bsnes + 0x489998)
                #1  0x00007f8d5fd4bba3 n/a (/usr/lib/extensions/vulkan/OBSVkCapture/lib/x86_64-linux-gnu/libobs_glcapture.so + 0x6ba3)
                #2  0x00005571563c0d43 n/a (/app/bin/bsnes + 0x19dd43)
                ELF object binary architecture: AMD x86-64

I'm unsure as to how I would get coredump on puNES since it doesn't crash. Here is what it says when I try to run it.

> flatpak run --env=LD_PRELOAD=/usr/lib/extensions/vulkan/OBSVkCapture/lib/x86_64-linux-gnu/libobs_glcapture.so io.github.punesemu.puNES
[obs-vkcapture] Init EGL 1.4.5
▶ puNES (by FHorse) 0.110, x86_64, OpenGL
▶ folders      
  config        : /home/pram/.var/app/io.github.punesemu.puNES/config/puNES
  data          : /home/pram/.var/app/io.github.punesemu.puNES/data/puNES
  temp          : /tmp/puNES
▶ opengl        :  Missing GL version
▶ Unable to initiliazed gfx API.

@nowrep nowrep closed this as completed in 9f74987 Nov 28, 2023
@nowrep nowrep added the gl label Nov 28, 2023
@Asurasim
Copy link
Author

Thank you for taking the time to try and fix it but I'm not quite sure how I would go about using the fix.
I tried running paru -S obs-vkcapture-git again but that didn't seem to have changed anything. The build instructions also seem to give a permission error unless using sudo, which I imagine I'm not supposed to do as it's not in the build instructions. Is there anything I've missed or don't know about?

> make && make install
[ 46%] Built target linux-vkcapture
[ 66%] Built target VkLayer_obs_vkcapture
[100%] Built target obs_glcapture
[ 46%] Built target linux-vkcapture
[ 66%] Built target VkLayer_obs_vkcapture
[100%] Built target obs_glcapture
Install the project...
-- Install configuration: ""
-- Installing: /usr/lib/obs-plugins/linux-vkcapture.so
CMake Error at cmake_install.cmake:60 (file):
  file INSTALL cannot copy file
  "/home/pram/obs-vkcapture/build/linux-vkcapture.so" to
  "/usr/lib/obs-plugins/linux-vkcapture.so": Permission denied.


make: *** [Makefile:100: install] Error 1

@nowrep
Copy link
Owner

nowrep commented Nov 28, 2023

For Flatpak you'll have to wait until next release.

To install system-wide you need sudo make install.

@Asurasim
Copy link
Author

Thank you for clarifying. I take it there's no way to build the flatpak myself or use a beta to try it out?
Would I also be able to make adjustments to the readme to note some of the things encountered here? I'm not very familiar with using GitHub on public repos.

@nowrep
Copy link
Owner

nowrep commented Nov 28, 2023

I take it there's no way to build the flatpak myself

There is, but you'll have to look for instructions elsewhere.

Would I also be able to make adjustments to the readme to note some of the things encountered here?

Sure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants